commit d8643761f5b57c8466e4deed4322b73fc512e233 Author: yuanh Date: Tue Oct 13 16:15:00 2026 +0800 SMT-ERP 项目初始提交 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6f2b866 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +*.js linguist-language=Java +*.css linguist-language=Java +*.html linguist-language=Java +*.vue linguist-language=Java \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..083a83e --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +## ide +**/.idea +*.iml + +## backend +**/target +**/logs +**/dist +*.zip + +## front +**/*.lock +**/node_modules +*.log + +##log +**/logs.home_IS_UNDEFINED + +## local run artifacts +.run/ + +## local backups and script caches +backups/ +.restore-backup-*/ +**/__pycache__/ +*.pyc diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..4937d51 --- /dev/null +++ b/README.md @@ -0,0 +1,193 @@ +# SMT-ERP + +SMT-ERP 是面向瑞银电子马来西亚(SMT)分公司的私有化 ERP 系统,服务于吉隆坡分公司的进销存、生产、财务和内部管理场景。 + +项目以 SMT 为首个落地试点,面向人员规模不超过 100 人的海外分公司建设,后续可复制到其他海外分公司。系统部署在 SMT 本地机房,核心业务数据由企业自主掌控。 + +## 项目目标 + +围绕“总部生产完成 → 调拨至 SMT → SMT 包装/组装 → 交付客户 → 收款”的业务链路,建立从订单、调拨、库存、生产到财务的闭环管理,解决库存依赖 Excel、审批依赖线下纸质流程以及业务账与财务账不一致等问题。 + +系统重点支持: + +- TNB(马来西亚国家电力公司)订单及二级市场订单管理 +- 总部调拨、SMT 本地包材采购和到货管理 +- 包装 BOM、生产工单、领料、报工和完工入库 +- 批次(LOT NO)与电表序列号(S/N From - S/N To)全流程追溯 +- 销售出库、客户签收、应收应付、成本核算和财务报表 +- 钉钉国际版审批集成,以及 SMT 与 Reallin 的数据互通 + +## 当前项目结构 + +```text +SMT_ERP/ +├── smtERP-boot/ # Java 后端服务 +│ ├── src/main/java/ # 控制器、业务逻辑、数据访问和系统配置 +│ ├── src/main/resources/ +│ │ ├── application.yml +│ │ └── mapper_xml/ # MyBatis XML 映射 +│ └── docs/ # 初始化及数据库升级脚本 +├── smtERP-web/ # Web 前端 +│ ├── src/api/ # 后端接口封装 +│ ├── src/views/ # 业务页面 +│ └── src/components/ # 通用组件 +├── LICENSE +└── README.md +``` + +## 技术架构 + +| 层级 | 当前实现 | +|---|---| +| 前端 | Vue 2.7.16、Vue Router 3、Vuex 3、Ant Design Vue 1.5.2、Axios | +| 后端 | Java 11、Spring Boot 2.0.0.RELEASE、Maven | +| 持久层 | MyBatis-Plus 3.0.7.1、MyBatis XML Mapper | +| 数据库 | MySQL 8.0.33 驱动,默认数据库名 `jsh_erp` | +| 缓存 | Redis | +| 接口文档 | Springfox Swagger 2.7.0、Swagger Bootstrap UI | +| 部署 | SMT 本地机房私有化部署,可运行于 Windows 或 Linux | + +> 需求文档规划的 Vue 3 属于后续技术演进方向;当前仓库前端仍以 Vue 2.7.16 为准。后端编译版本以 `smtERP-boot/pom.xml` 中的 `11` 为准。 + +## 业务规划 + +### 第一阶段:核心业务闭环 + +1. 销售管理:客户、报价、TNB/二级市场订单、交货计划、发货、签收、销售对账。 +2. 采购管理:总部调拨申请与接收、本地包材采购、供应商、采购入库和对账。 +3. 生产管理:包装 BOM、包装工单、领料、生产报工、质检、完工入库和生产进度。 +4. 仓储管理:多仓库、入库、出库、批次、序列号、库存账、库存预警、盘点和库存规划。 +5. 审批与数据互通:接入钉钉国际版审批,并规划 SMT 与 Reallin 的业务数据同步。 + +### 第二阶段:内部信息化管理 + +将当前线下 Excel 管理内容逐步搬到线上,覆盖考勤、请假、培训、资产、费用及其他内部管理事项。 + +### 财务与合规重点 + +- 以人民币作为主要结算币种,同时支持本地采购使用 MYR(马来西亚林吉特)记录。 +- 财务年度为每年 3 月 1 日至次年 3 月 31 日。 +- 支持应收、应付、总账、费用、成本、发票和资产负债表/利润表等报表。 +- 财务核算遵循马来西亚当地业务要求,预留 MFRS、SST 及电子发票相关能力。 +- 发票录入需满足清关及货运文件齐全等前置条件,并支持跨期入账和电子发票提交时间窗口控制。 + +## 开发环境 + +- JDK 11 +- Maven 3.6+(以本机 Maven 版本为准) +- Node.js 及 npm/yarn +- MySQL 8.0+ +- Redis 6.x+ +- IntelliJ IDEA 或其他 Java IDE + +## 本地运行 + +### 1. 初始化数据库 + +创建 MySQL 数据库后,执行: + +```text +smtERP-boot/docs/jsh_erp.sql +``` + +后续升级脚本按版本和实际需求执行,数据库升级记录见 `smtERP-boot/docs/`。 + +### 2. 配置后端 + +编辑 `smtERP-boot/src/main/resources/application.yml`,至少确认以下配置: + +- MySQL 地址、数据库名、用户名和密码 +- Redis 地址、端口和密码 +- 文件上传目录及目录权限 +- 服务端口和上下文路径 + +请勿在生产环境直接使用仓库中的示例密码,并避免将真实密码提交到 Git。 + +### 3. 启动后端 + +```bash +cd smtERP-boot +mvn spring-boot:run +``` + +后端默认地址:`http://localhost:27210/jshERP-boot` + +### 4. 启动前端 + +```bash +cd smtERP-web +npm install +npm run serve +``` + +前端开发地址:`http://localhost:27200`。开发服务器会将 `/jshERP-boot` 请求代理到 `http://localhost:27210`。 + +### SMT 其他入库同步 + +外部平台可调用 `POST /jshERP-boot/smtInbound/sync`,请求头为 +`Content-Type: application/json`,请求体示例: + +```json +[ + { + "docNo": "SM2503070001", + "businessDate": "2025-03-07 00:00:00.000", + "materialCode": "C.4.T.0.00562", + "materialName": "MD-4GVIII(VB)", + "specification": "MD-4GVIII(VB)", + "qtyPriceAmount": 50, + "finallyPrice": "324", + "totalNetMoney": "14336.280000000", + "totalMoney": "16200.000000000", + "sourceDocNo": "SH2503070002" + } +] +``` + +接口按 `docNo` 去重:未审核单据会被整单覆盖,已审核单据会跳过,并在 +`auditedDocNos` 中返回冲突单号。Excel 导入使用同一规则。其他入库审核通过时, +系统以 `materialCode` 作为 ERP 条码创建或更新商品,并将库存写入“成品仓库”。 + +### 5. 构建 + +```bash +cd smtERP-web +npm run build + +cd ../smtERP-boot +mvn clean package +``` + +构建生成的 `target/`、`dist/`、压缩包、`node_modules/` 和运行日志不会纳入版本库。 + +## 部署说明 + +系统采用 SMT 本地机房部署模式,建议由 SMT 开发与 IT 人员共同负责部署和日常维护,总部系统信息部提供架构、集成和技术支持。 + +生产部署至少应完成: + +1. 准备 Java 11 运行环境、MySQL、Redis 和 Web 服务器/反向代理。 +2. 初始化数据库并按发布版本执行升级脚本。 +3. 使用生产数据库、Redis、文件目录和外部接口配置替换示例配置。 +4. 配置前端静态文件、后端服务、反向代理、备份和日志轮转。 +5. 上线前验证登录、权限、库存、单据、审批回调和数据同步链路。 + +## 组织与协作 + +SMT 当前组织包括财务部、市场部、技术部、生产部和行政部门,系统权限设计需结合部门、岗位、仓库和数据范围进行隔离。 + +- SMT 项目管理:Hafiz +- SMT 开发、需求收集和日常运维:Aziman +- SMT 机房、网络和部署支持:Haslim +- 总部架构、核心模块、钉钉国际版集成和技术支持:总部系统信息部 +- 需求提交渠道:Reallin 售后服务平台 + +## 版本与状态 + +当前仓库是 SMT-ERP 的开发基线,已包含现有进销存、财务、生产、报表、系统管理等基础代码。需求文档中的钉钉国际版审批、SMT 与 Reallin 数据互通、完整序列号追溯及第二阶段内部信息化能力,按项目迭代计划逐步建设。 + +需求依据:SMT(马来西亚)ERP 系统需求文档 v1.7(2026-08-21)。 + +## 许可证 + +本项目遵循 Apache License 2.0,详见 [LICENSE](LICENSE)。 diff --git a/smtERP-boot/.gitattributes b/smtERP-boot/.gitattributes new file mode 100644 index 0000000..91ef001 --- /dev/null +++ b/smtERP-boot/.gitattributes @@ -0,0 +1,4 @@ +*.js linguist-language=Java +*.css linguist-language=Java +*.html linguist-language=Java +*.sh text eol=lf \ No newline at end of file diff --git a/smtERP-boot/.gitignore b/smtERP-boot/.gitignore new file mode 100644 index 0000000..6fb8862 --- /dev/null +++ b/smtERP-boot/.gitignore @@ -0,0 +1,21 @@ +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +*.iml +# Package Files # +*.jar +*.war +*.ear +*.zip +*.log + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +.idea +/target + +**/*.iml + diff --git a/smtERP-boot/docs/asset_management.md b/smtERP-boot/docs/asset_management.md new file mode 100644 index 0000000..3709856 --- /dev/null +++ b/smtERP-boot/docs/asset_management.md @@ -0,0 +1,88 @@ +# 资产管理模块 + +## 原 n2tpm 盘点接口兼容 + +当前服务保留自身 `/apis` 上下文,并提供原盘点协议的以下 POST 接口: + +- `/apis/n2tpm/webmvc/Inventory/Login` +- `/apis/n2tpm/webmvc/Inventory/GetInventory` +- `/apis/n2tpm/webmvc/Inventory/GetInventoryDetail` +- `/apis/n2tpm/webmvc/Inventory/SaveDeviceInventoryInfo` +- `/apis/n2tpm/webmvc/Inventory/AccepteOrHandoverDocForInventory` +- `/apis/n2tpm/webmvc/Inventory/UploadPicture` +- `/apis/n2tpm/webmvc/Inventory/GetDevice` + +接口请求字段、响应中的业务字段及 `code/msg/data` 包装与原项目一致。若外部设备必须继续访问 +`/n2tpm/webmvc/Inventory/**`,请在网关将该路径转发到本服务的 +`/apis/n2tpm/webmvc/Inventory/**`,无需修改前端和现有 `/apis` 接口。 + +## 部署 + +1. 执行 `src/main/resources/db/migration/V20260918__asset_management.sql`。 +2. 重启后端并重新登录前端,使动态菜单和角色权限重新加载。 +3. 管理员菜单中会出现“资产管理”,包含“资产台账”“设备台账”“资产盘点”。 + +## 盘点流程 + +盘点状态依次为:草稿(DRAFT)→ 盘点中(IN_PROGRESS)→ 待审核(PENDING_AUDIT)→ 已完成(COMPLETED)→ 已关结(CLOSED)。 + +创建盘点单时会把当前资产/设备台账固化为盘点快照。盘点支持按明细操作,也支持输入或扫描资产、设备编号定位明细。实盘数量和账面数量不一致时会自动判断盘盈或盘亏;部门、地点变化时会判断为异常,也可人工指定结果。 + +## 协同服务接口 + +推荐接口: + +```http +POST /apis/assetInventory/collaboration/create +Content-Type: application/json +``` + +```json +{ + "externalRequestId": "外部系统唯一请求号", + "planName": "月度设备盘点", + "scopeType": "DEVICE", + "deadline": "2026-09-30 18:00:00", + "remark": "由协同服务创建" +} +``` + +`externalRequestId` 是租户内幂等键,外部服务重试时会返回原盘点单,不会重复建单。接口沿用系统登录会话和租户隔离机制。 + +为兼容参考工程中的调用路径,同时保留: + +```http +POST /apis/tpmDouble/cteatePdTasks +``` + +该兼容接口固定以全部设备台账创建盘点任务,可选传入 `externalRequestId`、`planName`、`deadline` 和 `remark`。 + +### 外部服务回传单项盘点结果 + +推荐使用: + +```http +POST /apis/assetInventory/collaboration/record +Content-Type: application/json +``` + +为兼容原设备项目的调用路径,同时支持: + +```http +POST /apis/deviceInventory/doDevicePlan +Content-Type: application/json +``` + +按盘点单号和设备编码回传示例: + +```json +{ + "inventoryNo": "PD20260918131230171", + "deviceSn": "QC-SPI-01", + "remark": "外部采集服务确认设备在位" +} +``` + +也可以传 `inventoryId` 与 `detailId`,或者使用 `targetCode`、`deviceCode`、`assetCode` 作为对象编码。回传成功后,明细由“未盘点”更新为“已盘点”,主单自动进入“盘点中”并刷新已盘数量。重复回传同一明细按幂等成功处理,不会重复计数。若外部系统能够判断差异,可将 `inventoryStatus` 传为 `NORMAL`、`SURPLUS`、`SHORTAGE` 或 `ABNORMAL`。 + +接口沿用本系统认证与租户隔离,外部服务调用时需携带有效登录令牌或会话。 diff --git a/smtERP-boot/docs/create_customer_tables.sql b/smtERP-boot/docs/create_customer_tables.sql new file mode 100644 index 0000000..b4433ab --- /dev/null +++ b/smtERP-boot/docs/create_customer_tables.sql @@ -0,0 +1,45 @@ +-- 客户分类表 +CREATE TABLE IF NOT EXISTS `tbl_customer_category` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `category_name` varchar(100) DEFAULT NULL COMMENT '分类名称', + `parent_id` bigint(20) DEFAULT 0 COMMENT '父分类ID,0表示顶级', + `level` int(11) DEFAULT 1 COMMENT '层级', + `sort` varchar(20) DEFAULT NULL COMMENT '排序', + `description` varchar(500) DEFAULT NULL COMMENT '描述', + `enabled` tinyint(1) DEFAULT 1 COMMENT '是否启用', + `creator` bigint(20) DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID', + `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_parent_id` (`parent_id`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='客户分类表'; + +-- 客户联系人表 +CREATE TABLE IF NOT EXISTS `tbl_customer_contact` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `customer_id` bigint(20) NOT NULL COMMENT '客户ID', + `contact_name` varchar(50) DEFAULT NULL COMMENT '联系人姓名', + `position` varchar(50) DEFAULT NULL COMMENT '岗位(采购、财务等)', + `phone` varchar(30) DEFAULT NULL COMMENT '手机号', + `telephone` varchar(30) DEFAULT NULL COMMENT '座机', + `email` varchar(100) DEFAULT NULL COMMENT '邮箱', + `wechat` varchar(50) DEFAULT NULL COMMENT '微信', + `qq` varchar(30) DEFAULT NULL COMMENT 'QQ', + `is_primary` tinyint(1) DEFAULT 0 COMMENT '是否主要联系人', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` bigint(20) DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID', + `delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_customer_id` (`customer_id`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='客户联系人表'; + +-- 给 tbl_supplier 添加分类字段 +ALTER TABLE `tbl_supplier` ADD COLUMN `category_id` bigint(20) DEFAULT NULL COMMENT '客户分类ID' AFTER `type`; +ALTER TABLE `tbl_supplier` ADD INDEX `idx_category_id` (`category_id`); diff --git a/smtERP-boot/docs/customer_category_contact.sql b/smtERP-boot/docs/customer_category_contact.sql new file mode 100644 index 0000000..8066bb2 --- /dev/null +++ b/smtERP-boot/docs/customer_category_contact.sql @@ -0,0 +1,60 @@ +-- 客户分类表 - 支持多级分类 +DROP TABLE IF EXISTS `jsh_customer_category`; +CREATE TABLE `jsh_customer_category` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `category_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分类名称', + `parent_id` bigint(20) DEFAULT 0 COMMENT '父级ID,0表示顶级分类', + `level` int(11) DEFAULT 1 COMMENT '层级,从1开始', + `sort` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '排序', + `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '描述', + `enabled` bit(1) DEFAULT b'1' COMMENT '启用状态', + `creator` bigint(20) DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_parent_id`(`parent_id`) USING BTREE, + INDEX `idx_tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '客户分类表' ROW_FORMAT = Dynamic; + +-- 客户联系人表 - 支持多个联系人 +DROP TABLE IF EXISTS `jsh_customer_contact`; +CREATE TABLE `jsh_customer_contact` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `customer_id` bigint(20) NOT NULL COMMENT '客户ID', + `contact_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '联系人姓名', + `position` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '岗位/职位', + `phone` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号码', + `telephone` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '联系电话', + `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '电子邮箱', + `wechat` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '微信号', + `qq` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'QQ号', + `is_primary` bit(1) DEFAULT b'0' COMMENT '是否主要联系人,0否,1是', + `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', + `creator` bigint(20) DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_customer_id`(`customer_id`) USING BTREE, + INDEX `idx_tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '客户联系人表' ROW_FORMAT = Dynamic; + +-- 为供应商表(jsh_supplier)添加分类ID字段 +ALTER TABLE `jsh_supplier` ADD COLUMN `category_id` bigint(20) DEFAULT NULL COMMENT '客户分类ID' AFTER `type`; +ALTER TABLE `jsh_supplier` ADD INDEX `idx_category_id`(`category_id`) USING BTREE; + +-- 插入示例数据:客户分类 +INSERT INTO `jsh_customer_category` VALUES +(1, '企业客户', 0, 1, '1', '大型企业、中小企业等', b'1', 63, 63, '0', NOW(), NOW()), +(2, '个人客户', 0, 1, '2', '个人消费者', b'1', 63, 63, '0', NOW(), NOW()), +(3, '政府机构', 0, 1, '3', '政府部门、事业单位', b'1', 63, 63, '0', NOW(), NOW()), +(4, '大型企业', 1, 2, '1', '大型企业客户', b'1', 63, 63, '0', NOW(), NOW()), +(5, '中小企业', 1, 2, '2', '中小型企业客户', b'1', 63, 63, '0', NOW(), NOW()); + +-- 插入示例数据:客户联系人(假设客户ID为58的客户1) +INSERT INTO `jsh_customer_contact` VALUES +(1, 58, '张三', '采购经理', '13800138001', '', 'zhangsan@example.com', '', '', b'1', '主要负责采购事务', 63, 63, '0', NOW(), NOW()), +(2, 58, '李四', '财务主管', '13800138002', '', 'lisi@example.com', '', '', b'0', '负责财务结算', 63, 63, '0', NOW(), NOW()); diff --git a/smtERP-boot/docs/security-review-remediation-20261012.md b/smtERP-boot/docs/security-review-remediation-20261012.md new file mode 100644 index 0000000..32eb6ee --- /dev/null +++ b/smtERP-boot/docs/security-review-remediation-20261012.md @@ -0,0 +1,89 @@ +# 2026-10-12 代码审查修复及上线说明 + +本次以不改变正常业务计算、单据状态流转和原有数据为原则。认证变化已获调用方同步调整的确认。没有连接生产数据库、轮换真实凭据或发布服务。 + +## 审查项处理结果 + +| 审查项 | 本次处理 | 兼容性与剩余事项 | +| --- | --- | --- | +| C1 明文凭据 | application.yml 的数据库用户名、数据库密码、Redis 密码改为外部注入;生成器配置移除默认用户名及密码 | 部署前配置环境变量;已泄露的真实口令仍须由部署人员轮换,Git 历史中的旧值没有清除 | +| C2 LIKE 注入 | 4 个 Mapper、14 处表达式改为 `concat('%', #{参数}, '%')` | 保留模糊搜索、中文、单引号和 `%` / `_` 通配符语义,不对合法搜索词做截断或删字符 | +| C3 匿名同步 | 两个 sync 接口仅接受独立 API Key 或已有 ERP 登录会话 | 外部调用方必须增加请求头,未配置密钥不允许匿名通过 | +| C3 旧盘点 | Login 返回独立短期 token;盘点业务接口要求认证;校验 USER_ID 和当前身份、盘点单所属盘点人;沿用登录失败限流 | 保留原大写字段和响应包装,增加 TOKEN 字段;禁止伪造他人身份与跨盘点人操作 | +| C3 白名单 | 移除匿名 tenantClean;白名单前缀加路径边界;同步路径精确匹配 | 静态 Excel 模板仅精确 GET 公开,保留原 `` / `window.open` 下载;模板不含业务数据 | +| C4 eval | WebSocket 使用 JSON.parse;菜单占位符使用显式映射 | 非 JSON 消息会被忽略;未知菜单表达式原样保留且不执行,见下文支持列表 | +| H1 MD5/弱默认密码 | 完成入口核对及迁移设计,尚未改动存储与登录协议 | 现有库 password 为 varchar(50),不能直接存 BCrypt;详见迁移步骤。此风险尚未关闭 | +| H2 排序/Example | 保留已存在的 4 处字段及方向白名单,新增真实 MyBatis BoundSql 回归;分页排序加强为字段/方向语法校验 | Example 条件由内部方法构造,未发现 Controller 接收外部 Example;不机械替换生成器 `${criterion.condition}` | +| H3 公告 XSS | 使用 DOMPurify 3.4.16 在展示时净化 HTML | 保留普通 HTML 排版;历史记录不改写;后端存储端的富文本策略需覆盖其他消费者后再实施 | +| H4 老依赖 | JDBC 关闭 allowMultiQueries;新增 DOMPurify;修复 Java 11 测试工具兼容 | Mapper 静态检查未发现分号批量语句;Spring Boot、axios、jQuery、fastjson 大版本升级仍需专项回归,未宣称已消除所有依赖漏洞 | +| H5 会话/插件 | Redis 会话有效期支持配置,默认沿用原 259200 秒 | 报告中的 servlet 36000 秒不是实际 ERP token 有效期;插件安装原本就校验管理员,不是普通登录用户可安装 | +| M1 异常 | HTTP 关闭失败记录日志、保留 POST 异常原因;日期格式试探仅捕获 ParseException;盘点内部错误记录日志而不向客户端暴露堆栈 | 日期格式依次尝试是合理流程,全部失败仍按原逻辑抛出业务错误;不改日期解析宽松程度 | +| M2 API 权限 | 补齐本次同步与盘点入口及盘点身份/数据归属校验 | 全系统按钮权限到 API 权限的映射尚未实施,需要单独梳理角色、租户、共享数据和插件接口 | +| M3 测试 | 新增认证、盘点权限、SQL、前端 XSS/eval 回归;移除 Maven 跳过测试编译配置;升级测试插件和测试 mock 工具以支持 Java 11 | 不使用真实数据库和 Redis,不等同于完整业务验收 | +| L1/L2 | printStackTrace 改结构化日志;保持局部 SimpleDateFormat | 局部实例无共享线程安全问题;替换日期 API 可能改变宽松解析、时区等行为,本次不做无必要重构 | + +## 部署前配置 + +使用服务管理器、容器配置或配置中心注入: + +| 变量 | 用途 | 默认 | +| --- | --- | --- | +| DB_USERNAME | 数据库账号 | 无,必填 | +| DB_PASSWORD | 数据库密码 | 无,必填 | +| REDIS_PASSWORD | Redis 密码 | 无,必填;无密码的 Redis 显式配置为空 | +| SYNC_API_KEY | 外部入库同步专用密钥 | 空;空值时仅 ERP 会话可以调用 sync | +| INVENTORY_TOKEN_TTL_SECONDS | 旧盘点 token 绝对有效期 | 3600 秒;最低 60 秒 | +| ERP_SESSION_TIMEOUT_SECONDS | ERP Redis 会话滑动有效期 | 259200 秒,与原值一致;最低 60 秒 | + +也可继续通过外部 Spring 配置覆盖 `spring.datasource.*` / `spring.redis.*`。不要把真实凭据重新写入仓库。MyBatis Generator 的 `${DB_USERNAME}` / `${DB_PASSWORD}` 是 Java 系统属性替换,运行生成器时需由本地构建配置提供这两个系统属性,不能假定它会自动读取同名环境变量。 + +生产数据库/Redis 凭据轮换应与服务配置更新一起安排,确认连接成功后撤销旧凭据;本次没有自行操作线上账号。同步请求和登录请求须经 HTTPS 或受保护的内部连接,不能在访问日志中记录认证头。 + +## 同步调用方改造 + +两个地址保持不变: + +- `POST /apis/smtInbound/sync` +- `POST /apis/headquartersInbound/sync` + +请求体和成功返回结构不变,增加 `X-Sync-Api-Key: `。密钥仅允许上述两个 POST 接口,不赋予其他接口权限。已有 `X-Access-Token` ERP 会话仍可调用。未提供认证、密钥错误或密钥未配置时返回 HTTP 401。 + +静态下载 `/apis/smtInbound/template`、`/apis/headquartersInbound/template` 保持匿名 GET;其他方法以及名称相似的路径不放行。`tenantClean` 现在必须登录,相关插件调用方需要携带原 ERP 会话头。 + +## 旧盘点客户端改造 + +1. 原样 POST `/apis/n2tpm/webmvc/Inventory/Login` 或 `/apis/webmvc/Inventory/Login`,继续传 USER_NAME、PASSWORD。没有 context path 的部署同样支持这两个路径。 +2. 成功响应仍是 `{code, msg, data}`;`data.RESULT`、`data.USER_ID`、`data.DATA_AUTH` 保留,新增 `data.TOKEN`。 +3. 后续所有查询、保存、接单、上传请求增加 `X-Inventory-Token: `。HTTP 401 时重新登录,不能只凭 USER_ID 重试。 +4. USER_ID 必须是当前登录用户;盘点单必须分配给该用户;批量 DATA 中每条操作都校验。管理员如需代盘,应先通过原 ERP 分配流程调整盘点人,不能伪造 USER_ID。 +5. token 使用独立 Redis 命名空间并绝对过期,读取不会续期,不能当作 ERP 的 X-Access-Token 使用。也支持使用已有 ERP 会话调用盘点接口;同时提供两个头时优先验证盘点 token,避免身份混淆。 +6. 用户被停用/删除后,即使 token 未到期,业务服务也会拒绝操作。错误密码沿用现有 ERP 的账号限流策略。 + +## 菜单 URL 兼容范围 + +支持 `{{ window._CONFIG.domianURL }}`、其单/双引号方括号形式,以及 `window.location.origin`、`window.location.host`、`window.location.protocol`。普通菜单 URL 不变。其他自定义表达式不执行,需在核实数据库菜单配置后将确实需要的非敏感值增加到 `menuUrl.js` 的显式映射。 + +公告展示依赖 [DOMPurify 官方发行版](https://github.com/cure53/DOMPurify/releases/tag/3.4.16)。当前使用 HTML profile,SVG/MathML/脚本等内容不保留。现有项目忽略 package-lock.json,本次遵循仓库规则,新增依赖在 package.json 中固定版本。 + +## H1:口令迁移实施顺序(尚未执行) + +1. 先在预发布验证并扩展 password 至至少 varchar(100),增加算法标识或采用带算法前缀的存储格式;增加 must_change_password 标记。备份用户表,禁止批量覆盖旧口令。 +2. 当前网页在登录、注册、改密时发送 MD5,旧盘点发送明文后由服务端转 MD5,微信绑定也用 SQL 等值比较密码。必须把验证集中到同一密码服务,覆盖所有入口和密码写入路径,不能只改 insertUser。 +3. 过渡期可在服务端对旧协议的 MD5 凭据做 BCrypt,并在成功验证旧记录时有条件升级存储;明确这只改善数据库泄露风险,网络中的 MD5 仍是可重放凭据,必须配合 HTTPS。不得把 BCrypt 值写回仍按 MD5 等值比较的旧程序。 +4. 新协议传原始密码并由服务端 BCrypt/Argon2 校验;使用明确协议版本区分,不根据密码是否“看起来像 MD5”猜测。提供兼容期,统计旧客户端后再停用旧协议。 +5. 新建/重置用户使用单次临时随机密码或管理员指定强密码,返回一次并强制首次改密。先补管理界面的交付流程,避免用户创建成功却无法得知初始密码。旧弱口令账号的会话限制和强制改密需要前后端一起实现。 +6. 回归:旧账号、新账号、改密、重置、停用、限流、默认密码提醒、注册、微信绑定/登录、旧盘点,以及并发登录时的条件升级。升级后回滚代码必须继续能验证新哈希,不能直接回滚到只支持 MD5 的旧包。 + +## H4/M2 后续专项范围(尚未执行) + +- 框架升级先验证插件框架 2.2.1、MyBatis 扩展、Redis、Swagger 与目标 Spring/JDK 的兼容矩阵,再选择受支持目标版本,不在这次安全补丁中跨代替换依赖。 +- axios/jQuery 升级需要覆盖拦截器、错误对象、上传下载、请求取消,以及打印、图片预览等依赖插件;fastjson 迁移需要验证实体绑定、日期/数值和插件序列化。 +- API 权限按现有菜单/按钮建立“HTTP 方法 + 路由 + 操作权限”映射,再覆盖管理员、普通用户、租户和插件接口的正反用例;不要直接把前端菜单可见性当成完整数据授权。 + +## 验证方式及边界 + +本地验证:后端 23 个测试通过;前端 3 组安全回归通过;生产构建成功退出。前端构建仍提示资源体积超限及 sass-loader 缺失,这些警告未在本次安全修复中处理。修改文件通过 UTF-8、BOM/替换字符和 `git diff --check` 检查。 + +后端运行 `mvn -B test`;前端运行 `npm run test:security` 和 `npm run build`。后端测试使用真实 MyBatis XML 生成 SQL,验证 14 个 LIKE 参数不进入 SQL 文本、正常排序继续生效、注入排序不生效;认证与盘点用例使用 mock,不连接外部服务。 + +上线前仍需在预发布环境完成:正常 ERP 登录、入库同步、新/旧盘点登录、本人盘点单接收和保存、图片上传、查询排序、模板下载、公告展示、插件管理员操作。自测通过不能保证所有业务完全无影响,尤其是外部客户端与数据库中的自定义菜单配置。 diff --git a/smtERP-boot/docs/smt-erp-init-data.sql b/smtERP-boot/docs/smt-erp-init-data.sql new file mode 100644 index 0000000..cf1d541 --- /dev/null +++ b/smtERP-boot/docs/smt-erp-init-data.sql @@ -0,0 +1,6145 @@ +/* + Navicat Premium Data Transfer + + Source Server : 47.250.186.240 + Source Server Type : MySQL + Source Server Version : 80039 + Source Host : 47.250.186.240:3306 + Source Schema : app072 + + Target Server Type : MySQL + Target Server Version : 80039 + File Encoding : 65001 + + Date: 13/10/2026 15:44:53 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for tbl_account +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_account`; +CREATE TABLE `tbl_account` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '名称', + `serial_no` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '编号', + `initial_amount` decimal(24, 6) NULL DEFAULT NULL COMMENT '期初金额', + `current_amount` decimal(24, 6) NULL DEFAULT NULL COMMENT '当前余额', + `remark` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用', + `sort` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '排序', + `is_default` bit(1) NULL DEFAULT NULL COMMENT '是否默认', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '账户信息' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_account +-- ---------------------------- +INSERT INTO `tbl_account` VALUES (17, '瑞银账户1', 'zzz111', 100.000000, 2187859.266400, 'aabb', b'1', NULL, b'1', 63, '0'); +INSERT INTO `tbl_account` VALUES (18, 'SMT账户', '1234131324', 200.000000, 200.000000, 'bbbb', b'1', NULL, b'0', 63, '0'); +INSERT INTO `tbl_account` VALUES (19, '测试账户_UPD', NULL, 0.000000, 0.000000, NULL, b'1', NULL, b'0', NULL, '1'); + +-- ---------------------------- +-- Table structure for tbl_account_head +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_account_head`; +CREATE TABLE `tbl_account_head` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类型(支出/收入/收款/付款/转账)', + `organ_id` bigint NULL DEFAULT NULL COMMENT '单位Id(收款/付款单位)', + `hands_person_id` bigint NULL DEFAULT NULL COMMENT '经手人id', + `creator` bigint NULL DEFAULT NULL COMMENT '操作员', + `change_amount` decimal(24, 6) NULL DEFAULT NULL COMMENT '变动金额(优惠/收款/付款/实付)', + `discount_money` decimal(24, 6) NULL DEFAULT NULL COMMENT '优惠金额', + `total_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '合计金额', + `account_id` bigint NULL DEFAULT NULL COMMENT '账户(收款/付款)', + `bill_no` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '单据编号', + `bill_time` datetime(0) NULL DEFAULT NULL COMMENT '单据日期', + `remark` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `file_name` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '附件名称', + `status` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '状态,0未审核、1已审核、9审核中', + `source` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '单据来源,0-pc,1-手机', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `FK9F4C0D8DB610FC06`(`organ_id`) USING BTREE, + INDEX `FK9F4C0D8DAAE50527`(`account_id`) USING BTREE, + INDEX `FK9F4C0D8DC4170B37`(`hands_person_id`) USING BTREE, + INDEX `bill_no`(`bill_no`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 106 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '财务主表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_account_head +-- ---------------------------- +INSERT INTO `tbl_account_head` VALUES (56, '付款', 89, 43, 63, -490440.555000, 0.000000, -490440.555000, 17, 'FK-PV-7297-1PH-WS79-11', '2025-07-11 00:00:00', 'Stock Status供应商付款;PV:PV 7297', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (57, '收款', 90, 43, 63, 80850.000000, 0.000000, 80850.000000, 17, 'SK-INV_1707-11', '2025-07-09 00:00:00', 'Stock Status客户收款;发票:INV_1707', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (58, '付款', 89, 43, 63, -143957.088000, 0.000000, -143957.088000, 17, 'FK-PV-007319-1PH-WS79-15', '2025-07-23 00:00:00', 'Stock Status供应商付款;PV:PV 007319', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (59, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1713-15', '2025-07-15 00:00:00', 'Stock Status客户收款;发票:INV_1713', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (60, '付款', 89, 43, 63, -143259.435000, 0.000000, -143259.435000, 17, 'FK-PV-007377-1PH-WS79-16', '2025-08-15 00:00:00', 'Stock Status供应商付款;PV:PV 007377', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (61, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1744-16', '2025-08-06 00:00:00', 'Stock Status客户收款;发票:INV_1744', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (62, '付款', 89, 43, 63, -95971.392000, 0.000000, -95971.392000, 17, 'FK-PV-007319-1PH-WS79-17', '2025-07-23 00:00:00', 'Stock Status供应商付款;PV:PV 007319', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (63, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1715-17', '2025-07-15 00:00:00', 'Stock Status客户收款;发票:INV_1715', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (64, '付款', 89, 43, 63, -48250.323000, 0.000000, -48250.323000, 17, 'FK-PV-007340-1PH-WS79-18', '2025-08-01 00:00:00', 'Stock Status供应商付款;PV:PV 007340', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (65, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1716-19', '2025-01-20 00:00:00', 'Stock Status客户收款;发票:INV_1716', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (66, '付款', 89, 43, 63, -239928.480000, 0.000000, -239928.480000, 17, 'FK-PV-007319-1PH-WS79-20', '2025-07-23 00:00:00', 'Stock Status供应商付款;PV:PV 007319', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (67, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1717-22', '2025-06-15 00:00:00', 'Stock Status客户收款;发票:INV_1717', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (68, '付款', 89, 43, 63, -144750.969000, 0.000000, -144750.969000, 17, 'FK-PV-007340-1PH-WS79-23', '2025-08-01 00:00:00', 'Stock Status供应商付款;PV:PV 007340', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (69, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1727-23', '2025-07-31 00:00:00', 'Stock Status客户收款;发票:INV_1727', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (70, '付款', 89, 43, 63, -95506.290000, 0.000000, -95506.290000, 17, 'FK-PV-007377-1PH-WS79-24', '2025-08-15 00:00:00', 'Stock Status供应商付款;PV:PV 007377', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (71, '收款', 90, 43, 63, 161700.000000, 0.000000, 161700.000000, 17, 'SK-INV_1729-24', '2025-08-06 00:00:00', 'Stock Status客户收款;发票:INV_1729', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (72, '付款', 89, 43, 63, -979098.274000, 0.000000, -979098.274000, 17, 'FK-PV-007341-1PH-WS79-25', '2025-08-01 00:00:00', 'Stock Status供应商付款;PV:PV 007341', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (73, '收款', 90, 43, 63, 80850.000000, 0.000000, 80850.000000, 17, 'SK-INV_1728-25', '2025-07-31 00:00:00', 'Stock Status客户收款;发票:INV_1728', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (74, '付款', 89, 43, 63, -729142.389000, 0.000000, -729142.389000, 17, 'FK-PV-007429-1PH-WS79-34', '2025-09-03 00:00:00', 'Stock Status供应商付款;PV:PV 007429', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (75, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1753-34', '2025-08-22 00:00:00', 'Stock Status客户收款;发票:INV_1753', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (76, '付款', 89, 43, 63, -1809291.901600, 0.000000, -1809291.901600, 17, 'FK-PV-007450-1PH-WS79-40', '2025-09-19 00:00:00', 'Stock Status供应商付款;PV:PV 007450', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (77, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1772-40', '2025-09-08 00:00:00', 'Stock Status客户收款;发票:INV_1772', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (78, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1786-50', '2025-09-12 00:00:00', 'Stock Status客户收款;发票:INV_1786', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (79, '付款', 89, 43, 63, -514105.959600, 0.000000, -514105.959600, 17, 'FK-PV-007510-1PH-WS79-55', '2025-10-15 00:00:00', 'Stock Status供应商付款;PV:PV 007510', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (80, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_1819-55', '2025-10-09 00:00:00', 'Stock Status客户收款;发票:INV_1819', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (81, '付款', 89, 43, 63, -1159571.700000, 0.000000, -1159571.700000, 17, 'FK-PV-007339-3PH-APEC3-WC-11', '2025-08-01 00:00:00', 'Stock Status供应商付款;PV:PV 007339', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (82, '收款', 90, 43, 63, 374000.000000, 0.000000, 374000.000000, 17, 'SK-INV_1720-11', '2025-07-24 00:00:00', 'Stock Status客户收款;发票:INV_1720', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (83, '收款', 90, 43, 63, 748000.000000, 0.000000, 748000.000000, 17, 'SK-INV_1723-13', '2025-01-14 00:00:00', 'Stock Status客户收款;发票:INV_1723', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (84, '付款', 89, 43, 63, -1722296.520000, 0.000000, -1722296.520000, 17, 'FK-PV-007376-3PH-APEC3-WC-17', '2025-08-15 00:00:00', 'Stock Status供应商付款;PV:PV 007376', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (85, '收款', 90, 43, 63, 1122000.000000, 0.000000, 1122000.000000, 17, 'SK-INV_1745-17', '2025-08-08 00:00:00', 'Stock Status客户收款;发票:INV_1745', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (86, '收款', 90, 43, 63, 1122000.000000, 0.000000, 1122000.000000, 17, 'SK-INV_1748-20', '2025-08-08 00:00:00', 'Stock Status客户收款;发票:INV_1748', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (87, '付款', 89, 43, 63, -867076.245000, 0.000000, -867076.245000, 17, 'FK-PV-007449-3PH-APEC3-WC-24', '2025-09-19 00:00:00', 'Stock Status供应商付款;PV:PV 007449', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (88, '收款', 90, 43, 63, 374000.000000, 0.000000, 374000.000000, 17, 'SK-INV_1784-24', '2025-09-12 00:00:00', 'Stock Status客户收款;发票:INV_1784', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (89, '付款', 89, 43, 63, -1503934.614000, 0.000000, -1503934.614000, 17, 'FK-PV-007473-3PH-APEC3-WC-27', '2025-09-26 00:00:00', 'Stock Status供应商付款;PV:PV 007473', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (90, '收款', 90, 43, 63, 1122000.000000, 0.000000, 1122000.000000, 17, 'SK-INV_1796-27', '2025-09-17 00:00:00', 'Stock Status客户收款;发票:INV_1796', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (91, '收款', 90, 43, 63, 822800.000000, 0.000000, 822800.000000, 17, 'SK-INV_1805-31', '2025-09-22 00:00:00', 'Stock Status客户收款;发票:INV_1805', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (92, '付款', 89, 43, 63, -236946.640000, 0.000000, -236946.640000, 17, 'FK-PV-008186-87-1PH-WS79-ADD1-11', '2026-08-14 00:00:00', 'Stock Status供应商付款;PV:PV 008186/87', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (93, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_2111-11', '2026-07-27 00:00:00', 'Stock Status客户收款;发票:INV_2111', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (94, '收款', 90, 43, 63, 161700.000000, 0.000000, 161700.000000, 17, 'SK-INV_2113-15', '2026-07-28 00:00:00', 'Stock Status客户收款;发票:INV_2113', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (95, '收款', 90, 43, 63, 161700.000000, 0.000000, 161700.000000, 17, 'SK-INV_2122-26', '2026-07-31 00:00:00', 'Stock Status客户收款;发票:INV_2122', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (96, '收款', 90, 43, 63, 242550.000000, 0.000000, 242550.000000, 17, 'SK-INV_2130-44', '2026-08-07 00:00:00', 'Stock Status客户收款;发票:INV_2130', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (97, '收款', 90, 43, 63, 80850.000000, 0.000000, 80850.000000, 17, 'SK-INV_2131-47', '2026-07-13 00:00:00', 'Stock Status客户收款;发票:INV_2131', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (98, '收款', 90, 43, 63, 80850.000000, 0.000000, 80850.000000, 17, 'SK-INV_2133-65', '2026-08-14 00:00:00', 'Stock Status客户收款;发票:INV_2133', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (99, '收款', 90, 43, 63, 1122000.000000, 0.000000, 1122000.000000, 17, 'SK-INV_2129-11', '2026-08-13 00:00:00', 'Stock Status客户收款;发票:INV_2129', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (100, '付款', 89, 43, 63, -954860.058400, 0.000000, -954860.058400, 17, 'FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O', '2026-08-03 00:00:00', 'Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (101, '收款', 90, 43, 63, 1122000.000000, 0.000000, 1122000.000000, 17, 'SK-INV_2102-11', '2026-06-30 00:00:00', 'Stock Status客户收款;发票:INV_2102', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (102, '收款', 90, 43, 63, 1122000.000000, 0.000000, 1122000.000000, 17, 'SK-INV_2107-14', '2026-07-06 00:00:00', 'Stock Status客户收款;发票:INV_2107', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (103, '收款', 90, 43, 63, 1122000.000000, 0.000000, 1122000.000000, 17, 'SK-INV_2108-18', '2026-07-16 00:00:00', 'Stock Status客户收款;发票:INV_2108', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (104, '付款', 89, 43, 63, -947751.900000, 0.000000, -947751.900000, 17, 'FK-PV-008186-87-3PH-APEC3-WC-OV-25', '2026-08-14 00:00:00', 'Stock Status供应商付款;PV:PV 008186/87', '', '1', '0', 63, '0'); +INSERT INTO `tbl_account_head` VALUES (105, '收款', 90, 43, 63, 1122000.000000, 0.000000, 1122000.000000, 17, 'SK-INV_2110-25', '2026-07-24 00:00:00', 'Stock Status客户收款;发票:INV_2110', '', '1', '0', 63, '0'); + +-- ---------------------------- +-- Table structure for tbl_account_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_account_item`; +CREATE TABLE `tbl_account_item` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `header_id` bigint NOT NULL COMMENT '表头Id', + `account_id` bigint NULL DEFAULT NULL COMMENT '账户Id', + `in_out_item_id` bigint NULL DEFAULT NULL COMMENT '收支项目Id', + `bill_id` bigint NULL DEFAULT NULL COMMENT '单据id', + `need_debt` decimal(24, 6) NULL DEFAULT NULL COMMENT '应收欠款', + `finish_debt` decimal(24, 6) NULL DEFAULT NULL COMMENT '已收欠款', + `each_amount` decimal(24, 6) NULL DEFAULT NULL COMMENT '单项金额', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '单据备注', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `FK9F4CBAC0AAE50527`(`account_id`) USING BTREE, + INDEX `FK9F4CBAC0C5FE6007`(`header_id`) USING BTREE, + INDEX `FK9F4CBAC0D203EDC5`(`in_out_item_id`) USING BTREE, + INDEX `bill_id`(`bill_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 106 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '财务子表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_account_item +-- ---------------------------- +INSERT INTO `tbl_account_item` VALUES (56, 56, 17, NULL, 1452, 490440.555000, 0.000000, -490440.555000, 'Stock Status供应商付款;PV:PV 7297', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (57, 57, 17, NULL, 1453, 80850.000000, 0.000000, 80850.000000, 'Stock Status客户收款;发票:INV_1707', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (58, 58, 17, NULL, 1457, 143957.088000, 0.000000, -143957.088000, 'Stock Status供应商付款;PV:PV 007319', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (59, 59, 17, NULL, 1458, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1713', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (60, 60, 17, NULL, NULL, 143259.435000, 0.000000, -143259.435000, 'Stock Status供应商付款;PV:PV 007377', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (61, 61, 17, NULL, 1459, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1744', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (62, 62, 17, NULL, NULL, 95971.392000, 0.000000, -95971.392000, 'Stock Status供应商付款;PV:PV 007319', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (63, 63, 17, NULL, 1460, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1715', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (64, 64, 17, NULL, NULL, 48250.323000, 0.000000, -48250.323000, 'Stock Status供应商付款;PV:PV 007340', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (65, 65, 17, NULL, 1461, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1716', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (66, 66, 17, NULL, 1462, 239928.480000, 0.000000, -239928.480000, 'Stock Status供应商付款;PV:PV 007319', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (67, 67, 17, NULL, 1465, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1717', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (68, 68, 17, NULL, NULL, 144750.969000, 0.000000, -144750.969000, 'Stock Status供应商付款;PV:PV 007340', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (69, 69, 17, NULL, 1466, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1727', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (70, 70, 17, NULL, NULL, 95506.290000, 0.000000, -95506.290000, 'Stock Status供应商付款;PV:PV 007377', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (71, 71, 17, NULL, 1467, 161700.000000, 0.000000, 161700.000000, 'Stock Status客户收款;发票:INV_1729', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (72, 72, 17, NULL, 1468, 979098.274000, 0.000000, -979098.274000, 'Stock Status供应商付款;PV:PV 007341', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (73, 73, 17, NULL, 1469, 80850.000000, 0.000000, 80850.000000, 'Stock Status客户收款;发票:INV_1728', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (74, 74, 17, NULL, 1479, 729142.389000, 0.000000, -729142.389000, 'Stock Status供应商付款;PV:PV 007429', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (75, 75, 17, NULL, 1480, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1753', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (76, 76, 17, NULL, NULL, 1809291.901600, 0.000000, -1809291.901600, 'Stock Status供应商付款;PV:PV 007450', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (77, 77, 17, NULL, 1487, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1772', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (78, 78, 17, NULL, 1500, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1786', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (79, 79, 17, NULL, NULL, 514105.959600, 0.000000, -514105.959600, 'Stock Status供应商付款;PV:PV 007510', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (80, 80, 17, NULL, 1506, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_1819', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (81, 81, 17, NULL, 1527, 1159571.700000, 0.000000, -1159571.700000, 'Stock Status供应商付款;PV:PV 007339', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (82, 82, 17, NULL, 1528, 374000.000000, 0.000000, 374000.000000, 'Stock Status客户收款;发票:INV_1720', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (83, 83, 17, NULL, 1530, 748000.000000, 0.000000, 748000.000000, 'Stock Status客户收款;发票:INV_1723', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (84, 84, 17, NULL, NULL, 1722296.520000, 0.000000, -1722296.520000, 'Stock Status供应商付款;PV:PV 007376', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (85, 85, 17, NULL, 1536, 1122000.000000, 0.000000, 1122000.000000, 'Stock Status客户收款;发票:INV_1745', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (86, 86, 17, NULL, 1540, 1122000.000000, 0.000000, 1122000.000000, 'Stock Status客户收款;发票:INV_1748', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (87, 87, 17, NULL, 1547, 867076.245000, 0.000000, -867076.245000, 'Stock Status供应商付款;PV:PV 007449', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (88, 88, 17, NULL, 1548, 374000.000000, 0.000000, 374000.000000, 'Stock Status客户收款;发票:INV_1784', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (89, 89, 17, NULL, NULL, 1503934.614000, 0.000000, -1503934.614000, 'Stock Status供应商付款;PV:PV 007473', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (90, 90, 17, NULL, 1551, 1122000.000000, 0.000000, 1122000.000000, 'Stock Status客户收款;发票:INV_1796', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (91, 91, 17, NULL, 1557, 822800.000000, 0.000000, 822800.000000, 'Stock Status客户收款;发票:INV_1805', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (92, 92, 17, NULL, 1601, 236946.640000, 0.000000, -236946.640000, 'Stock Status供应商付款;PV:PV 008186/87', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (93, 93, 17, NULL, 1602, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_2111', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (94, 94, 17, NULL, 1606, 161700.000000, 0.000000, 161700.000000, 'Stock Status客户收款;发票:INV_2113', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (95, 95, 17, NULL, 1618, 161700.000000, 0.000000, 161700.000000, 'Stock Status客户收款;发票:INV_2122', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (96, 96, 17, NULL, 1638, 242550.000000, 0.000000, 242550.000000, 'Stock Status客户收款;发票:INV_2130', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (97, 97, 17, NULL, 1641, 80850.000000, 0.000000, 80850.000000, 'Stock Status客户收款;发票:INV_2131', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (98, 98, 17, NULL, 1660, 80850.000000, 0.000000, 80850.000000, 'Stock Status客户收款;发票:INV_2133', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (99, 99, 17, NULL, 1679, 1122000.000000, 0.000000, 1122000.000000, 'Stock Status客户收款;发票:INV_2129', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (100, 100, 17, NULL, 1691, 954860.058400, 0.000000, -954860.058400, 'Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (101, 101, 17, NULL, 1692, 1122000.000000, 0.000000, 1122000.000000, 'Stock Status客户收款;发票:INV_2102', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (102, 102, 17, NULL, 1695, 1122000.000000, 0.000000, 1122000.000000, 'Stock Status客户收款;发票:INV_2107', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (103, 103, 17, NULL, 1700, 1122000.000000, 0.000000, 1122000.000000, 'Stock Status客户收款;发票:INV_2108', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (104, 104, 17, NULL, NULL, 947751.900000, 0.000000, -947751.900000, 'Stock Status供应商付款;PV:PV 008186/87', 63, '0'); +INSERT INTO `tbl_account_item` VALUES (105, 105, 17, NULL, 1710, 1122000.000000, 0.000000, 1122000.000000, 'Stock Status客户收款;发票:INV_2110', 63, '0'); + +-- ---------------------------- +-- Table structure for tbl_asset +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_asset`; +CREATE TABLE `tbl_asset` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `asset_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '资产编号', + `asset_name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '资产名称', + `category_id` bigint NULL DEFAULT NULL COMMENT '????ID', + `asset_category` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资产分类', + `specification` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格型号', + `unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '项' COMMENT '计量单位', + `quantity` decimal(24, 6) NOT NULL DEFAULT 1.000000 COMMENT '账面数量', + `original_value` decimal(24, 6) NOT NULL DEFAULT 0.000000 COMMENT '资产原值', + `purchase_date` datetime(0) NULL DEFAULT NULL COMMENT '购置日期', + `use_department` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '使用部门', + `keeper` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '保管人', + `location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '存放地点', + `status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'IN_USE' COMMENT '状态:IDLE/IN_USE/REPAIR/SCRAPPED', + `source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'MANUAL' COMMENT '数据来源', + `external_source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '??????', + `external_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '????ID', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `creator` bigint NULL DEFAULT NULL, + `updater` bigint NULL DEFAULT NULL, + `delete_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0', + `create_time` datetime(0) NULL DEFAULT NULL, + `update_time` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_asset_external_source`(`external_source`, `external_id`) USING BTREE, + INDEX `idx_asset_status`(`status`) USING BTREE, + INDEX `idx_asset_code`(`asset_code`) USING BTREE, + INDEX `idx_asset_category`(`category_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 271 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '资产台账' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of tbl_asset +-- ---------------------------- +INSERT INTO `tbl_asset` VALUES (1, 'FA-SMT-2024-001', 'SMT 高速贴片生产线', 11, '生产设备', 'Panasonic NPM-D3A 双轨配置', '台', 1.000000, 2850000.000000, '2024-03-18 00:00:00', 'SMT生产部', '王磊', '一车间 SMT-01 线', 'IN_USE', 'DEMO', NULL, NULL, '关键设备,按月盘点并执行点检保养', 63, NULL, '1', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset` VALUES (2, 'FA-SMT-2024-002', '十温区氮气回流焊系统', 11, '生产设备', 'HELLER 1936MK7', '台', 1.000000, 980000.000000, '2024-03-18 00:00:00', 'SMT生产部', '王磊', '一车间 SMT-01 线', 'IN_USE', 'DEMO', NULL, NULL, '炉温曲线纳入工艺受控文件', 63, NULL, '1', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset` VALUES (3, 'FA-QC-2024-003', '在线 3D AOI 检测系统', 12, '检测设备', 'Koh Young Zenith 2', '台', 1.000000, 1350000.000000, '2024-04-06 00:00:00', '品质部', '陈晨', '一车间 AOI 检测区', 'IN_USE', 'DEMO', NULL, NULL, '用于焊后外观与三维缺陷检测', 63, NULL, '1', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset` VALUES (4, 'FA-QC-2024-004', '在线 3D SPI 检测系统', 12, '检测设备', 'Koh Young KY8030-3', '台', 1.000000, 1120000.000000, '2024-04-06 00:00:00', '品质部', '陈晨', '一车间 印刷检测区', 'IN_USE', 'DEMO', NULL, NULL, '用于锡膏体积、高度及偏移检测', 63, NULL, '1', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset` VALUES (5, 'FA-UTIL-2023-005', '螺杆式空气压缩机', 13, '动力设备', 'Atlas Copco GA22 VSD+', '台', 1.000000, 186000.000000, '2023-11-20 00:00:00', '设备动力部', '陈晨', '动力站 1 号机位', 'IN_USE', 'DEMO', NULL, NULL, '为 SMT 车间提供稳定压缩空气', 63, NULL, '1', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset` VALUES (6, 'FA-IT-2025-006', 'MES 数据库服务器', 14, 'IT设备', 'Dell PowerEdge R760', '台', 1.000000, 168000.000000, '2025-01-15 00:00:00', '信息技术部', '赵敏', '数据中心 A03 机柜', 'IN_USE', 'DEMO', NULL, NULL, '双机热备主节点,纳入信息安全资产清单', 63, NULL, '1', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset` VALUES (7, 'FA-WH-2024-007', '电动平衡重式叉车', 15, '物流设备', 'Toyota 8FBE20', '台', 1.000000, 145000.000000, '2024-07-22 00:00:00', '仓储物流部', '张伟', '原材料仓充电区', 'IN_USE', 'DEMO', NULL, NULL, '额定载荷 2.0 吨,持证人员操作', 63, NULL, '1', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset` VALUES (8, 'FA-TOOL-2025-008', '全自动钢网清洗机', 16, '工装设备', 'SAWA SC-A1000', '台', 1.000000, 78000.000000, '2025-02-10 00:00:00', 'SMT生产部', '王磊', '一车间 钢网房', 'IN_USE', 'DEMO', NULL, NULL, '用于钢网水基闭环清洗与烘干', 63, NULL, '1', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset` VALUES (16, 'SAS-HW-389', 'Lenovo ThinkPad T14s 2-in-1', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad T14s 2-in-1 / Win 11 Home / Core Ultra 5 / 16G / 500G SSD', '台', 1.000000, 0.000000, '2026-08-20 00:00:00', 'GM', 'Syed Bakri', 'Admin', 'IN_USE', 'SAS', 'HARDWARE', '389', '序列号: PF6EN008', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (17, 'SAS-HW-387', 'HP HP LaserJet MFP M236sdw', 5, '硬件资产', 'Printer / HP / HP LaserJet MFP M236sdw', '台', 1.000000, 0.000000, NULL, 'Prod', NULL, 'R&D Room', 'IN_USE', 'SAS', 'HARDWARE', '387', '序列号: VNP5F19044', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (18, 'SAS-HW-385', 'TP-Link Omada SG3452', 5, '硬件资产', 'Switch / TP-Link / Omada SG3452', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Haslim', 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '385', '序列号: 225B0AN000371;MAC: 6C-4C-BC-C9-F0-8A', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (19, 'SAS-HW-384', 'H3C H3C UniServer R3950 G6', 5, '硬件资产', 'Server / H3C / H3C UniServer R3950 G6', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Haslim', 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '384', '序列号: 210235A4V0H259000004', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (20, 'SAS-HW-383', 'Epson Epson LQ-310', 5, '硬件资产', 'Printer / Epson / Epson LQ-310', '台', 1.000000, 0.000000, NULL, 'Ad', 'Hab', 'Admin Office', 'IN_USE', 'SAS', 'HARDWARE', '383', '序列号: R9DY417590', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (21, 'SAS-HW-382', 'HP HP LaserJet 1020', 5, '硬件资产', 'Printer / HP / HP LaserJet 1020', '台', 1.000000, 0.000000, NULL, 'Finance', 'Juwairiah', 'Finance Mgr Room', 'IN_USE', 'SAS', 'HARDWARE', '382', '序列号: CNCKC63735', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (22, 'SAS-HW-381', 'HP HP LaserJet 1020', 5, '硬件资产', 'Printer / HP / HP LaserJet 1020', '台', 1.000000, 0.000000, NULL, 'Store', 'Wan Rosli', 'Store Office', 'IN_USE', 'SAS', 'HARDWARE', '381', '序列号: CNCK596090', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (23, 'SAS-HW-380', 'Canon Canon Imageclass mf633cdw', 5, '硬件资产', 'Printer / Canon / Canon Imageclass mf633cdw', '台', 1.000000, 0.000000, NULL, 'CEO', NULL, 'CEO Office', 'IN_USE', 'SAS', 'HARDWARE', '380', '序列号: WUE14822', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (24, 'SAS-HW-379', 'TP-Link Omada Controller OC220', 5, '硬件资产', 'Other / TP-Link / Omada Controller OC220', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Haslim', 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '379', '序列号: 225906R001139;MAC: 3C-78-95-33-F9-5A;用途: Network controller', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (25, 'SAS-HW-378', 'Prolink Prolink 3KVA/2700W', 5, '硬件资产', 'Other / Prolink / Prolink 3KVA/2700W', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Haslim', 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '378', '序列号: 535101254800056;用途: UPS for servers and switches.', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (26, 'SAS-HW-377', 'ScreenBeam ScreenBeam 1100 Plus', 5, '硬件资产', 'Other / ScreenBeam / ScreenBeam 1100 Plus', '台', 1.000000, 0.000000, NULL, 'Admin', NULL, 'Meeting Room', 'IN_USE', 'SAS', 'HARDWARE', '377', '序列号: CBKB52500329;用途: Smartboard add-on for presentation', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (27, 'SMT/N02/PC007', 'HP All-in-One 24-dp0209d', 5, '硬件资产', 'All-In-One / HP / All-in-One 24-dp0209d / Win 11 Pro / AMD Ryzen 5 4500U / 24G / 500G', '台', 1.000000, 0.000000, NULL, 'Admin', 'Habsah', 'Admin', 'IN_USE', 'SAS', 'HARDWARE', '188', '序列号: 8CC10109H6;用途: test', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (28, 'SMT/LAP16/112004', 'HP HP 14s-cf3022tx', 5, '硬件资产', 'Laptop / HP / HP 14s-cf3022tx / Win 11 Pro / Core i5-1035G1 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Admin', 'Habsah', 'Admin', 'IN_USE', 'SAS', 'HARDWARE', '189', '序列号: 5CG03082JY;原备注: MTPH4-NH3DW-BRKQY-YMVFB-88F72', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (29, 'SAS-HW-190', 'Microsoft Surface Pro 7 @1866', 5, '硬件资产', 'Laptop / Microsoft / Surface Pro 7 @1866 / Core i5-1035G4 / 8G / 128G', '台', 1.000000, 0.000000, NULL, 'CEO', 'CEO', 'CEO', 'IN_USE', 'SAS', 'HARDWARE', '190', '序列号: 065060402353', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (30, 'PTC8320M', 'Dell OptiPlex 7070', 5, '硬件资产', 'CPU / Dell / OptiPlex 7070 / Win 10 Pro / Core i5-8500 / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Fitri', NULL, 'IN_USE', 'SAS', 'HARDWARE', '191', '序列号: DCH5F13', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (31, 'SMT/TECH/043PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '192', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (32, 'SMT/TECH/043CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '193', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (33, 'SMT/TECH/044PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '194', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (34, 'SMT/TECH/044CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 240G', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '195', '序列号: 4CE216BFHW;用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (35, 'SMT/TECH/045PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '196', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (36, 'SMT/TECH/045CPU', 'Cooto', 5, '硬件资产', 'CPU / Cooto', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '197', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (37, 'SMT/TECH/046PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '198', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (38, 'SMT/TECH/046CPU', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Core i3-10100', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Ariffin', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '199', '序列号: LH5TTC3;用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (39, 'SMT/TECH/047PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '200', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (40, 'SMT/TECH/047CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Azam', 'Tech Room', 'IN_USE', 'SAS', 'HARDWARE', '201', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (41, 'SMT/LAP13/112004', 'HP HP 14s-cf2036tx', 5, '硬件资产', 'Laptop / HP / HP 14s-cf2036tx / Win 10 Home / Core i7-1051U / 8G / 500GB', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Fitri/Hanif', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '202', '序列号: 5CG011D1XR;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (42, 'SMT/CPU/053,SMT/N02/CPU046', 'Dell Vostro 230', 5, '硬件资产', 'CPU / Dell / Vostro 230 / Win 7 Pro / Pentium Dual Core E6700 / 4G / 320G', '台', 1.000000, 0.000000, NULL, 'Production 2', 'Halimaton', NULL, 'IN_USE', 'SAS', 'HARDWARE', '203', '序列号: 2VBK92S', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (43, 'SMT/LAP5/112004', 'Lenovo ThinkPad X1', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 / Win 10 Pro / Core i7-10510U / 16G / 256G', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Amir', NULL, 'IN_USE', 'SAS', 'HARDWARE', '204', '序列号: PF1V7QXT', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (44, 'SMT/LAP20/112004', 'HP HP 14s-cf3022tx', 5, '硬件资产', 'Laptop / HP / HP 14s-cf3022tx / Win 10 Home / Core i5-1035G1 / 8G / 512G', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Adha', NULL, 'IN_USE', 'SAS', 'HARDWARE', '205', '序列号: 5CG03082JK', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (45, 'SMT/TECH/047', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 10 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Ilham', NULL, 'IN_USE', 'SAS', 'HARDWARE', '206', '序列号: 4CE216BNS9', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (46, 'SAS-HW-207', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Engineering', 'Adha', NULL, 'IN_USE', 'SAS', 'HARDWARE', '207', '序列号: 4CE216BFJM', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (47, 'SMT/LAP2/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 10 Pro / Core i7-10510U / 16G / 256G', '台', 1.000000, 0.000000, NULL, 'Finance', 'Juwairiah', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '208', '序列号: PF1VB7AE;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (48, 'SAS-HW-209', 'HP All-in-One 24-dp0209d', 5, '硬件资产', 'All-In-One / HP / All-in-One 24-dp0209d / Win 11 Home / AMD Ryzen 5 4500U / 24G / 500G', '台', 1.000000, 0.000000, NULL, 'Finance', 'Juwairiah', 'Finance Room', 'IN_USE', 'SAS', 'HARDWARE', '209', '序列号: 8CC10114RG', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (49, 'SMT/N02/CPU003', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 1T', '台', 1.000000, 0.000000, NULL, 'Finance', 'Sharida', 'HR Room', 'IN_USE', 'SAS', 'HARDWARE', '210', '序列号: 4CE219BMV5', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (50, 'SMT/LAP3/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-8650U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Human Resources', 'Hasmah', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '211', '序列号: PF1Q9H0C;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (51, 'SAS-HW-212', 'HP All-in-One 24-dp0209d', 5, '硬件资产', 'All-In-One / HP / All-in-One 24-dp0209d / Win 10 Home / AMD Ryzen 5 4500U / 24G / 500G', '台', 1.000000, 0.000000, NULL, 'Human Resources', 'Hasmah', 'HR Room', 'IN_USE', 'SAS', 'HARDWARE', '212', '序列号: 8CC10109F6', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (52, 'SMT/LAP16/11112024', 'HP Radeon Intel Core i5', 5, '硬件资产', 'Laptop / HP / Radeon Intel Core i5', '台', 1.000000, 0.000000, NULL, 'Human Resources', 'Hasmah', 'Stored with HR', 'IN_USE', 'SAS', 'HARDWARE', '213', '用途: Stored', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (53, 'SMT/LAP17/11112024', 'HP Pro Book 440', 5, '硬件资产', 'Laptop / HP / Pro Book 440', '台', 1.000000, 0.000000, NULL, 'Human Resources', 'Hasmah', 'Stored with HR', 'IN_USE', 'SAS', 'HARDWARE', '214', '用途: Stored', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (54, 'SMT/LAP18/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8', '台', 1.000000, 0.000000, NULL, 'Human Resources', 'Hasmah', 'Stored with HR', 'IN_USE', 'SAS', 'HARDWARE', '215', '用途: Stored', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (55, 'SMT/LAP19/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8', '台', 1.000000, 0.000000, NULL, 'Human Resources', 'Hasmah', 'Not Specified', 'REPAIR', 'SAS', 'HARDWARE', '216', '用途: Not Specified;原备注: RETURN TO SUPPLIER DUE THE PROBLEM', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (56, 'SMT/LAB/029PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '217', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (57, 'SMT/LAB/029CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1TB', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '218', '序列号: 4CE219BMSP;用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (58, 'SMT/LAB/030PC', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '219', '序列号: 4CE216BDPN;用途: Testing / Lab;原备注: Windows License Key : QRWJ7-2N8MF-TM9WY-HKB42-VFR9C\n', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (59, 'SMT/N02/CPU020', 'HP HP Pro 3330 MT', 5, '硬件资产', 'CPU / HP / HP Pro 3330 MT / Win 10 Pro / Core i7-2600 / 8G / 220G', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '220', '序列号: SGH221S6SH;用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (60, 'SMT/LAB/031PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '221', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (61, 'SMT/LAB/031CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '222', '序列号: 4CE216BDQP;用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (62, 'SMT/LAB/032CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '223', '序列号: 4CE216BFJJ;用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (63, 'SMT/LAB/032PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '224', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (64, 'SMT/LAB/033PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '225', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (65, 'SMT/LAB/033CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '226', '序列号: 4CE216BFJC;用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (66, 'SMT/LAB/034PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '227', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (67, 'SMT/LAB/034CPU', 'HP OptiPlex 7050', 5, '硬件资产', 'CPU / HP / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '228', '序列号: 5P8RRK2;用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (68, 'SMT/LAB/035PC', 'LG', 5, '硬件资产', 'Monitor / LG', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '229', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (69, 'SMT/LAB/035CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '230', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (70, 'SMT/LAB/036PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '231', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (71, 'SMT/LAB/037PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '232', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (72, 'SMT/LAB/037CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '233', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (73, 'SMT/LAB/038PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '234', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (74, 'SMT/LAB/038CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '235', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (75, 'SMT/LAB/039PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '236', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (76, 'SMT/LAB/039CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '237', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (77, 'SMT/LAB/040PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '238', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (78, 'SMT/LAB/040CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '239', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (79, 'SMT/LAB/041PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '240', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (80, 'SMT/LAB/041CPU', 'Dell ProDesk 400 G7', 5, '硬件资产', 'CPU / Dell / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'X-Hadi', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '241', '序列号: 4CE219BMV4;用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (81, 'SMT/LAB/042PC', 'LG', 5, '硬件资产', 'Monitor / LG', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aqila', 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '242', '用途: Testing / Lab', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (82, 'SAS-HW-243', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '243', '序列号: 4CE216BFJJ', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (83, 'SAS-HW-244', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '244', '序列号: 4CE216BDQP', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (84, 'SMT/LAB/029CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1TB', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '245', '序列号: 4CE219BMSP', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (85, 'SMT/LAB/036CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 10 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '246', '序列号: 4CE219BMSZ', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (86, 'PTC8320E-02', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '247', '序列号: 4CE216BFJN', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (87, 'SAS-HW-248', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '248', '序列号: 4CE219BMTF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (88, 'PTC8320E-01', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1TB', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '249', '序列号: 4CE219BMV6', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (89, 'SAS-HW-250', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '250', '序列号: 4CE219BM77', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (90, 'PTC8320D-02', 'Dell OptiPlex 7010', 5, '硬件资产', 'CPU / Dell / OptiPlex 7010 / Win 7 Ultimate / Core i3-3240 / 4G / 500G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '251', '序列号: 4KS46Z1', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (91, 'PTC8320E-04', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1T', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '252', '序列号: 4CE219BMTV', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (92, 'SMT/LAB/014CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 1T', '台', 1.000000, 0.000000, NULL, 'Laboratory', 'Aliff', NULL, 'IN_USE', 'SAS', 'HARDWARE', '253', '序列号: 4CE219BMV4', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (93, 'SAS-HW-254', 'Smartboard NM-G750XS01', 5, '硬件资产', 'Smartboard / Smartboard NM-G750XS01 / Win 10 / Core i5-2450M / 8G / 128G', '台', 1.000000, 0.000000, NULL, 'Meeting Room', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '254', '序列号: HH230216698', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (94, 'SMT/OFFICE2/048PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '255', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (95, 'SMT/OFFICE2/048CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '256', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (96, 'SMT/OFFICE2/049PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '257', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (97, 'SMT/OFFICE2/049CPU', 'HP HP Pro 3330 MT', 5, '硬件资产', 'CPU / HP / HP Pro 3330 MT / Win 7 Pro / Core i7-2600 / 6G / 500G', '台', 1.000000, 0.000000, NULL, 'Quality', 'Herman', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '258', '序列号: SGH221S6SS;用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (98, 'SMT/OFFICE2/050PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '259', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (99, 'SMT/OFFICE2/050CPU', 'Dell', 5, '硬件资产', 'CPU / Dell', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '260', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (100, 'SMT/OFFICE2/051PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '261', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (101, 'SMT/OFFICE2/051CPU', 'HP', 5, '硬件资产', 'CPU / HP', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '262', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (102, 'SMT/OFFICE2/052PC', 'LG', 5, '硬件资产', 'Monitor / LG', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '263', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (103, 'SMT/OFFICE2/052CPU', 'CPU 硬件资产 264', 5, '硬件资产', 'CPU', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Office 2', 'IN_USE', 'SAS', 'HARDWARE', '264', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (104, 'SMT/STORE/053PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Store Office', 'IN_USE', 'SAS', 'HARDWARE', '265', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (105, 'SMT/STORE/054PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Not Specified', 'Not Specified', 'Store Office', 'IN_USE', 'SAS', 'HARDWARE', '266', '用途: Not Specified', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (106, 'SMT/LAP1/11112024', 'Acer Acer Spin 3', 5, '硬件资产', 'Laptop / Acer / Acer Spin 3 / Win 11 Home / Core i7-1165G7 / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Operation', 'Arif', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '267', '序列号: NXA9VSM00414307CD96600;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (107, 'SMT/LAP12/11112024', 'HP Pro Book 440 G8', 5, '硬件资产', 'Laptop / HP / Pro Book 440 G8 / Win 11 Pro / Core i5-1135G7 / 8G / 240G', '台', 1.000000, 0.000000, NULL, 'Production', 'Syafiq', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '268', '序列号: 5CD14257QY;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (108, 'SMT/LAP7/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-8565U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Mazidah', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '269', '序列号: PF2685GY;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (109, 'SMT/LAP10/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10510U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '270', '序列号: PF1VB811;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (110, 'SMT/LAP14/11112024,SMT/LAP14/112004', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i5-8265U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Hana', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '271', '序列号: PF267MWG;用途: Sticker/Print', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (111, 'SMT/PRO2/001PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 1', 'IN_USE', 'SAS', 'HARDWARE', '272', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (112, 'SMT/PRO2/001CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production 2', 'Halimaton', 'Prod 2', 'IN_USE', 'SAS', 'HARDWARE', '273', '序列号: FBHMLN2', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (113, 'SAS-HW-274', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Win 10 Pro / Core i3-10100 / 8G / 480G, 1T', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Production 1', 'IN_USE', 'SAS', 'HARDWARE', '274', '序列号: 3H5TTC3;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (114, 'SMT/PRO2/002PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 1', 'IN_USE', 'SAS', 'HARDWARE', '275', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (115, 'SMT/PRO2/002CPU', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Core i3-10100 / 1T', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 1', 'IN_USE', 'SAS', 'HARDWARE', '276', '序列号: CDVSTC3;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (116, 'SMT/PRO2/003PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 1', 'IN_USE', 'SAS', 'HARDWARE', '277', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (117, 'SMT/PRO2/003CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 1', 'IN_USE', 'SAS', 'HARDWARE', '278', '序列号: 18TR7N2 / 1R22GL2;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (118, 'SMT/PRO2/004PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 2', 'IN_USE', 'SAS', 'HARDWARE', '279', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (119, 'SMT/PRO2/004CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 4G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 2', 'IN_USE', 'SAS', 'HARDWARE', '280', '序列号: B8MS9P2;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (120, 'SMT/PRO2/005PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 2', 'IN_USE', 'SAS', 'HARDWARE', '281', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (121, 'SMT/PRO2/005CPU', 'Dell OPtiPlex 3020', 5, '硬件资产', 'CPU / Dell / OPtiPlex 3020 / Win 10 Pro / Core i3-4160 / 8G / 256G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 2', 'IN_USE', 'SAS', 'HARDWARE', '282', '序列号: FNL9YC2;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (122, 'SMT/PRO2/006PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 2', 'IN_USE', 'SAS', 'HARDWARE', '283', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (123, 'SMT/PRO2/006CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 2', 'IN_USE', 'SAS', 'HARDWARE', '284', '序列号: 18TR7N2;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (124, 'SMT/PRO2/007PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 2', 'IN_USE', 'SAS', 'HARDWARE', '285', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (125, 'SMT/PRO2/007CPU,SMT/PRO2/013CPU', 'HP HP Pro 3330 MT', 5, '硬件资产', 'CPU / HP / HP Pro 3330 MT / Core i7-2600', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 2', 'IN_USE', 'SAS', 'HARDWARE', '286', '序列号: SGH221S6RS;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (126, 'SMT/PRO2/008PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '287', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (127, 'SMT/PRO2/008CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Mazidah', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '288', '序列号: 1P12LQ2;用途: RF;原备注: 3-Aug : Ram upgraded from 8Gb to 16Gb', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (128, 'SMT/PRO2/009PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '289', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (129, 'SMT/PRO2/009CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Mazidah', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '290', '序列号: BB4W9P2;用途: RF;原备注: 3-Aug: Ram upgraded from 8Gb to 16Gb', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (130, 'SMT/PRO2/010PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '291', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (131, 'SMT/PRO2/010CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '292', '序列号: GT8YPM2;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (132, 'SMT/PRO2/011PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '293', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (133, 'SMT/PRO2/011CPU', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 12G / 1TB', '台', 1.000000, 0.000000, NULL, 'Production', 'Ma', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '294', '序列号: JG5TTC3;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (134, 'SMT/PRO2/012PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '295', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (135, 'SMT/PRO2/012CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 3', 'IN_USE', 'SAS', 'HARDWARE', '296', '序列号: 3WRV9P2;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (136, 'SMT/PRO2/013PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 4', 'IN_USE', 'SAS', 'HARDWARE', '297', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (137, 'SMT/PRO2/014PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 4', 'IN_USE', 'SAS', 'HARDWARE', '298', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (138, 'SMT/PRO2/014CPU', 'Dell Vostro 230', 5, '硬件资产', 'CPU / Dell / Vostro 230 / Win 7 Pro / Core 2 Duo E7500 / 4G / 500G', '台', 1.000000, 0.000000, NULL, 'Production 2', 'Halimaton/Syafiq', 'Prod 2 / Line 4', 'IN_USE', 'SAS', 'HARDWARE', '299', '序列号: 1VBK92S;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (139, 'SMT/PRO2/015PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 4', 'IN_USE', 'SAS', 'HARDWARE', '300', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (140, 'SMT/PRO2/015CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 4', 'IN_USE', 'SAS', 'HARDWARE', '301', '序列号: 8L2YTK2;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (141, 'SMT/PRO2/016PC', 'Lenovo', 5, '硬件资产', 'Monitor / Lenovo', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 4', 'IN_USE', 'SAS', 'HARDWARE', '302', '用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (142, 'SMT/PRO2/016CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 2 / Line 4', 'IN_USE', 'SAS', 'HARDWARE', '303', '序列号: CF7V7N2;用途: RF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (143, 'SMT/PRO1/017PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '304', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (144, 'SMT/PRO1/017CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500GB', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '305', '序列号: FBNPLN2;用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (145, 'SMT/PRO1/018PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '306', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (146, 'SMT/PRO1/018CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '307', '序列号: J26QLN2;用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (147, 'SMT/PRO1/019PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '308', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (148, 'SMT/PRO1/019CPU', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Mazidah', 'Prod 2', 'IN_USE', 'SAS', 'HARDWARE', '309', '序列号: 2H5TTC3;用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (149, 'SMT/PRO1/020PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '310', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (150, 'SMT/PRO1/020CPU', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Win 10 Pro / Core i3-10100 / 8G / 1T', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '311', '序列号: 8DVSTC3;用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (151, 'SMT/PRO1/021PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '312', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (152, 'SMT/PRO1/021CPU', 'Dell OptiPlex 5040', 5, '硬件资产', 'CPU / Dell / OptiPlex 5040 / Win 10 Pro / Core i5-6500 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '313', '序列号: 7RCBHJ2;用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (153, 'SMT/PRO1/022PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '314', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (154, 'SMT/PRO1/022CPU', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', 'Hana', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '315', '序列号: C7YQ7N2;用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (155, 'SMT/PRO1/023PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '316', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (156, 'SMT/PRO1/023CPU', 'Dell OptiPlex 3020', 5, '硬件资产', 'CPU / Dell / OptiPlex 3020 / Win 10 Pro / Core i3-4160 / 8G / 240G', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '317', '序列号: GJZ9YC2;用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (157, 'SMT/PRO1/024PC', 'HP', 5, '硬件资产', 'Monitor / HP', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '318', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (158, 'SMT/PRO1/024CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 1T', '台', 1.000000, 0.000000, NULL, 'Production', 'Herman', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '319', '序列号: 4CE219BMTT;用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (159, 'SMT/PRO1/025PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '320', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (160, 'SMT/PRO1/026PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '321', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (161, 'SMT/PRO1/027PC', 'Dell', 5, '硬件资产', 'Monitor / Dell', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '322', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (162, 'SMT/PRO1/028PC', 'LG', 5, '硬件资产', 'Monitor / LG', '台', 1.000000, 0.000000, NULL, 'Production', 'Halimaton/Syafiq', 'Prod 1', 'IN_USE', 'SAS', 'HARDWARE', '323', '用途: Packing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (163, 'SMT/TECH/046CPU', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 12G / 1T', '台', 1.000000, 0.000000, NULL, 'Engineering', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '324', '序列号: 1H5TTC3', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (164, 'SAS-HW-325', 'Dell OptiPlex 7070', 5, '硬件资产', 'CPU / Dell / OptiPlex 7070 / Win 11 Pro / Core i7-9700 / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '325', '序列号: 7PGVY23', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (165, 'SAS-HW-326', 'Dell OptiPlex 7070', 5, '硬件资产', 'CPU / Dell / OptiPlex 7070 / Win 11 Pro / Core i7-9700 / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Production', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '326', '序列号: 8D9VY23', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (166, 'SMT/LAP8/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10510U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Quality', 'Izyanti', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '327', '序列号: PF1V7QYM;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (167, 'SAS-HW-328', 'Dell OptiPlex 7050', 5, '硬件资产', 'CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Quality', 'Izyanti', NULL, 'IN_USE', 'SAS', 'HARDWARE', '328', '序列号: 51NNLN2', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (168, 'SAS-HW-329', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 10 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Quality', 'Izyanti', NULL, 'IN_USE', 'SAS', 'HARDWARE', '329', '序列号: 4CE216BDPM', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (169, 'SMT/NO2/PC058', 'Lenovo L24i-40 23.8\" FHD', 5, '硬件资产', 'Monitor / Lenovo / L24i-40 23.8\" FHD', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Daniel', 'R&D Room', 'IN_USE', 'SAS', 'HARDWARE', '330', '用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (170, 'SMT/SERVER/054PC', 'Dell 1707FP', 5, '硬件资产', 'Monitor / Dell / 1707FP', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Daniel', 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '331', '用途: Server', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (171, 'SMT/SERVER/065SN', 'TP-Link TP-Link T2600G-52TS', 5, '硬件资产', 'Switch / TP-Link / TP-Link T2600G-52TS', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Daniel', 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '332', '序列号: 2194962000254;MAC: 98-DA-C4-3C-70-1F;用途: Network Switch', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (172, 'SMT/SERVER/064CPU', 'Dell OptiPlex 7010', 5, '硬件资产', 'Server / Dell / OptiPlex 7010 / Core i5-12500 / 16G / 256G M2,2x 1TB', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '333', '序列号: JNKWG24;用途: Firewall', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (173, 'SMT/SERVER/066SN', 'TP-Link Omada SG3452', 5, '硬件资产', 'Switch / TP-Link / Omada SG3452', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '334', '序列号: 22487K4000718;MAC: 7C-F1-7E-FD-1C-07;用途: Network Switch', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (174, 'SAS-HW-335', 'TP-Link TP-Link TL-SG3428', 5, '硬件资产', 'Switch / TP-Link / TP-Link TL-SG3428', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, 'Production 2', 'IN_USE', 'SAS', 'HARDWARE', '335', '序列号: 2236057000952 v2.20;MAC: 40-ED-00-B6-41-03;用途: Network Switch', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (175, 'SAS-HW-336', 'TP-Link TP-Link TL-SG3428', 5, '硬件资产', 'Switch / TP-Link / TP-Link TL-SG3428', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, 'Production 1', 'IN_USE', 'SAS', 'HARDWARE', '336', '序列号: 2212005R00360 v2.0;MAC: 00-5F-67-77-B1-09;用途: Network Switch', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (176, 'SMT/OFFICE2/069MOD', 'TP-Link TP-Link AC1300', 5, '硬件资产', 'Router / TP-Link / TP-Link AC1300', '台', 1.000000, 0.000000, '2021-02-06 00:00:00', 'Technical & Technologies', NULL, 'Disccussion Area Level 1', 'IN_USE', 'SAS', 'HARDWARE', '337', '序列号: 22085K6C00203;MAC: 84-D8-1B-42-01-30;用途: Wifi Router', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (177, 'SAS-HW-338', 'TP-Link TP-Link AC1300', 5, '硬件资产', 'Router / TP-Link / TP-Link AC1300', '台', 1.000000, 0.000000, '2021-02-06 00:00:00', 'Technical & Technologies', NULL, 'Engineering', 'IN_USE', 'SAS', 'HARDWARE', '338', '序列号: 22085K6B00203;MAC: 84-D8-1B-42-04-80;用途: Wifi Router', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (178, 'SAS-HW-339', 'TP-Link TP-Link AC1300', 5, '硬件资产', 'Router / TP-Link / TP-Link AC1300', '台', 1.000000, 0.000000, '2021-02-06 00:00:00', 'Technical & Technologies', NULL, 'CEO Room', 'IN_USE', 'SAS', 'HARDWARE', '339', '序列号: 22085K6A00203;MAC: 84-D8-1B-42-07-74;用途: Wifi Router', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (179, 'No Code', 'D-link DGS-1210-24', 5, '硬件资产', 'Switch / D-link / DGS-1210-24', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Daniel', 'Server Room', 'REPAIR', 'SAS', 'HARDWARE', '340', '序列号: QB1A1A8000282;MAC: F0-7D-68-C2-91-07;用途: Network Switch', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (180, 'No Code', 'D-Link DGS-1210-24', 5, '硬件资产', 'Switch / D-Link / DGS-1210-24', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Daniel', 'R&D Room', 'REPAIR', 'SAS', 'HARDWARE', '341', '序列号: QB1A1A7002042;MAC: F0-7D-68-BB-F5-D0;用途: Network Switch', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (181, 'SAS-HW-342', 'D-link DGS-1210-16', 5, '硬件资产', 'Switch / D-link / DGS-1210-16', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, 'Disccussion Area Level 1', 'IN_USE', 'SAS', 'HARDWARE', '342', '序列号: QB111A8000724;MAC: F0-7D-68-C3-6B-D1;用途: Network Switch', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (182, 'SMT/SERVER/058MOD', 'TM Modem Fiber Home', 5, '硬件资产', 'Modem / TM Modem Fiber Home', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Daniel', 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '343', '序列号: TBA;用途: Network Conn', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (183, 'SMT/SERVER/054CPU', 'Dell Optiplex 960', 5, '硬件资产', 'Server / Dell / Optiplex 960 / Core i5-12500 / 8G / 256G M2', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Daniel', 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '344', '序列号: FKD822S;用途: Server', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (184, 'SMT/LAP6/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10610U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Alya', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '345', '序列号: PF2M81GS;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (185, 'SMT/LAP9/11112024', 'Dell Latitude 3440', 5, '硬件资产', 'Laptop / Dell / Latitude 3440 / Win 11 Pro / Core i7-1355U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Haslim', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '346', '序列号: 80NHPX3;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (186, 'SMT/LAP11/11112024', 'Dell Latitude 3440', 5, '硬件资产', 'Laptop / Dell / Latitude 3440 / Win 11 Pro / Core i7-1355U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Hafiz', 'Personal Carry', 'IN_USE', 'SAS', 'HARDWARE', '347', '序列号: C0NHPX3;用途: Personal Work', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (187, 'SMT/LAP16/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10510U / 16G / 500G', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Aqila', NULL, 'IN_USE', 'SAS', 'HARDWARE', '348', '序列号: PF1VB6T6;用途: Testing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (188, 'SAS-HW-349', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Ubuntu / Core i3-10100 / 8G / 1TB', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '349', '序列号: HG5TTC3', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (189, 'SMT/N02/CPU035', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Ubuntu / Core i3-10100 / 8G / 1TB', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '350', '序列号: BDVSTC3;MAC: B0:7B:25:08:F0:E2;原备注: Win LIcense Key : MP6Y3-B8NVP-2RRCP-R7X6T-H8RC2\n', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (190, 'SMT/LAP21/112004', 'HP HP 14s-cf3022tx', 5, '硬件资产', 'Laptop / HP / HP 14s-cf3022tx / Win 10 Home / Core i5-1035G1 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Quality', 'Herman', NULL, 'IN_USE', 'SAS', 'HARDWARE', '351', '序列号: 5CG030828J', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (191, 'SMT/N02/CPU002', 'Dell OptiPlex 3020', 5, '硬件资产', 'CPU / Dell / OptiPlex 3020 / Core i3-4160 / 6G / 500G', '台', 1.000000, 0.000000, NULL, 'Quality', 'Herman', NULL, 'IN_USE', 'SAS', 'HARDWARE', '352', '序列号: 7CTDR42', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (192, 'Production14', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Win 10 Pro / Core i3-10100 / 8G / 1TB', '台', 1.000000, 0.000000, NULL, 'Production 2', NULL, 'R&D Room', 'IN_USE', 'SAS', 'HARDWARE', '353', '序列号: 9DVSTC3', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (193, 'SAS-HW-354', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '354', '序列号: PC1PPJ3J', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (194, 'SAS-HW-355', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '355', '序列号: PC25J5K8', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (195, 'SAS-HW-356', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '356', '序列号: PC2DX5Q3', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (196, 'SAS-HW-357', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '357', '序列号: PC25J5KB', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (197, 'SAS-HW-358', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '358', '序列号: PC1WY69D', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (198, 'SAS-HW-359', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '359', '序列号: PC25J5KE', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (199, 'SAS-HW-360', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '360', '序列号: PC1PQXP5', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (200, 'SAS-HW-361', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '361', '序列号: PC2DX5Q0', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (201, 'SAS-HW-362', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '362', '序列号: PC1PQXP6', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (202, 'SAS-HW-363', 'Lenovo Lenovo Thinkcentre M7', 5, '硬件资产', 'CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Laboratory', NULL, 'Laboratory', 'IN_USE', 'SAS', 'HARDWARE', '363', '序列号: PC2DX5PF', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (203, 'SAS-HW-364', 'Lenovo Lenovo Thinkpad E14', 5, '硬件资产', 'Laptop / Lenovo / Lenovo Thinkpad E14 / Win 11 Pro / Core Ultra 5 225U / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', 'Aziman', NULL, 'IN_USE', 'SAS', 'HARDWARE', '364', '序列号: PF-62CZQH', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (204, 'SMT/LAP4/11112024', 'Lenovo ThinkPad X1 Carbon Gen 8', 5, '硬件资产', 'Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10510U / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Engineering', 'x-Azam', NULL, 'IN_USE', 'SAS', 'HARDWARE', '365', '序列号: PF1VB7YC', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (205, 'SMT/STORE/053CPU', 'Dell OptiPlex 3080', 5, '硬件资产', 'CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Store', 'Vacant', 'Store Office', 'IN_USE', 'SAS', 'HARDWARE', '366', '序列号: 7DVSTC3', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (206, 'SMT/STORE/054CPU', 'HP ProDesk 400 G7', 5, '硬件资产', 'CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G', '台', 1.000000, 0.000000, NULL, 'Store', 'Wan Rosli', 'Store Office', 'IN_USE', 'SAS', 'HARDWARE', '367', '序列号: 4CE216BDQ2', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (207, 'SMT/LAP21/112004', 'HP HP 14s-cf3022tx', 5, '硬件资产', 'Laptop / HP / HP 14s-cf3022tx / Win 11 Home / Core i5-1035G1 / 8G / 500G', '台', 1.000000, 0.000000, NULL, 'Store', 'Hazif', 'Store Office', 'IN_USE', 'SAS', 'HARDWARE', '368', '序列号: 5CG03082BJ;原备注: Bundled with Office Home & Student', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (208, 'SAS-HW-369', 'TP-Link TP-Link TL-MR6400', 5, '硬件资产', 'Router / TP-Link / TP-Link TL-MR6400', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, 'R&D Room', 'IN_USE', 'SAS', 'HARDWARE', '369', '序列号: 22082D8000244;MAC: 60-32-B1-BD-FB-FA;用途: Testing', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (209, 'SMT/OFFICE2/062CPU,SMT/N04/CPU004', 'Dell Vostro 230', 5, '硬件资产', 'CPU / Dell / Vostro 230 / Win 7 Pro / Core 2 Duo E7500 / 4G / 500G', '台', 1.000000, 0.000000, NULL, 'Production 2', NULL, NULL, 'IN_USE', 'SAS', 'HARDWARE', '370', '序列号: 846R72S', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (210, 'SAS-HW-371', 'Dell OptiPlex 790', 5, '硬件资产', 'CPU / Dell / OptiPlex 790 / Win 7 Pro / Core i5-2400 / 4G / 480G', '台', 1.000000, 0.000000, NULL, NULL, NULL, 'R&D Room', 'IN_USE', 'SAS', 'HARDWARE', '371', '序列号: CJN5F2S', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (211, 'SAS-HW-372', 'Hisense Hisense S02BDS7AA21E', 5, '硬件资产', 'Smartboard / Hisense / Hisense S02BDS7AA21E / Win 11 Pro / Core i7-10700 / 16G / 512G', '台', 1.000000, 0.000000, NULL, 'Admin', NULL, 'Meeting Room', 'IN_USE', 'SAS', 'HARDWARE', '372', '序列号: 3TB86B2303620 194VK21652', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (212, 'SAS-HW-373', 'N/A Server', 5, '硬件资产', 'Server / N/A / Server / Linux CentOS / 8TB', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '373', '序列号: N/A;用途: Seafile', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (213, 'SAS-HW-374', 'N/A Server', 5, '硬件资产', 'Server / N/A / Server / Ubuntu 24.04.1 LTS / 8TB,1TB M2,512MB M2', '台', 1.000000, 0.000000, NULL, 'Technical & Technologies', NULL, 'Server Room', 'IN_USE', 'SAS', 'HARDWARE', '374', '序列号: N/A', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (214, 'SAS-SW-26', 'MS Office Home & Student', 6, '软件资产', 'Sticker', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '26', '原备注: Check Laptop with Herman', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (215, 'SAS-SW-18', 'MS Office Home & Business 2010', 6, '软件资产', 'Cert', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '18', '许可证: 23MQ8-Q739G-DT3MW-43B9K-PRGDV;原备注: Written: PTC8125D-01', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (216, 'SAS-SW-19', 'MS Office Home & Business 2010', 6, '软件资产', 'Cert', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '19', '许可证: Q69G3-62HB3-H9VYY-VBGM8-6YCYP;原备注: Written: PC-2 Habsah-Admin & PC31', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (217, 'SAS-SW-20', 'MS Office Home & Business 2010', 6, '软件资产', 'Cert', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '20', '许可证: VK32X-YGC4D-423VR-2XC4K-D4C4R;原备注: Written: PTC8125D-02', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (218, 'SAS-SW-21', 'MS Office Home & Business 2010', 6, '软件资产', 'Cert', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '21', '许可证: VTVDJ-8GCYX-4HC26-GPGQP-DRMY4;原备注: Written: Sharifah PC20', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (219, 'SAS-SW-22', 'MS Office Home & Business 2010', 6, '软件资产', 'Cert', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '22', '许可证: KBFDQ-4JGT4-VDWCT-C83WF-2RKWD;原备注: Written: Rosfi PC18', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (220, 'SAS-SW-23', 'MS Office Home & Student', 6, '软件资产', 'Sticker', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '23', '原备注: Bundled with HP Laptop 14s-cf3022TX (SN 5CG03082JY)', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (221, 'SAS-SW-24', 'MS Office Home & Student', 6, '软件资产', 'Sticker', '套', 1.000000, 0.000000, NULL, 'Account', NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '24', '原备注: Bundled with HP Laptop 14s-cf2036TX (SN 5CG011D1W7); written off - spoilt', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (222, 'SAS-SW-25', 'MS Office Home & Student', 6, '软件资产', 'Sticker', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '25', '原备注: Bundled with HP Laptop - 14s-cf3022tx (5CG03082JK) {Adha}', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (223, 'SAS-SW-17', 'MS Office Home & Business 2010', 6, '软件资产', 'Cert', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '17', '许可证: H7F93-PMMX8-8MHMT-4CY7W-W9QHM;原备注: Written: Khairul Bariyyah PC14', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (224, 'SAS-SW-27', 'MS Office Home & Student', 6, '软件资产', 'Sticker', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '27', '原备注: Bundled with HP Laptop 14s-cf3022TX (SN 5CG03082BJ)', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (225, 'SAS-SW-28', 'MS Office Home & Student 2010', 6, '软件资产', 'CD', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '28', '许可证: TQ8C3-67C72-7B33C-BM4GF-33VB2', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (226, 'SAS-SW-29', 'MS Office Home & Student 2010', 6, '软件资产', 'CD', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '29', '许可证: GRQJ3-2TM6Q-BRFY4-DFJYQ-2BQKM', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (227, 'SAS-SW-30', 'MS SQL Server 2017 Standard', 6, '软件资产', 'Amimo / CD', '套', 1.000000, 3750.000000, '2021-10-22 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '30', '供应商: Amimo;许可证: PHDV4-3VJWD-N7JVP-FGPKY-XBV89;发票号: INV211001;原备注: 4 Core License Key: 4TQHY-D7R86-VGBFG-PW7GV-8G2FY', 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (228, 'SAS-SW-31', 'MS Windows 2000 Server', 6, '软件资产', 'Cert', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '31', NULL, 63, NULL, '0', '2026-09-28 20:42:29', '2026-09-28 20:42:29'); +INSERT INTO `tbl_asset` VALUES (229, 'SAS-SW-32', 'MS Windows 2000 Server Client Access License', 6, '软件资产', 'Cert', '套', 5.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '32', '许可证: 13925763;原备注: Authorization Number: 13880917ZZS0307', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (230, 'SAS-SW-33', 'Ubuntu 24.04.1 LTS', 6, '软件资产', 'Amimo', '套', 2.000000, 0.000000, '2024-10-14 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '33', '供应商: Amimo;发票号: INV240902;原备注: For server', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (231, 'SAS-SW-1', 'Linux 6.8.0-45', 6, '软件资产', 'Amimo', '套', 2.000000, 0.000000, '2024-10-14 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '1', '供应商: Amimo;发票号: INV240902;原备注: For server', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (232, 'SAS-SW-16', 'MS Office Home & Business 2010', 6, '软件资产', 'CD', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '16', '许可证: XG2WV-YRDV4-VQWQ2-XQQ26-XJ3FF;原备注: Written: SGH109RCWK', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (233, 'SAS-SW-15', 'MS Office Home & Business 2010', 6, '软件资产', 'CD', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '15', '许可证: YBDDT-C4QPP-J6T63-DQMB8-9XB29;原备注: Written: Burnny / Asus', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (234, 'SAS-SW-14', 'MS Office Home & Business 2010', 6, '软件资产', 'CD', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '14', '许可证: WY8KV-GQ39X-2WQF2-V8R93-RY6CT', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (235, 'SAS-SW-13', 'MS Office Home & Business 2010', 6, '软件资产', 'CD', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '13', '许可证: GTTC2-XH8PW-3WJFH-76VFQ-PHYX9', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (236, 'SAS-SW-12', 'MS Office Home & Business 2010', 6, '软件资产', 'CD', '套', 1.000000, 0.000000, NULL, NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '12', '许可证: BX27V-J9QMG-3VVWY-7JTYT-94CXB', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (237, 'SAS-SW-11', 'MS Office Home & Business', 6, '软件资产', 'Amimo', '套', 1.000000, 0.000000, NULL, 'Tech & Technology', NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '11', '供应商: Amimo;原备注: Bundled with 1 unit of Laptop', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (238, 'SAS-SW-10', 'MS Office Home & Business', 6, '软件资产', 'Amimo', '套', 10.000000, 0.000000, '2026-01-21 00:00:00', 'Laboratory', NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '10', '供应商: Amimo;许可证: Smt@123;发票号: INV260101;原备注: Bundled with 10 unit of PC purchase for Lab.', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (239, 'SAS-SW-9', 'MS Office 2021 Pro', 6, '软件资产', 'Amimo', '套', 1.000000, 0.000000, '2024-06-21 00:00:00', 'HR', NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '9', '供应商: Amimo;发票号: INV240601;原备注: Price bundled with PC purchase.', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (240, 'SAS-SW-8', 'MS Office 2021 Pro', 6, '软件资产', 'Amimo', '套', 2.000000, 0.000000, '2024-04-03 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '8', '供应商: Amimo;发票号: INV240401;原备注: Price bundled with PC purchase.', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (241, 'SAS-SW-7', 'MS Office 2021 Home & Business', 6, '软件资产', 'Amimo', '套', 1.000000, 750.000000, '2024-02-13 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '7', '供应商: Amimo;发票号: INV240201', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (242, 'SAS-SW-6', 'MS Office 2019 Pro Plus', 6, '软件资产', 'Amimo', '套', 4.000000, 2320.000000, '2025-01-14 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '6', '供应商: Amimo;发票号: QUO250101', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (243, 'SAS-SW-5', 'MS Office 2019 Pro Plus', 6, '软件资产', 'Amimo', '套', 1.000000, 580.000000, '2024-04-03 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '5', '供应商: Amimo;发票号: INV240402', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (244, 'SAS-SW-4', 'MS Office 2019 Pro', 6, '软件资产', 'Amimo', '套', 1.000000, 0.000000, '2024-09-27 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '4', '供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (245, 'SAS-SW-3', 'MS Office 2019 Home & Business', 6, '软件资产', 'Amimo', '套', 2.000000, 1160.000000, '2024-01-11 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '3', '供应商: Amimo;发票号: INV240101', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (246, 'SAS-SW-2', 'MS Office 2019 Home & Business', 6, '软件资产', 'Amimo', '套', 15.000000, 8700.000000, '2023-09-18 00:00:00', NULL, NULL, NULL, 'IN_USE', 'SAS', 'SOFTWARE', '2', '供应商: Amimo;发票号: INV230902', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (247, 'SIM-896019210381702563', 'SIM卡 896019210381702563', 7, 'SIM卡', '183.171.11.141 / 4G Modem', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'First Solar Malaysia', 'IN_USE', 'SAS', 'SIM', '29', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (248, 'SIM-896019210381702564', 'SIM卡 896019210381702564', 7, 'SIM卡', '183.171.10.11 / 4G Modem', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'First Solar Malaysia', 'IN_USE', 'SAS', 'SIM', '28', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (249, 'SIM-896019210381702565', 'SIM卡 896019210381702565', 7, 'SIM卡', '183.171.12.136 / Lora Gateway', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'Menicon Malaysia', 'IN_USE', 'SAS', 'SIM', '27', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (250, 'SIM-896019210381702566', 'SIM卡 896019210381702566', 7, 'SIM卡', '183.171.11.123 / Lora Gateway', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'GT3.1 (Nur)', 'IN_USE', 'SAS', 'SIM', '26', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (251, 'SIM-896019210381702567', 'SIM卡 896019210381702567', 7, 'SIM卡', '183.171.12.143 / 4G Modem', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'Molnlycke Health Care', 'IN_USE', 'SAS', 'SIM', '25', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (252, 'SIM-896019210381702568', 'SIM卡 896019210381702568', 7, 'SIM卡', '183.171.214.217 / 4G Modem', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'Molnlycke Health Care', 'IN_USE', 'SAS', 'SIM', '24', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (253, 'SIM-896019210381702571', 'SIM卡 896019210381702571', 7, 'SIM卡', '183.171.9.45', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'R&D room, SMT', 'IN_USE', 'SAS', 'SIM', '23', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (254, 'SIM-896019210381702570', 'SIM卡 896019210381702570', 7, 'SIM卡', '183.171.214.141', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'With Amir', 'IN_USE', 'SAS', 'SIM', '19', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (255, 'SIM-896019210381702569', 'SIM卡 896019210381702569', 7, 'SIM卡', '183.171.11.200', '张', 1.000000, 0.000000, '2026-06-03 00:00:00', NULL, 'SMT', 'With Amir', 'IN_USE', 'SAS', 'SIM', '18', '使用期限: 12 months;启用日期: 2026-06-03', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (256, 'SIM-896019210381607779', 'SIM卡 896019210381607779', 7, 'SIM卡', '183.171.151.171', '张', 1.000000, 0.000000, '2025-12-23 00:00:00', NULL, 'SMT', 'POC AEON', 'SCRAPPED', 'SAS', 'SIM', '13', '使用期限: 2 Months;启用日期: 2025-12-23', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (257, 'SIM-896019190221500577', 'SIM卡 896019190221500577', 7, 'SIM卡', '183.171.144.61', '张', 1.000000, 0.000000, '2025-12-23 00:00:00', NULL, 'SMT', 'Kompleks Pertama', 'SCRAPPED', 'SAS', 'SIM', '15', '启用日期: 2025-12-23', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (258, 'SIM-896019210381607780', 'SIM卡 896019210381607780', 7, 'SIM卡', '183.171.208.37', '张', 1.000000, 0.000000, '2025-12-23 00:00:00', NULL, 'SMT', 'POC AEON', 'SCRAPPED', 'SAS', 'SIM', '14', '使用期限: 2 Months;启用日期: 2025-12-23', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (259, 'SIM-896019210381702562', 'SIM卡 896019210381702562', 7, 'SIM卡', '183.171.144.61', '张', 1.000000, 0.000000, '2025-12-23 00:00:00', NULL, 'SMT', 'Loan to Hanif/Adha (22-May-2026); ', 'IN_USE', 'SAS', 'SIM', '12', '启用日期: 2025-12-23', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (260, 'SIM-896019210381607786', 'SIM卡 896019210381607786', 7, 'SIM卡', '183.171.208.37 / KM08-LTE Modem / 21070013', '张', 1.000000, 0.000000, '2025-12-23 00:00:00', NULL, 'SMT', 'SMT (RnD) Alyaa', 'IN_USE', 'SAS', 'SIM', '11', '设备序列号: 21070013;启用日期: 2025-12-23', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (261, 'SIM-896019210381607785', 'SIM卡 896019210381607785', 7, 'SIM卡', '183.171.151.171 / KM08-LTE Modem / 21070011', '张', 1.000000, 0.000000, '2025-12-23 00:00:00', NULL, 'SMT', 'SMT (RnD) Alyaa', 'IN_USE', 'SAS', 'SIM', '10', '设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (262, 'SIM-896019210381607783', 'SIM卡 896019210381607783', 7, 'SIM卡', '183.171.50.6 / KM08-LTE Modem / 2403005', '张', 1.000000, 0.000000, '2024-09-29 00:00:00', NULL, 'SMT', 'SMT (RnD) Modem Store', 'IN_USE', 'SAS', 'SIM', '8', '设备序列号: 2403005;启用日期: 2024-09-29', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (263, 'SIM-896019210381607784', 'SIM卡 896019210381607784', 7, 'SIM卡', '183.171.50.5 / KM08-LTE Modem / 20041004', '张', 1.000000, 0.000000, '2024-09-29 00:00:00', NULL, 'SMT', 'SMT (Modem-Production)', 'IN_USE', 'SAS', 'SIM', '7', '设备序列号: 20041004;启用日期: 2024-09-29', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (264, 'SIM-896019210381607782', 'SIM卡 896019210381607782', 7, 'SIM卡', '183.171.40.117', '张', 1.000000, 0.000000, '2024-07-15 00:00:00', NULL, 'SMT', 'Genting', 'IN_USE', 'SAS', 'SIM', '4', '使用期限: 2 Years;启用日期: 2024-07-15', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (265, 'SIM-896019210381607777', 'SIM卡 896019210381607777', 7, 'SIM卡', '183.171.40.182', '张', 1.000000, 0.000000, '2024-07-15 00:00:00', NULL, 'SMT', 'Genting', 'IN_USE', 'SAS', 'SIM', '3', '使用期限: 2 Years;启用日期: 2024-07-15', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (266, 'SIM-896019210381607781', 'SIM卡 896019210381607781', 7, 'SIM卡', '183.171.5.142 / KM08-LTE Modem / 21070014', '张', 1.000000, 0.000000, '2024-03-22 00:00:00', NULL, 'SMT', 'SMT (RnD) Modem RnD', 'IN_USE', 'SAS', 'SIM', '9', '设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (267, 'SIM-896019210381607778', 'SIM卡 896019210381607778', 7, 'SIM卡', '183.171.15.60', '张', 1.000000, 0.000000, '2024-03-22 00:00:00', NULL, 'SMT', 'Genting', 'IN_USE', 'SAS', 'SIM', '2', '使用期限: 2 Years;启用日期: 2024-03-22', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (268, 'SIM-896019190221500576', 'SIM卡 896019190221500576', 7, 'SIM卡', '183.171.144.65', '张', 1.000000, 0.000000, '2020-12-16 00:00:00', NULL, 'SMT', 'Genting', 'IN_USE', 'SAS', 'SIM', '1', '使用期限: 2 Years;启用日期: 2020-12-16', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (269, 'SIM-896019190221500578', 'SIM卡 896019190221500578', 7, 'SIM卡', '183.171.14.125', '张', 1.000000, 0.000000, '2020-12-16 00:00:00', NULL, 'SMT', 'UITM Dungun', 'IN_USE', 'SAS', 'SIM', '5', '启用日期: 2020-12-16', 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); +INSERT INTO `tbl_asset` VALUES (270, 'SIM-896019200694297052', 'SIM卡 896019200694297052', 7, 'SIM卡', '183.171.146.98', '张', 1.000000, 0.000000, NULL, NULL, 'UITM Dungun', 'SMT (???)', 'IN_USE', 'SAS', 'SIM', '6', NULL, 63, NULL, '0', '2026-09-28 20:42:30', '2026-09-28 20:42:30'); + +-- ---------------------------- +-- Table structure for tbl_asset_category +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_asset_category`; +CREATE TABLE `tbl_asset_category` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `category_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '????', + `category_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '????', + `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '????', + `sort` int NOT NULL DEFAULT 100, + `enabled` bit(1) NOT NULL DEFAULT b'1', + `creator` bigint NULL DEFAULT NULL, + `updater` bigint NULL DEFAULT NULL, + `delete_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0', + `create_time` datetime(0) NULL DEFAULT NULL, + `update_time` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_asset_category_code`(`category_code`) USING BTREE, + UNIQUE INDEX `uk_asset_category_name`(`category_name`) USING BTREE, + INDEX `idx_asset_category_enabled`(`enabled`, `sort`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '????' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of tbl_asset_category +-- ---------------------------- +INSERT INTO `tbl_asset_category` VALUES (4, 'UNCATEGORIZED', '未分类', '尚未归入具体种类的资产', 10, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (5, 'HARDWARE', '硬件资产', '从 Smart Asset System 硬件台账同步', 20, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (6, 'SOFTWARE', '软件资产', '从 Smart Asset System 软件台账同步', 30, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (7, 'SIM_CARD', 'SIM卡', '从 Smart Asset System SIM 卡台账同步', 40, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (11, 'LEGACY_01BF8DA563A0', '生产设备', '由原资产分类字段自动迁移', 100, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (12, 'LEGACY_7129859760C3', '检测设备', '由原资产分类字段自动迁移', 100, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (13, 'LEGACY_9F38069B30A1', '动力设备', '由原资产分类字段自动迁移', 100, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (14, 'LEGACY_75F489029B11', 'IT设备', '由原资产分类字段自动迁移', 100, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (15, 'LEGACY_3DDFE01CA0B8', '物流设备', '由原资产分类字段自动迁移', 100, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); +INSERT INTO `tbl_asset_category` VALUES (16, 'LEGACY_B5D44F2B039A', '工装设备', '由原资产分类字段自动迁移', 100, b'1', NULL, NULL, '0', '2026-09-28 20:33:13', '2026-09-28 20:33:13'); + +-- ---------------------------- +-- Table structure for tbl_asset_device +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_asset_device`; +CREATE TABLE `tbl_asset_device` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `asset_id` bigint NULL DEFAULT NULL COMMENT '关联资产id', + `device_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备编号', + `device_name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备名称', + `device_category` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备分类', + `model` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备型号', + `serial_number` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '出厂序列号', + `manufacturer` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '制造商', + `purchase_date` datetime(0) NULL DEFAULT NULL COMMENT '购置日期', + `enabled_date` date NULL DEFAULT NULL COMMENT '启用日期', + `use_department` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `keeper` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'IN_USE' COMMENT '状态:IDLE/IN_USE/REPAIR/STOPPED/SCRAPPED', + `last_inventory_time` datetime(0) NULL DEFAULT NULL COMMENT '最近盘点时间', + `next_maintenance_date` datetime(0) NULL DEFAULT NULL COMMENT '下次保养时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `creator` bigint NULL DEFAULT NULL, + `updater` bigint NULL DEFAULT NULL, + `delete_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0', + `create_time` datetime(0) NULL DEFAULT NULL, + `update_time` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_asset_device_asset`(`asset_id`) USING BTREE, + INDEX `idx_asset_device_status`(`status`) USING BTREE, + INDEX `idx_asset_device_code`(`device_code`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备台账' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of tbl_asset_device +-- ---------------------------- +INSERT INTO `tbl_asset_device` VALUES (1, 1, 'SMT-L01-PRINTER-01', '全自动锡膏印刷机', '印刷设备', 'DEK NeoHorizon 03iX', 'DEK24NH03187', 'ASMPT', '2024-03-18 00:00:00', '2024-04-08', 'SMT生产部', '王磊', '一车间 SMT-01 线前段', 'IN_USE', '2026-09-18 14:08:03', '2026-10-08 00:00:00', '配置 2D 检测与自动擦网单元', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-18 14:08:02'); +INSERT INTO `tbl_asset_device` VALUES (2, 1, 'SMT-L01-MOUNTER-A', '高速模块贴片机 A', '贴装设备', 'Panasonic NPM-D3A', 'NPMD3A24031801', 'Panasonic', '2024-03-18 00:00:00', '2024-04-08', 'SMT生产部', '王磊', '一车间 SMT-01 线 A 工位', 'IN_USE', NULL, '2026-10-15 00:00:00', '前段高速贴装,配置 16 头轻量贴装头', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset_device` VALUES (3, 1, 'SMT-L01-MOUNTER-B', '多功能贴片机 B', '贴装设备', 'Panasonic NPM-W2S', 'NPMW2S24031802', 'Panasonic', '2024-03-18 00:00:00', '2024-04-08', 'SMT生产部', '王磊', '一车间 SMT-01 线 B 工位', 'IN_USE', NULL, '2026-10-16 00:00:00', '负责异形件及高精度元件贴装', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset_device` VALUES (4, 2, 'SMT-L01-REFLOW-01', '十温区氮气回流焊炉', '焊接设备', 'HELLER 1936MK7', 'HLR1936-2403268', 'Heller Industries', '2024-03-18 00:00:00', '2024-04-10', 'SMT生产部', '王磊', '一车间 SMT-01 线后段', 'IN_USE', NULL, '2026-10-20 00:00:00', '氮气闭环控制,支持双轨独立调宽', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset_device` VALUES (5, 3, 'QC-AOI-01', '在线 3D AOI', '检测设备', 'Zenith 2', 'KY-Z2-24040615', 'Koh Young', '2024-04-06 00:00:00', '2024-04-18', '品质部', '陈晨', '一车间 AOI 检测区', 'IN_USE', '2026-09-21 19:17:10', '2026-11-05 00:00:00', '具备 AI 缺陷复判和 SPC 数据接口', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-21 19:17:10'); +INSERT INTO `tbl_asset_device` VALUES (6, 4, 'QC-SPI-01', '在线 3D SPI', '检测设备', 'KY8030-3', 'KY-8030-24040608', 'Koh Young', '2024-04-06 00:00:00', '2024-04-18', '品质部', '陈晨', '一车间 印刷检测区', 'IN_USE', '2026-09-21 14:35:51', '2026-11-06 00:00:00', '与印刷机闭环反馈锡膏偏移数据', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-21 14:35:59'); +INSERT INTO `tbl_asset_device` VALUES (7, 5, 'UTIL-AIR-01', '变频螺杆空压机', '动力设备', 'GA22 VSD+', 'AC-GA22-2311209', 'Atlas Copco', '2023-11-20 00:00:00', '2023-12-01', '设备动力部', '陈晨', '动力站 1 号机位', 'IN_USE', NULL, '2026-10-01 00:00:00', '运行压力 0.72MPa,接入能源管理系统', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset_device` VALUES (8, 6, 'IT-MES-DB-01', 'MES 数据库主服务器', '服务器', 'PowerEdge R760', 'CN-R760-25011501', 'Dell', '2025-01-15 00:00:00', '2025-01-22', '信息技术部', '赵敏', '数据中心 A03-U18', 'IN_USE', NULL, '2026-12-15 00:00:00', '双路 CPU、512GB 内存、全闪存 RAID10', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset_device` VALUES (9, 7, 'WH-FORKLIFT-01', '2 吨电动叉车', '物流设备', '8FBE20', 'TY-8FBE20-240722', 'Toyota', '2024-07-22 00:00:00', '2024-08-01', '仓储物流部', '张伟', '原材料仓充电区', 'IN_USE', NULL, '2026-10-25 00:00:00', '锂电池版本,配置蓝光安全警示灯', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); +INSERT INTO `tbl_asset_device` VALUES (10, 8, 'TOOL-STENCIL-CLEAN-01', '全自动钢网清洗机', '工装设备', 'SC-A1000', 'SAWA-A1000-250210', 'SAWA', '2025-02-10 00:00:00', '2025-02-18', 'SMT生产部', '王磊', '一车间 钢网房', 'IN_USE', NULL, '2026-11-10 00:00:00', '水基清洗、漂洗、热风干燥一体化', 63, NULL, '0', '2026-09-18 11:55:23', '2026-09-18 11:55:23'); + +-- ---------------------------- +-- Table structure for tbl_asset_inventory +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_asset_inventory`; +CREATE TABLE `tbl_asset_inventory` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `inventory_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '盘点单号', + `plan_name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '盘点计划名称', + `scope_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DEVICE' COMMENT '范围:ASSET/DEVICE/ALL', + `planned_at` datetime(0) NULL DEFAULT NULL COMMENT '计划盘点时间', + `deadline` datetime(0) NULL DEFAULT NULL COMMENT '截止时间', + `status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DRAFT' COMMENT 'DRAFT/IN_PROGRESS/PENDING_AUDIT/COMPLETED/CLOSED', + `total_count` int NOT NULL DEFAULT 0, + `inventoried_count` int NOT NULL DEFAULT 0, + `normal_count` int NOT NULL DEFAULT 0, + `abnormal_count` int NOT NULL DEFAULT 0, + `inventory_user_id` bigint NULL DEFAULT NULL, + `inventory_user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `started_at` datetime(0) NULL DEFAULT NULL, + `completed_at` datetime(0) NULL DEFAULT NULL, + `audit_user_id` bigint NULL DEFAULT NULL, + `audit_time` datetime(0) NULL DEFAULT NULL, + `source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'MANUAL' COMMENT 'MANUAL/COLLABORATION/TPM_DOUBLE', + `external_request_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '协同服务请求号(幂等键)', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `creator` bigint NULL DEFAULT NULL, + `updater` bigint NULL DEFAULT NULL, + `delete_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0', + `create_time` datetime(0) NULL DEFAULT NULL, + `update_time` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_asset_inventory_no`(`inventory_no`) USING BTREE, + UNIQUE INDEX `uk_asset_inventory_external`(`external_request_id`) USING BTREE, + INDEX `idx_asset_inventory_status`(`status`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '资产盘点单' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of tbl_asset_inventory +-- ---------------------------- +INSERT INTO `tbl_asset_inventory` VALUES (1, 'PD20260918131230171', '2026年09月资产设备专项盘点', 'DEVICE', '2026-09-19 09:00:00', '2026-09-21 18:00:00', 'IN_PROGRESS', 3, 1, 0, 0, 36, '张伟', '2026-09-18 13:19:02', NULL, NULL, NULL, 'MANUAL', NULL, '进行盘点', 63, 63, '0', '2026-09-18 13:12:30', '2026-09-21 14:35:59'); +INSERT INTO `tbl_asset_inventory` VALUES (4, 'PD20260921170623856', '2026年09月资产设备专项盘点', 'ASSET', '2026-09-22 09:00:00', '2026-09-24 18:00:00', 'CLOSED', 8, 8, 0, 0, 149, '张三', '2026-09-21 18:55:59', '2026-09-21 19:01:15', NULL, NULL, 'MANUAL', NULL, '进行盘点', 63, 149, '0', '2026-09-21 17:06:23', '2026-09-21 19:16:33'); +INSERT INTO `tbl_asset_inventory` VALUES (5, 'PD20260921190800418', '2026年09月资产设备专项盘点', 'ALL', '2026-09-22 09:00:00', '2026-09-24 18:00:00', 'ACCEPTED', 2, 0, 0, 0, 149, '张三', NULL, NULL, NULL, NULL, 'MANUAL', NULL, '进行盘点', 149, 149, '0', '2026-09-21 19:08:00', '2026-09-21 19:08:13'); +INSERT INTO `tbl_asset_inventory` VALUES (6, 'PD20260921190840893', '2026年09月资产设备专项盘点', 'DEVICE', '2026-09-22 09:00:00', '2026-09-24 18:00:00', 'CLOSED', 1, 1, 1, 0, 63, 'admin', '2026-09-21 19:16:59', '2026-09-21 19:17:16', 149, '2026-09-21 19:17:25', 'MANUAL', NULL, NULL, 149, 149, '0', '2026-09-21 19:08:40', '2026-09-21 19:17:28'); + +-- ---------------------------- +-- Table structure for tbl_asset_inventory_detail +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_asset_inventory_detail`; +CREATE TABLE `tbl_asset_inventory_detail` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `inventory_id` bigint NOT NULL, + `target_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'ASSET/DEVICE', + `target_id` bigint NOT NULL, + `target_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `target_name` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `model` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `book_quantity` decimal(24, 6) NOT NULL DEFAULT 1.000000, + `actual_quantity` decimal(24, 6) NOT NULL DEFAULT 0.000000, + `inventory_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT 'PENDING/NORMAL/SURPLUS/SHORTAGE/ABNORMAL', + `book_department` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `actual_department` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `book_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `actual_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `inventory_time` datetime(0) NULL DEFAULT NULL, + `inventory_user_id` bigint NULL DEFAULT NULL, + `inventory_user_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `image_group_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '原盘点接口图片组ID', + `create_time` datetime(0) NULL DEFAULT NULL, + `update_time` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_asset_inventory_target`(`inventory_id`, `target_type`, `target_id`) USING BTREE, + INDEX `idx_asset_inventory_detail_status`(`inventory_id`, `inventory_status`) USING BTREE, + INDEX `idx_asset_inventory_detail_code`(`target_code`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '资产盘点快照明细' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of tbl_asset_inventory_detail +-- ---------------------------- +INSERT INTO `tbl_asset_inventory_detail` VALUES (1, 1, 'DEVICE', 6, 'QC-SPI-01', '在线 3D SPI', 'KY8030-3', 1.000000, 1.000000, 'INVENTORIED', '品质部', NULL, '一车间 印刷检测区', '一车间 印刷检测区-A区', '2026-09-21 14:35:51', 63, 'admin', '111', NULL, '2026-09-18 13:12:30', '2026-09-21 14:35:59'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (2, 1, 'DEVICE', 2, 'SMT-L01-MOUNTER-A', '高速模块贴片机 A', 'Panasonic NPM-D3A', 1.000000, 0.000000, 'PENDING', 'SMT生产部', NULL, '一车间 SMT-01 线 A 工位', NULL, NULL, NULL, NULL, NULL, '01f08d9e8b2c43cfa2fb59a67ac6a954', '2026-09-18 13:12:30', '2026-09-21 14:44:24'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (3, 1, 'DEVICE', 3, 'SMT-L01-MOUNTER-B', '多功能贴片机 B', 'Panasonic NPM-W2S', 1.000000, 0.000000, 'PENDING', 'SMT生产部', NULL, '一车间 SMT-01 线 B 工位', NULL, NULL, NULL, NULL, NULL, NULL, '2026-09-18 13:12:30', '2026-09-18 13:12:30'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (6, 4, 'ASSET', 8, 'FA-TOOL-2025-008', '全自动钢网清洗机', 'SAWA SC-A1000', 1.000000, 1.000000, 'INVENTORIED', 'SMT生产部', NULL, '一车间 钢网房', '一车间 钢网房', '2026-09-21 18:56:38', 149, '张三', '来看看你们这些', 'bafb696ee03b4daab4c00a5183d9f8ca', '2026-09-21 17:06:23', '2026-09-21 19:01:13'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (7, 4, 'ASSET', 7, 'FA-WH-2024-007', '电动平衡重式叉车', 'Toyota 8FBE20', 1.000000, 1.000000, 'INVENTORIED', '仓储物流部', NULL, '原材料仓充电区', '原材料仓充电区', '2026-09-21 18:55:59', 149, '张三', '有空聚聚看看', 'fe02f5769bdf4dc0b5726aac93bb730b', '2026-09-21 17:06:23', '2026-09-21 19:01:13'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (8, 4, 'ASSET', 6, 'FA-IT-2025-006', 'MES 数据库服务器', 'Dell PowerEdge R760', 1.000000, 1.000000, 'INVENTORIED', '信息技术部', NULL, '数据中心 A03 机柜', '数据中心 A03 机柜', '2026-09-21 18:57:25', 149, '张三', '简直一模一样的', '5db8ca7a79a445b88645dd39d97e2e67', '2026-09-21 17:06:23', '2026-09-21 19:01:13'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (9, 4, 'ASSET', 5, 'FA-UTIL-2023-005', '螺杆式空气压缩机', 'Atlas Copco GA22 VSD+', 1.000000, 1.000000, 'INVENTORIED', '设备动力部', NULL, '动力站 1 号机位', '动力站 1 号机位', '2026-09-21 19:01:06', 149, '张三', '连卡佛哦哦哦', 'b0212c0127ec4c7583a507552720ea27', '2026-09-21 17:06:23', '2026-09-21 19:01:25'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (10, 4, 'ASSET', 4, 'FA-QC-2024-004', '在线 3D SPI 检测系统', 'Koh Young KY8030-3', 1.000000, 1.000000, 'INVENTORIED', '品质部', NULL, '一车间 印刷检测区', '一车间 印刷检测区', '2026-09-21 18:58:07', 149, '张三', '踏步踏步谢谢你', '6ff9119f63b64993845a9c067467e5da', '2026-09-21 17:06:23', '2026-09-21 19:01:13'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (11, 4, 'ASSET', 3, 'FA-QC-2024-003', '在线 3D AOI 检测系统', 'Koh Young Zenith 2', 1.000000, 1.000000, 'INVENTORIED', '品质部', NULL, '一车间 AOI 检测区', '一车间 AOI 检测区', '2026-09-21 18:57:52', 149, '张三', '补补团出来了?那就算了', '97e05ba483eb41a9a3f33796682f6d46', '2026-09-21 17:06:23', '2026-09-21 19:01:13'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (12, 4, 'ASSET', 2, 'FA-SMT-2024-002', '十温区氮气回流焊系统', 'HELLER 1936MK7', 1.000000, 1.000000, 'INVENTORIED', 'SMT生产部', NULL, '一车间 SMT-01 线', '一车间 SMT-01 线', '2026-09-21 18:57:35', 149, '张三', '不啊图天冷加衣', '93b35db7703f4e3e86d44b27f35f2a58', '2026-09-21 17:06:23', '2026-09-21 19:01:13'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (13, 4, 'ASSET', 1, 'FA-SMT-2024-001', 'SMT 高速贴片生产线', 'Panasonic NPM-D3A 双轨配置', 1.000000, 1.000000, 'INVENTORIED', 'SMT生产部', NULL, '一车间 SMT-01 线', '一车间 SMT-01 线', '2026-09-21 19:01:15', 149, '张三', '吧监控OK了', 'edd28c5442e84cf59a6e1e3d73be44c1', '2026-09-21 17:06:23', '2026-09-21 19:01:25'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (14, 5, 'ASSET', 8, 'FA-TOOL-2025-008', '全自动钢网清洗机', 'SAWA SC-A1000', 1.000000, 0.000000, 'PENDING', 'SMT生产部', NULL, '一车间 钢网房', NULL, NULL, NULL, NULL, NULL, NULL, '2026-09-21 19:08:00', '2026-09-21 19:08:00'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (15, 5, 'DEVICE', 8, 'IT-MES-DB-01', 'MES 数据库主服务器', 'PowerEdge R760', 1.000000, 0.000000, 'PENDING', '信息技术部', NULL, '数据中心 A03-U18', NULL, NULL, NULL, NULL, NULL, NULL, '2026-09-21 19:08:00', '2026-09-21 19:08:00'); +INSERT INTO `tbl_asset_inventory_detail` VALUES (16, 6, 'DEVICE', 5, 'QC-AOI-01', '在线 3D AOI', 'Zenith 2', 1.000000, 1.000000, 'NORMAL', '品质部', '品质部', '一车间 AOI 检测区', '一车间 AOI 检测区', '2026-09-21 19:17:10', 149, '张三', '111', NULL, '2026-09-21 19:08:40', '2026-09-21 19:17:10'); + +-- ---------------------------- +-- Table structure for tbl_asset_inventory_file +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_asset_inventory_file`; +CREATE TABLE `tbl_asset_inventory_file` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `group_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `inventory_detail_id` bigint NOT NULL, + `original_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `file_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `content_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `file_size` bigint NULL DEFAULT NULL, + `creator` bigint NULL DEFAULT NULL, + `create_time` datetime(0) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_asset_inventory_file_group`(`group_id`) USING BTREE, + INDEX `idx_asset_inventory_file_detail`(`inventory_detail_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 84 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '盘点现场图片' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of tbl_asset_inventory_file +-- ---------------------------- +INSERT INTO `tbl_asset_inventory_file` VALUES (2, '01f08d9e8b2c43cfa2fb59a67ac6a954', 2, '图片1.png', 'asset-inventory/图片1_1789973064775.png', 'image/png', 12293, 63, '2026-09-21 14:44:24'); +INSERT INTO `tbl_asset_inventory_file` VALUES (3, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988297310.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 18:58:17'); +INSERT INTO `tbl_asset_inventory_file` VALUES (4, 'bafb696ee03b4daab4c00a5183d9f8ca', 6, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185638_3ded6754.jpg', 'asset-inventory/20260921_185638_3ded6754_1789988297758.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 18:58:17'); +INSERT INTO `tbl_asset_inventory_file` VALUES (5, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_3db4823f.jpg', 'asset-inventory/20260921_185724_3db4823f_1789988298359.jpg', 'application/octet-stream', 164015, 149, '2026-09-21 18:58:18'); +INSERT INTO `tbl_asset_inventory_file` VALUES (6, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_170b6de4.jpg', 'asset-inventory/20260921_185724_170b6de4_1789988298363.jpg', 'application/octet-stream', 276766, 149, '2026-09-21 18:58:18'); +INSERT INTO `tbl_asset_inventory_file` VALUES (7, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_77ed497d.jpg', 'asset-inventory/20260921_185735_77ed497d_1789988308337.jpg', 'application/octet-stream', 4268455, 149, '2026-09-21 18:58:28'); +INSERT INTO `tbl_asset_inventory_file` VALUES (8, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_16e3ae77.jpg', 'asset-inventory/20260921_185735_16e3ae77_1789988308359.jpg', 'application/octet-stream', 4164781, 149, '2026-09-21 18:58:28'); +INSERT INTO `tbl_asset_inventory_file` VALUES (9, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_e989e463.jpg', 'asset-inventory/20260921_185751_e989e463_1789988309407.jpg', 'application/octet-stream', 246862, 149, '2026-09-21 18:58:29'); +INSERT INTO `tbl_asset_inventory_file` VALUES (10, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_8247956e.jpg', 'asset-inventory/20260921_185751_8247956e_1789988309411.jpg', 'application/octet-stream', 227761, 149, '2026-09-21 18:58:29'); +INSERT INTO `tbl_asset_inventory_file` VALUES (11, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_e5ff915e.jpg', 'asset-inventory/20260921_185807_e5ff915e_1789988310159.jpg', 'application/octet-stream', 223256, 149, '2026-09-21 18:58:30'); +INSERT INTO `tbl_asset_inventory_file` VALUES (12, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_85b6a9b5.jpg', 'asset-inventory/20260921_185807_85b6a9b5_1789988310162.jpg', 'application/octet-stream', 297668, 149, '2026-09-21 18:58:30'); +INSERT INTO `tbl_asset_inventory_file` VALUES (13, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988340622.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 18:59:00'); +INSERT INTO `tbl_asset_inventory_file` VALUES (14, 'bafb696ee03b4daab4c00a5183d9f8ca', 6, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185638_3ded6754.jpg', 'asset-inventory/20260921_185638_3ded6754_1789988341036.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 18:59:01'); +INSERT INTO `tbl_asset_inventory_file` VALUES (15, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_3db4823f.jpg', 'asset-inventory/20260921_185724_3db4823f_1789988341617.jpg', 'application/octet-stream', 164015, 149, '2026-09-21 18:59:01'); +INSERT INTO `tbl_asset_inventory_file` VALUES (16, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_170b6de4.jpg', 'asset-inventory/20260921_185724_170b6de4_1789988341621.jpg', 'application/octet-stream', 276766, 149, '2026-09-21 18:59:01'); +INSERT INTO `tbl_asset_inventory_file` VALUES (17, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_77ed497d.jpg', 'asset-inventory/20260921_185735_77ed497d_1789988350408.jpg', 'application/octet-stream', 4268455, 149, '2026-09-21 18:59:10'); +INSERT INTO `tbl_asset_inventory_file` VALUES (18, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_16e3ae77.jpg', 'asset-inventory/20260921_185735_16e3ae77_1789988350421.jpg', 'application/octet-stream', 4164781, 149, '2026-09-21 18:59:10'); +INSERT INTO `tbl_asset_inventory_file` VALUES (19, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_e989e463.jpg', 'asset-inventory/20260921_185751_e989e463_1789988351115.jpg', 'application/octet-stream', 246862, 149, '2026-09-21 18:59:11'); +INSERT INTO `tbl_asset_inventory_file` VALUES (20, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_8247956e.jpg', 'asset-inventory/20260921_185751_8247956e_1789988351118.jpg', 'application/octet-stream', 227761, 149, '2026-09-21 18:59:11'); +INSERT INTO `tbl_asset_inventory_file` VALUES (21, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_e5ff915e.jpg', 'asset-inventory/20260921_185807_e5ff915e_1789988352623.jpg', 'application/octet-stream', 223256, 149, '2026-09-21 18:59:12'); +INSERT INTO `tbl_asset_inventory_file` VALUES (22, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_85b6a9b5.jpg', 'asset-inventory/20260921_185807_85b6a9b5_1789988352626.jpg', 'application/octet-stream', 297668, 149, '2026-09-21 18:59:12'); +INSERT INTO `tbl_asset_inventory_file` VALUES (23, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988392678.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 18:59:52'); +INSERT INTO `tbl_asset_inventory_file` VALUES (24, 'bafb696ee03b4daab4c00a5183d9f8ca', 6, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185638_3ded6754.jpg', 'asset-inventory/20260921_185638_3ded6754_1789988393529.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 18:59:53'); +INSERT INTO `tbl_asset_inventory_file` VALUES (25, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_3db4823f.jpg', 'asset-inventory/20260921_185724_3db4823f_1789988394098.jpg', 'application/octet-stream', 164015, 149, '2026-09-21 18:59:54'); +INSERT INTO `tbl_asset_inventory_file` VALUES (26, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_170b6de4.jpg', 'asset-inventory/20260921_185724_170b6de4_1789988394100.jpg', 'application/octet-stream', 276766, 149, '2026-09-21 18:59:54'); +INSERT INTO `tbl_asset_inventory_file` VALUES (27, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_77ed497d.jpg', 'asset-inventory/20260921_185735_77ed497d_1789988403600.jpg', 'application/octet-stream', 4268455, 149, '2026-09-21 19:00:03'); +INSERT INTO `tbl_asset_inventory_file` VALUES (28, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_16e3ae77.jpg', 'asset-inventory/20260921_185735_16e3ae77_1789988403613.jpg', 'application/octet-stream', 4164781, 149, '2026-09-21 19:00:03'); +INSERT INTO `tbl_asset_inventory_file` VALUES (29, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_e989e463.jpg', 'asset-inventory/20260921_185751_e989e463_1789988404437.jpg', 'application/octet-stream', 246862, 149, '2026-09-21 19:00:04'); +INSERT INTO `tbl_asset_inventory_file` VALUES (30, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_8247956e.jpg', 'asset-inventory/20260921_185751_8247956e_1789988404438.jpg', 'application/octet-stream', 227761, 149, '2026-09-21 19:00:04'); +INSERT INTO `tbl_asset_inventory_file` VALUES (31, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_e5ff915e.jpg', 'asset-inventory/20260921_185807_e5ff915e_1789988406177.jpg', 'application/octet-stream', 223256, 149, '2026-09-21 19:00:06'); +INSERT INTO `tbl_asset_inventory_file` VALUES (32, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_85b6a9b5.jpg', 'asset-inventory/20260921_185807_85b6a9b5_1789988406180.jpg', 'application/octet-stream', 297668, 149, '2026-09-21 19:00:06'); +INSERT INTO `tbl_asset_inventory_file` VALUES (33, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988417028.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 19:00:17'); +INSERT INTO `tbl_asset_inventory_file` VALUES (34, 'bafb696ee03b4daab4c00a5183d9f8ca', 6, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185638_3ded6754.jpg', 'asset-inventory/20260921_185638_3ded6754_1789988417419.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 19:00:17'); +INSERT INTO `tbl_asset_inventory_file` VALUES (35, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_3db4823f.jpg', 'asset-inventory/20260921_185724_3db4823f_1789988417997.jpg', 'application/octet-stream', 164015, 149, '2026-09-21 19:00:18'); +INSERT INTO `tbl_asset_inventory_file` VALUES (36, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_170b6de4.jpg', 'asset-inventory/20260921_185724_170b6de4_1789988418007.jpg', 'application/octet-stream', 276766, 149, '2026-09-21 19:00:18'); +INSERT INTO `tbl_asset_inventory_file` VALUES (37, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988421508.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 19:00:21'); +INSERT INTO `tbl_asset_inventory_file` VALUES (38, 'bafb696ee03b4daab4c00a5183d9f8ca', 6, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185638_3ded6754.jpg', 'asset-inventory/20260921_185638_3ded6754_1789988422324.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 19:00:22'); +INSERT INTO `tbl_asset_inventory_file` VALUES (39, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_3db4823f.jpg', 'asset-inventory/20260921_185724_3db4823f_1789988423446.jpg', 'application/octet-stream', 164015, 149, '2026-09-21 19:00:23'); +INSERT INTO `tbl_asset_inventory_file` VALUES (40, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_170b6de4.jpg', 'asset-inventory/20260921_185724_170b6de4_1789988423447.jpg', 'application/octet-stream', 276766, 149, '2026-09-21 19:00:23'); +INSERT INTO `tbl_asset_inventory_file` VALUES (41, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_77ed497d.jpg', 'asset-inventory/20260921_185735_77ed497d_1789988429712.jpg', 'application/octet-stream', 4268455, 149, '2026-09-21 19:00:29'); +INSERT INTO `tbl_asset_inventory_file` VALUES (42, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_16e3ae77.jpg', 'asset-inventory/20260921_185735_16e3ae77_1789988429724.jpg', 'application/octet-stream', 4164781, 149, '2026-09-21 19:00:29'); +INSERT INTO `tbl_asset_inventory_file` VALUES (43, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_e989e463.jpg', 'asset-inventory/20260921_185751_e989e463_1789988430620.jpg', 'application/octet-stream', 246862, 149, '2026-09-21 19:00:30'); +INSERT INTO `tbl_asset_inventory_file` VALUES (44, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_8247956e.jpg', 'asset-inventory/20260921_185751_8247956e_1789988430622.jpg', 'application/octet-stream', 227761, 149, '2026-09-21 19:00:30'); +INSERT INTO `tbl_asset_inventory_file` VALUES (45, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_e5ff915e.jpg', 'asset-inventory/20260921_185807_e5ff915e_1789988431663.jpg', 'application/octet-stream', 223256, 149, '2026-09-21 19:00:31'); +INSERT INTO `tbl_asset_inventory_file` VALUES (46, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_85b6a9b5.jpg', 'asset-inventory/20260921_185807_85b6a9b5_1789988431666.jpg', 'application/octet-stream', 297668, 149, '2026-09-21 19:00:31'); +INSERT INTO `tbl_asset_inventory_file` VALUES (47, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_77ed497d.jpg', 'asset-inventory/20260921_185735_77ed497d_1789988435876.jpg', 'application/octet-stream', 4268455, 149, '2026-09-21 19:00:35'); +INSERT INTO `tbl_asset_inventory_file` VALUES (48, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_16e3ae77.jpg', 'asset-inventory/20260921_185735_16e3ae77_1789988435886.jpg', 'application/octet-stream', 4164781, 149, '2026-09-21 19:00:35'); +INSERT INTO `tbl_asset_inventory_file` VALUES (49, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988438145.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 19:00:38'); +INSERT INTO `tbl_asset_inventory_file` VALUES (50, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988438901.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 19:00:38'); +INSERT INTO `tbl_asset_inventory_file` VALUES (51, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988439198.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 19:00:39'); +INSERT INTO `tbl_asset_inventory_file` VALUES (52, 'bafb696ee03b4daab4c00a5183d9f8ca', 6, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185638_3ded6754.jpg', 'asset-inventory/20260921_185638_3ded6754_1789988439407.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 19:00:39'); +INSERT INTO `tbl_asset_inventory_file` VALUES (53, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_3db4823f.jpg', 'asset-inventory/20260921_185724_3db4823f_1789988439784.jpg', 'application/octet-stream', 164015, 149, '2026-09-21 19:00:39'); +INSERT INTO `tbl_asset_inventory_file` VALUES (54, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_170b6de4.jpg', 'asset-inventory/20260921_185724_170b6de4_1789988439785.jpg', 'application/octet-stream', 276766, 149, '2026-09-21 19:00:39'); +INSERT INTO `tbl_asset_inventory_file` VALUES (55, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_e989e463.jpg', 'asset-inventory/20260921_185751_e989e463_1789988440631.jpg', 'application/octet-stream', 246862, 149, '2026-09-21 19:00:40'); +INSERT INTO `tbl_asset_inventory_file` VALUES (56, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_8247956e.jpg', 'asset-inventory/20260921_185751_8247956e_1789988440633.jpg', 'application/octet-stream', 227761, 149, '2026-09-21 19:00:40'); +INSERT INTO `tbl_asset_inventory_file` VALUES (57, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_e5ff915e.jpg', 'asset-inventory/20260921_185807_e5ff915e_1789988442110.jpg', 'application/octet-stream', 223256, 149, '2026-09-21 19:00:42'); +INSERT INTO `tbl_asset_inventory_file` VALUES (58, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_85b6a9b5.jpg', 'asset-inventory/20260921_185807_85b6a9b5_1789988442112.jpg', 'application/octet-stream', 297668, 149, '2026-09-21 19:00:42'); +INSERT INTO `tbl_asset_inventory_file` VALUES (59, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988448400.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 19:00:48'); +INSERT INTO `tbl_asset_inventory_file` VALUES (60, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_77ed497d.jpg', 'asset-inventory/20260921_185735_77ed497d_1789988448505.jpg', 'application/octet-stream', 4268455, 149, '2026-09-21 19:00:48'); +INSERT INTO `tbl_asset_inventory_file` VALUES (61, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_16e3ae77.jpg', 'asset-inventory/20260921_185735_16e3ae77_1789988448516.jpg', 'application/octet-stream', 4164781, 149, '2026-09-21 19:00:48'); +INSERT INTO `tbl_asset_inventory_file` VALUES (62, 'bafb696ee03b4daab4c00a5183d9f8ca', 6, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185638_3ded6754.jpg', 'asset-inventory/20260921_185638_3ded6754_1789988448947.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 19:00:48'); +INSERT INTO `tbl_asset_inventory_file` VALUES (63, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_3db4823f.jpg', 'asset-inventory/20260921_185724_3db4823f_1789988449196.jpg', 'application/octet-stream', 164015, 149, '2026-09-21 19:00:49'); +INSERT INTO `tbl_asset_inventory_file` VALUES (64, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_170b6de4.jpg', 'asset-inventory/20260921_185724_170b6de4_1789988449198.jpg', 'application/octet-stream', 276766, 149, '2026-09-21 19:00:49'); +INSERT INTO `tbl_asset_inventory_file` VALUES (65, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_e989e463.jpg', 'asset-inventory/20260921_185751_e989e463_1789988449840.jpg', 'application/octet-stream', 246862, 149, '2026-09-21 19:00:49'); +INSERT INTO `tbl_asset_inventory_file` VALUES (66, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_8247956e.jpg', 'asset-inventory/20260921_185751_8247956e_1789988449841.jpg', 'application/octet-stream', 227761, 149, '2026-09-21 19:00:49'); +INSERT INTO `tbl_asset_inventory_file` VALUES (67, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_e5ff915e.jpg', 'asset-inventory/20260921_185807_e5ff915e_1789988451305.jpg', 'application/octet-stream', 223256, 149, '2026-09-21 19:00:51'); +INSERT INTO `tbl_asset_inventory_file` VALUES (68, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_85b6a9b5.jpg', 'asset-inventory/20260921_185807_85b6a9b5_1789988451307.jpg', 'application/octet-stream', 297668, 149, '2026-09-21 19:00:51'); +INSERT INTO `tbl_asset_inventory_file` VALUES (69, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_77ed497d.jpg', 'asset-inventory/20260921_185735_77ed497d_1789988457433.jpg', 'application/octet-stream', 4268455, 149, '2026-09-21 19:00:57'); +INSERT INTO `tbl_asset_inventory_file` VALUES (70, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_16e3ae77.jpg', 'asset-inventory/20260921_185735_16e3ae77_1789988457445.jpg', 'application/octet-stream', 4164781, 149, '2026-09-21 19:00:57'); +INSERT INTO `tbl_asset_inventory_file` VALUES (71, 'fe02f5769bdf4dc0b5726aac93bb730b', 7, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185558_5107047d.jpg', 'asset-inventory/20260921_185558_5107047d_1789988474375.jpg', 'application/octet-stream', 560521, 149, '2026-09-21 19:01:14'); +INSERT INTO `tbl_asset_inventory_file` VALUES (72, 'bafb696ee03b4daab4c00a5183d9f8ca', 6, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185638_3ded6754.jpg', 'asset-inventory/20260921_185638_3ded6754_1789988474767.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 19:01:14'); +INSERT INTO `tbl_asset_inventory_file` VALUES (73, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_3db4823f.jpg', 'asset-inventory/20260921_185724_3db4823f_1789988475342.jpg', 'application/octet-stream', 164015, 149, '2026-09-21 19:01:15'); +INSERT INTO `tbl_asset_inventory_file` VALUES (74, '5db8ca7a79a445b88645dd39d97e2e67', 8, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185724_170b6de4.jpg', 'asset-inventory/20260921_185724_170b6de4_1789988475344.jpg', 'application/octet-stream', 276766, 149, '2026-09-21 19:01:15'); +INSERT INTO `tbl_asset_inventory_file` VALUES (75, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_77ed497d.jpg', 'asset-inventory/20260921_185735_77ed497d_1789988483284.jpg', 'application/octet-stream', 4268455, 149, '2026-09-21 19:01:23'); +INSERT INTO `tbl_asset_inventory_file` VALUES (76, '93b35db7703f4e3e86d44b27f35f2a58', 12, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185735_16e3ae77.jpg', 'asset-inventory/20260921_185735_16e3ae77_1789988483294.jpg', 'application/octet-stream', 4164781, 149, '2026-09-21 19:01:23'); +INSERT INTO `tbl_asset_inventory_file` VALUES (77, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_e989e463.jpg', 'asset-inventory/20260921_185751_e989e463_1789988483971.jpg', 'application/octet-stream', 246862, 149, '2026-09-21 19:01:23'); +INSERT INTO `tbl_asset_inventory_file` VALUES (78, '97e05ba483eb41a9a3f33796682f6d46', 11, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185751_8247956e.jpg', 'asset-inventory/20260921_185751_8247956e_1789988483974.jpg', 'application/octet-stream', 227761, 149, '2026-09-21 19:01:23'); +INSERT INTO `tbl_asset_inventory_file` VALUES (79, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_e5ff915e.jpg', 'asset-inventory/20260921_185807_e5ff915e_1789988484616.jpg', 'application/octet-stream', 223256, 149, '2026-09-21 19:01:24'); +INSERT INTO `tbl_asset_inventory_file` VALUES (80, '6ff9119f63b64993845a9c067467e5da', 10, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_185807_85b6a9b5.jpg', 'asset-inventory/20260921_185807_85b6a9b5_1789988484618.jpg', 'application/octet-stream', 297668, 149, '2026-09-21 19:01:24'); +INSERT INTO `tbl_asset_inventory_file` VALUES (81, 'b0212c0127ec4c7583a507552720ea27', 9, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_190106_a0384808.jpg', 'asset-inventory/20260921_190106_a0384808_1789988485420.jpg', 'application/octet-stream', 246786, 149, '2026-09-21 19:01:25'); +INSERT INTO `tbl_asset_inventory_file` VALUES (82, 'b0212c0127ec4c7583a507552720ea27', 9, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_190106_b0fa45d8.jpg', 'asset-inventory/20260921_190106_b0fa45d8_1789988485421.jpg', 'application/octet-stream', 440739, 149, '2026-09-21 19:01:25'); +INSERT INTO `tbl_asset_inventory_file` VALUES (83, 'edd28c5442e84cf59a6e1e3d73be44c1', 13, '/data/user/0/com.reallin.asset_management/files/difference_files/20260921_190114_943b06d2.jpg', 'asset-inventory/20260921_190114_943b06d2_1789988485988.jpg', 'application/octet-stream', 440739, 149, '2026-09-21 19:01:25'); + +-- ---------------------------- +-- Table structure for tbl_asset_inventory_operation +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_asset_inventory_operation`; +CREATE TABLE `tbl_asset_inventory_operation` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `inventory_id` bigint NOT NULL, + `operate_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '2接单、3转单、4盘点', + `operator_user_id` bigint NULL DEFAULT NULL, + `operate_time` datetime(0) NOT NULL, + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_asset_inventory_operation`(`inventory_id`, `operate_time`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '盘点执行记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of tbl_asset_inventory_operation +-- ---------------------------- +INSERT INTO `tbl_asset_inventory_operation` VALUES (3, 1, '4', 63, '2026-09-21 14:35:51', '盘点设备:QC-SPI-01'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (4, 4, '2', 149, '2026-09-21 18:52:17', '接收盘点单'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (5, 4, '4', 149, '2026-09-21 18:55:59', '盘点设备:FA-WH-2024-007'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (6, 4, '4', 149, '2026-09-21 18:56:38', '盘点设备:FA-TOOL-2025-008'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (7, 4, '4', 149, '2026-09-21 18:57:25', '盘点设备:FA-IT-2025-006'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (8, 4, '4', 149, '2026-09-21 18:57:35', '盘点设备:FA-SMT-2024-002'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (9, 4, '4', 149, '2026-09-21 18:57:52', '盘点设备:FA-QC-2024-003'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (10, 4, '4', 149, '2026-09-21 18:58:07', '盘点设备:FA-QC-2024-004'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (11, 4, '4', 149, '2026-09-21 19:01:06', '盘点设备:FA-UTIL-2023-005'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (12, 4, '4', 149, '2026-09-21 19:01:15', '盘点设备:FA-SMT-2024-001'); +INSERT INTO `tbl_asset_inventory_operation` VALUES (13, 5, '2', 149, '2026-09-21 19:08:14', '接收盘点单'); + +-- ---------------------------- +-- Table structure for tbl_customer_category +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_customer_category`; +CREATE TABLE `tbl_customer_category` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `category_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `parent_id` bigint NULL DEFAULT 0, + `level` int NULL DEFAULT 1, + `sort` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `description` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `enabled` tinyint(1) NULL DEFAULT 1, + `creator` bigint NULL DEFAULT NULL, + `tenant_id` bigint NULL DEFAULT NULL, + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0), + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_parent_id`(`parent_id`) USING BTREE, + INDEX `idx_tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_customer_category +-- ---------------------------- + +-- ---------------------------- +-- Table structure for tbl_customer_contact +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_customer_contact`; +CREATE TABLE `tbl_customer_contact` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `customer_id` bigint NOT NULL, + `contact_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `position` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `phone` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `telephone` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `email` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `wechat` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `qq` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `is_primary` tinyint(1) NULL DEFAULT 0, + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `creator` bigint NULL DEFAULT NULL, + `tenant_id` bigint NULL DEFAULT NULL, + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0), + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_customer_id`(`customer_id`) USING BTREE, + INDEX `idx_tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_customer_contact +-- ---------------------------- + +-- ---------------------------- +-- Table structure for tbl_delivery_plan +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_delivery_plan`; +CREATE TABLE `tbl_delivery_plan` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `plan_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '交货计划单号', + `source_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源类型:sale销售出库、retail零售出库', + `source_bill_id` bigint NOT NULL COMMENT '来源出库单id', + `source_bill_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源出库单号', + `sale_order_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联销售订单号', + `customer_id` bigint NULL DEFAULT NULL COMMENT '客户/会员id', + `status` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0' COMMENT '状态:0待发货、1部分发货、2已完成', + `planned_delivery_time` datetime(0) NULL DEFAULT NULL COMMENT '计划交货时间', + `adjust_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '调整原因', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_delivery_plan_number`(`plan_number`) USING BTREE, + INDEX `idx_delivery_plan_source_bill_id`(`source_bill_id`) USING BTREE, + INDEX `idx_delivery_plan_source_bill_number`(`source_bill_number`) USING BTREE, + INDEX `idx_delivery_plan_status`(`status`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '交货计划主表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_delivery_plan +-- ---------------------------- +INSERT INTO `tbl_delivery_plan` VALUES (6, 'JH00000001717', 'sale', 1714, 'XSCK-3PH-APEC3-WC-OV-28', 'XSDD-42260529-3PH-APEC3-WC-OV', 90, '2', NULL, NULL, NULL, '2026-09-18 11:41:38', 63, 63, '0'); +INSERT INTO `tbl_delivery_plan` VALUES (7, 'JH00000001741', 'sale', 1720, 'XSCK00000001728', 'XSDD00000001726', 90, '2', NULL, NULL, NULL, '2026-09-18 12:33:05', 63, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_delivery_plan_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_delivery_plan_item`; +CREATE TABLE `tbl_delivery_plan_item` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `plan_id` bigint NOT NULL COMMENT '交货计划id', + `source_item_id` bigint NOT NULL COMMENT '来源出库明细id', + `material_id` bigint NULL DEFAULT NULL COMMENT '商品id', + `material_extend_id` bigint NULL DEFAULT NULL COMMENT '商品扩展id', + `bar_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '条码', + `material_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '商品名称', + `standard` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格', + `model` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '型号', + `unit` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单位', + `batch_number` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '批号', + `sn_list` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '序列号', + `plan_quantity` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '计划数量', + `shipped_quantity` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '已发货数量', + `depot_id` bigint NULL DEFAULT NULL COMMENT '出库仓库id', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_delivery_plan_item_plan_id`(`plan_id`) USING BTREE, + INDEX `idx_delivery_plan_item_source_item_id`(`source_item_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '交货计划明细' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_delivery_plan_item +-- ---------------------------- +INSERT INTO `tbl_delivery_plan_item` VALUES (5, 6, 1519, 704, 124, '3PH-APEC3-WC', '3PH APEC3-WC', '3PH APEC3-WC', '3PH APEC3-WC', '件', NULL, NULL, 149.000000, 0.000000, 26, '', 63, '0'); +INSERT INTO `tbl_delivery_plan_item` VALUES (6, 7, 1525, 703, 123, '1PH-WS79', '1PH WS79', '1PH WS79', '1PH WS79', '件', NULL, NULL, 10000.000000, 0.000000, 25, NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_depot +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_depot`; +CREATE TABLE `tbl_depot` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '仓库名称', + `address` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '仓库地址', + `warehousing` decimal(24, 6) NULL DEFAULT NULL COMMENT '仓储费', + `truckage` decimal(24, 6) NULL DEFAULT NULL COMMENT '搬运费', + `type` int NULL DEFAULT NULL COMMENT '类型', + `sort` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '排序', + `remark` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '描述', + `principal` bigint NULL DEFAULT NULL COMMENT '负责人', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_Flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + `is_default` bit(1) NULL DEFAULT NULL COMMENT '是否默认', + PRIMARY KEY (`id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '仓库表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_depot +-- ---------------------------- +INSERT INTO `tbl_depot` VALUES (25, '半成品仓库', '', 0.000000, 0.000000, 0, '1', '总部入库物料', NULL, b'1', 63, '0', b'1'); +INSERT INTO `tbl_depot` VALUES (26, '成品仓库', '', 0.000000, 0.000000, 0, '2', 'Stock Status成品', NULL, b'1', 63, '0', b'0'); + +-- ---------------------------- +-- Table structure for tbl_depot_head +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_depot_head`; +CREATE TABLE `tbl_depot_head` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类型(出库/入库)', + `sub_type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '出入库分类', + `default_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '初始票据号', + `number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '票据号', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `oper_time` datetime(0) NULL DEFAULT NULL COMMENT '出入库时间', + `organ_id` bigint NULL DEFAULT NULL COMMENT '供应商id', + `creator` bigint NULL DEFAULT NULL COMMENT '操作员', + `account_id` bigint NULL DEFAULT NULL COMMENT '账户id', + `change_amount` decimal(24, 6) NULL DEFAULT NULL COMMENT '变动金额(收款/付款)', + `back_amount` decimal(24, 6) NULL DEFAULT NULL COMMENT '找零金额', + `total_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '合计金额', + `pay_type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '付款类型(现金、记账等)', + `bill_type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '单据类型', + `remark` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `file_name` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '附件名称', + `sales_man` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '销售员(可以多个)', + `account_id_list` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多账户ID列表', + `account_money_list` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多账户金额列表', + `discount` decimal(24, 6) NULL DEFAULT NULL COMMENT '优惠率', + `discount_money` decimal(24, 6) NULL DEFAULT NULL COMMENT '优惠金额', + `discount_last_money` decimal(24, 6) NULL DEFAULT NULL COMMENT '优惠后金额', + `other_money` decimal(24, 6) NULL DEFAULT NULL COMMENT '销售或采购费用合计', + `deposit` decimal(24, 6) NULL DEFAULT NULL COMMENT '订金', + `last_deposit` decimal(24, 6) NULL DEFAULT NULL COMMENT '剩余订金', + `debt` decimal(24, 6) NULL DEFAULT NULL COMMENT '本次欠款', + `last_debt` decimal(24, 6) NULL DEFAULT NULL COMMENT '最终欠款', + `status` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '状态,0未审核、1已审核、2完成采购|销售、3部分采购|销售、9审核中', + `purchase_status` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '采购状态,0未采购、2完成采购、3部分采购', + `source` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '单据来源,0-pc,1-手机', + `link_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '关联订单号', + `link_apply` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '关联请购单', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `FK2A80F214B610FC06`(`organ_id`) USING BTREE, + INDEX `FK2A80F214AAE50527`(`account_id`) USING BTREE, + INDEX `number`(`number`) USING BTREE, + INDEX `link_number`(`link_number`) USING BTREE, + INDEX `creator`(`creator`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1726 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '单据主表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_depot_head +-- ---------------------------- +INSERT INTO `tbl_depot_head` VALUES (1272, '入库', '总部入库', 'SM2503070001', 'SM2503070001', '2025-03-07 00:00:00', '2025-03-07 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 16200.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 16200.000000, 0.000000, 0.000000, 0.000000, 16200.000000, 16200.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1273, '入库', '总部入库', 'SM2503260005', 'SM2503260005', '2025-03-26 00:00:00', '2025-03-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1586109.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1586109.600000, 0.000000, 0.000000, 0.000000, 1586109.600000, 1586109.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1274, '入库', '总部入库', 'SM2503260006', 'SM2503260006', '2025-03-26 00:00:00', '2025-03-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 199.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 199.000000, 0.000000, 0.000000, 0.000000, 199.000000, 199.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1275, '入库', '总部入库', 'SM2503280023', 'SM2503280023', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 275400.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 275400.000000, 0.000000, 0.000000, 0.000000, 275400.000000, 275400.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1276, '入库', '总部入库', 'SM2503280024', 'SM2503280024', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 245592.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 245592.000000, 0.000000, 0.000000, 0.000000, 245592.000000, 245592.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1277, '入库', '总部入库', 'SM2504010007', 'SM2504010007', '2025-04-01 00:00:00', '2025-04-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 829.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 829.000000, 0.000000, 0.000000, 0.000000, 829.000000, 829.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1278, '入库', '总部入库', 'SM2504010008', 'SM2504010008', '2025-04-01 00:00:00', '2025-04-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 3344020.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 3344020.200000, 0.000000, 0.000000, 0.000000, 3344020.200000, 3344020.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1279, '入库', '总部入库', 'SM2504010009', 'SM2504010009', '2025-04-01 00:00:00', '2025-04-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 64800.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 64800.000000, 0.000000, 0.000000, 0.000000, 64800.000000, 64800.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1280, '入库', '总部入库', 'SM2505120010', 'SM2505120010', '2025-05-12 00:00:00', '2025-05-12 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1457416.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1457416.800000, 0.000000, 0.000000, 0.000000, 1457416.800000, 1457416.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1281, '入库', '总部入库', 'SM2505140011', 'SM2505140011', '2025-05-14 00:00:00', '2025-05-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 161935.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 161935.200000, 0.000000, 0.000000, 0.000000, 161935.200000, 161935.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1282, '入库', '总部入库', 'SM2505140012', 'SM2505140012', '2025-05-14 00:00:00', '2025-05-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 790398.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 790398.000000, 0.000000, 0.000000, 0.000000, 790398.000000, 790398.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1283, '入库', '总部入库', 'SM2505220018', 'SM2505220018', '2025-05-22 00:00:00', '2025-05-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 242902.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 242902.800000, 0.000000, 0.000000, 0.000000, 242902.800000, 242902.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1284, '入库', '总部入库', 'SM2505220019', 'SM2505220019', '2025-05-22 00:00:00', '2025-05-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1781287.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1781287.200000, 0.000000, 0.000000, 0.000000, 1781287.200000, 1781287.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1285, '入库', '总部入库', 'SM2505230002', 'SM2505230002', '2025-05-23 00:00:00', '2025-05-23 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 56897.640000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 56897.640000, 0.000000, 0.000000, 0.000000, 56897.640000, 56897.640000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1286, '入库', '总部入库', 'SM2505230003', 'SM2505230003', '2025-05-23 00:00:00', '2025-05-23 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 100375.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 100375.200000, 0.000000, 0.000000, 0.000000, 100375.200000, 100375.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1287, '入库', '总部入库', 'SM2505270016', 'SM2505270016', '2025-05-27 00:00:00', '2025-05-27 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 161935.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 161935.200000, 0.000000, 0.000000, 0.000000, 161935.200000, 161935.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1288, '入库', '总部入库', 'SM2505290002', 'SM2505290002', '2025-05-29 00:00:00', '2025-05-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 223624.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 223624.800000, 0.000000, 0.000000, 0.000000, 223624.800000, 223624.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1289, '入库', '总部入库', 'SM2506120018', 'SM2506120018', '2025-06-12 00:00:00', '2025-06-12 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1669474.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1669474.800000, 0.000000, 0.000000, 0.000000, 1669474.800000, 1669474.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1290, '入库', '总部入库', 'SM2506200003', 'SM2506200003', '2025-06-20 00:00:00', '2025-06-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 24300.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 24300.000000, 0.000000, 0.000000, 0.000000, 24300.000000, 24300.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1291, '入库', '总部入库', 'SM2506200018', 'SM2506200018', '2025-06-20 00:00:00', '2025-06-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 242902.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 242902.800000, 0.000000, 0.000000, 0.000000, 242902.800000, 242902.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1292, '入库', '总部入库', 'SM2506230003', 'SM2506230003', '2025-06-23 00:00:00', '2025-06-23 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 10040.760000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 10040.760000, 0.000000, 0.000000, 0.000000, 10040.760000, 10040.760000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1293, '入库', '总部入库', 'SM2506240004', 'SM2506240004', '2025-06-24 00:00:00', '2025-06-24 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 242902.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 242902.800000, 0.000000, 0.000000, 0.000000, 242902.800000, 242902.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1294, '入库', '总部入库', 'SM2506240005', 'SM2506240005', '2025-06-24 00:00:00', '2025-06-24 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1619352.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1619352.000000, 0.000000, 0.000000, 0.000000, 1619352.000000, 1619352.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1295, '入库', '总部入库', 'SM2507010002', 'SM2507010002', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 2409.750000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 2409.750000, 0.000000, 0.000000, 0.000000, 2409.750000, 2409.750000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1296, '入库', '总部入库', 'SM2507010011', 'SM2507010011', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 174947.850000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 174947.850000, 0.000000, 0.000000, 0.000000, 174947.850000, 174947.850000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1297, '入库', '总部入库', 'SM2507160007', 'SM2507160007', '2025-07-16 00:00:00', '2025-07-16 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 6642.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 6642.000000, 0.000000, 0.000000, 0.000000, 6642.000000, 6642.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1298, '入库', '总部入库', 'SM2508130001', 'SM2508130001', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 3682324.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 3682324.800000, 0.000000, 0.000000, 0.000000, 3682324.800000, 3682324.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1299, '入库', '总部入库', 'SM2508130002', 'SM2508130002', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 462.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 462.000000, 0.000000, 0.000000, 0.000000, 462.000000, 462.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1300, '入库', '总部入库', 'SM2508150005', 'SM2508150005', '2025-08-15 00:00:00', '2025-08-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 527.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 527.000000, 0.000000, 0.000000, 0.000000, 527.000000, 527.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1301, '入库', '总部入库', 'SM2508150006', 'SM2508150006', '2025-08-15 00:00:00', '2025-08-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 4200400.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 4200400.800000, 0.000000, 0.000000, 0.000000, 4200400.800000, 4200400.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1302, '入库', '总部入库', 'SM2508200017', 'SM2508200017', '2025-08-20 00:00:00', '2025-08-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 87674.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 87674.400000, 0.000000, 0.000000, 0.000000, 87674.400000, 87674.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1303, '入库', '总部入库', 'SM2508200018', 'SM2508200018', '2025-08-20 00:00:00', '2025-08-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1088640.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1088640.000000, 0.000000, 0.000000, 0.000000, 1088640.000000, 1088640.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1304, '入库', '总部入库', 'SM2508200021', 'SM2508200021', '2025-08-20 00:00:00', '2025-08-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 11.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 11.000000, 0.000000, 0.000000, 0.000000, 11.000000, 11.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1305, '入库', '总部入库', 'SM2509050003', 'SM2509050003', '2025-09-05 00:00:00', '2025-09-05 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1503360.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1503360.000000, 0.000000, 0.000000, 0.000000, 1503360.000000, 1503360.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1306, '入库', '总部入库', 'SM2509250039', 'SM2509250039', '2025-09-25 00:00:00', '2025-09-25 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1000.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1000.000000, 0.000000, 0.000000, 0.000000, 1000.000000, 1000.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1307, '入库', '总部入库', 'SM2509250040', 'SM2509250040', '2025-09-25 00:00:00', '2025-09-25 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 4033800.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 4033800.000000, 0.000000, 0.000000, 0.000000, 4033800.000000, 4033800.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1308, '入库', '总部入库', 'SM2510170016', 'SM2510170016', '2025-10-17 00:00:00', '2025-10-17 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 14256.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 14256.000000, 0.000000, 0.000000, 0.000000, 14256.000000, 14256.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1309, '入库', '总部入库', 'SM2510200008', 'SM2510200008', '2025-10-20 00:00:00', '2025-10-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 82814.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 82814.400000, 0.000000, 0.000000, 0.000000, 82814.400000, 82814.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1310, '入库', '总部入库', 'SM2510290014', 'SM2510290014', '2025-10-29 00:00:00', '2025-10-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 208144.080000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 208144.080000, 0.000000, 0.000000, 0.000000, 208144.080000, 208144.080000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1311, '入库', '总部入库', 'SM2510300013', 'SM2510300013', '2025-10-30 00:00:00', '2025-10-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 3825655.920000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 3825655.920000, 0.000000, 0.000000, 0.000000, 3825655.920000, 3825655.920000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1312, '入库', '总部入库', 'SM2510300015', 'SM2510300015', '2025-10-30 00:00:00', '2025-10-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 999.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 999.000000, 0.000000, 0.000000, 0.000000, 999.000000, 999.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1313, '入库', '总部入库', 'SM2510300018', 'SM2510300018', '2025-10-30 00:00:00', '2025-10-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1314, '入库', '总部入库', 'SM2511190031', 'SM2511190031', '2025-11-19 00:00:00', '2025-11-19 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1539648.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1539648.000000, 0.000000, 0.000000, 0.000000, 1539648.000000, 1539648.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1315, '入库', '总部入库', 'SM2511220001', 'SM2511220001', '2025-11-22 00:00:00', '2025-11-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1694196.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1694196.000000, 0.000000, 0.000000, 0.000000, 1694196.000000, 1694196.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1316, '入库', '总部入库', 'SM2511260001', 'SM2511260001', '2025-11-26 00:00:00', '2025-11-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 420.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 420.000000, 0.000000, 0.000000, 0.000000, 420.000000, 420.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1317, '入库', '总部入库', 'SM2511260002', 'SM2511260002', '2025-11-26 00:00:00', '2025-11-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 4017081.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 4017081.600000, 0.000000, 0.000000, 0.000000, 4017081.600000, 4017081.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1318, '入库', '总部入库', 'SM2511260006', 'SM2511260006', '2025-11-26 00:00:00', '2025-11-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 504.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 504.000000, 0.000000, 0.000000, 0.000000, 504.000000, 504.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1319, '入库', '总部入库', 'SM2511280010', 'SM2511280010', '2025-11-28 00:00:00', '2025-11-28 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 15552.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 15552.000000, 0.000000, 0.000000, 0.000000, 15552.000000, 15552.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1320, '入库', '总部入库', 'SM2511290001', 'SM2511290001', '2025-11-29 00:00:00', '2025-11-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 3953318.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 3953318.400000, 0.000000, 0.000000, 0.000000, 3953318.400000, 3953318.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1321, '入库', '总部入库', 'SM2512030024', 'SM2512030024', '2025-12-03 00:00:00', '2025-12-03 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1000.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1000.000000, 0.000000, 0.000000, 0.000000, 1000.000000, 1000.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1322, '入库', '总部入库', 'SM2512030027', 'SM2512030027', '2025-12-03 00:00:00', '2025-12-03 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 4033800.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 4033800.000000, 0.000000, 0.000000, 0.000000, 4033800.000000, 4033800.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1323, '入库', '总部入库', 'SM2512100009', 'SM2512100009', '2025-12-10 00:00:00', '2025-12-10 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 4017081.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 4017081.600000, 0.000000, 0.000000, 0.000000, 4017081.600000, 4017081.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1324, '入库', '总部入库', 'SM2512100033', 'SM2512100033', '2025-12-10 00:00:00', '2025-12-10 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 504.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 504.000000, 0.000000, 0.000000, 0.000000, 504.000000, 504.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1325, '入库', '总部入库', 'SM2512150009', 'SM2512150009', '2025-12-15 00:00:00', '2025-12-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 2175919.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 2175919.200000, 0.000000, 0.000000, 0.000000, 2175919.200000, 2175919.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1326, '入库', '总部入库', 'SM2601010017', 'SM2601010017', '2025-12-25 00:00:00', '2025-12-25 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 819072.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 819072.000000, 0.000000, 0.000000, 0.000000, 819072.000000, 819072.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1327, '入库', '总部入库', 'SM2512260011', 'SM2512260011', '2025-12-26 00:00:00', '2025-12-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 273.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 273.000000, 0.000000, 0.000000, 0.000000, 273.000000, 273.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1328, '入库', '总部入库', 'SM2512260022', 'SM2512260022', '2025-12-26 00:00:00', '2025-12-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 496.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 496.000000, 0.000000, 0.000000, 0.000000, 496.000000, 496.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1329, '入库', '总部入库', 'SM2512300003', 'SM2512300003', '2025-12-30 00:00:00', '2025-12-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 471.300000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 471.300000, 0.000000, 0.000000, 0.000000, 471.300000, 471.300000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1330, '入库', '总部入库', 'SM2512300014', 'SM2512300014', '2025-12-30 00:00:00', '2025-12-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 3756449.520000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 3756449.520000, 0.000000, 0.000000, 0.000000, 3756449.520000, 3756449.520000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1331, '入库', '总部入库', 'SM2512300022', 'SM2512300022', '2025-12-30 00:00:00', '2025-12-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 165888.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 165888.000000, 0.000000, 0.000000, 0.000000, 165888.000000, 165888.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1332, '入库', '总部入库', 'SM2601050003', 'SM2601050003', '2026-01-05 00:00:00', '2026-01-05 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 693360.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 693360.000000, 0.000000, 0.000000, 0.000000, 693360.000000, 693360.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1333, '入库', '总部入库', 'SM2601050016', 'SM2601050016', '2026-01-05 00:00:00', '2026-01-05 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 51840.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 51840.000000, 0.000000, 0.000000, 0.000000, 51840.000000, 51840.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1334, '入库', '总部入库', 'SM2601200013', 'SM2601200013', '2026-01-20 00:00:00', '2026-01-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1036800.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1036800.000000, 0.000000, 0.000000, 0.000000, 1036800.000000, 1036800.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1335, '入库', '总部入库', 'SM2601210004', 'SM2601210004', '2026-01-21 00:00:00', '2026-01-21 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 36288.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 36288.000000, 0.000000, 0.000000, 0.000000, 36288.000000, 36288.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1336, '入库', '总部入库', 'SM2604110001', 'SM2604110001', '2026-04-11 00:00:00', '2026-04-11 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 259815.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 259815.600000, 0.000000, 0.000000, 0.000000, 259815.600000, 259815.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1337, '入库', '总部入库', 'SM2604130008', 'SM2604130008', '2026-04-13 00:00:00', '2026-04-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 254202.300000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 254202.300000, 0.000000, 0.000000, 0.000000, 254202.300000, 254202.300000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1338, '入库', '总部入库', 'SM2604140020', 'SM2604140020', '2026-04-14 00:00:00', '2026-04-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 308731.500000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 308731.500000, 0.000000, 0.000000, 0.000000, 308731.500000, 308731.500000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1339, '入库', '总部入库', 'SM2604150001', 'SM2604150001', '2026-04-15 00:00:00', '2026-04-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 43302.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 43302.600000, 0.000000, 0.000000, 0.000000, 43302.600000, 43302.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1340, '入库', '总部入库', 'SM2604150007', 'SM2604150007', '2026-04-15 00:00:00', '2026-04-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 43302.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 43302.600000, 0.000000, 0.000000, 0.000000, 43302.600000, 43302.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1341, '入库', '总部入库', 'SM2604150008', 'SM2604150008', '2026-04-15 00:00:00', '2026-04-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 86605.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 86605.200000, 0.000000, 0.000000, 0.000000, 86605.200000, 86605.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1342, '入库', '总部入库', 'SM2604150011', 'SM2604150011', '2026-04-15 00:00:00', '2026-04-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 303118.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 303118.200000, 0.000000, 0.000000, 0.000000, 303118.200000, 303118.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1343, '入库', '总部入库', 'SM2604150015', 'SM2604150015', '2026-04-15 00:00:00', '2026-04-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 809676.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 809676.000000, 0.000000, 0.000000, 0.000000, 809676.000000, 809676.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1344, '入库', '总部入库', 'SM2604150017', 'SM2604150017', '2026-04-15 00:00:00', '2026-04-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1781287.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1781287.200000, 0.000000, 0.000000, 0.000000, 1781287.200000, 1781287.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1345, '入库', '总部入库', 'SM2604160033', 'SM2604160033', '2026-04-16 00:00:00', '2026-04-16 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 216513.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 216513.000000, 0.000000, 0.000000, 0.000000, 216513.000000, 216513.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1346, '入库', '总部入库', 'SM2604170001', 'SM2604170001', '2026-04-17 00:00:00', '2026-04-17 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 346420.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 346420.800000, 0.000000, 0.000000, 0.000000, 346420.800000, 346420.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1347, '入库', '总部入库', 'SM2604170004', 'SM2604170004', '2026-04-17 00:00:00', '2026-04-17 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 389723.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 389723.400000, 0.000000, 0.000000, 0.000000, 389723.400000, 389723.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1348, '入库', '总部入库', 'SM2604210008', 'SM2604210008', '2026-04-21 00:00:00', '2026-04-21 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 995959.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 995959.800000, 0.000000, 0.000000, 0.000000, 995959.800000, 995959.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1349, '入库', '总部入库', 'SM2604220017', 'SM2604220017', '2026-04-22 00:00:00', '2026-04-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1619352.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1619352.000000, 0.000000, 0.000000, 0.000000, 1619352.000000, 1619352.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1350, '入库', '总部入库', 'SM2604220018', 'SM2604220018', '2026-04-22 00:00:00', '2026-04-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1700319.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1700319.600000, 0.000000, 0.000000, 0.000000, 1700319.600000, 1700319.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1351, '入库', '总部入库', 'SM2604220019', 'SM2604220019', '2026-04-22 00:00:00', '2026-04-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 43302.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 43302.600000, 0.000000, 0.000000, 0.000000, 43302.600000, 43302.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1352, '入库', '总部入库', 'SM2604230004', 'SM2604230004', '2026-04-23 00:00:00', '2026-04-23 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 80967.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 80967.600000, 0.000000, 0.000000, 0.000000, 80967.600000, 80967.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1353, '入库', '总部入库', 'SM2604230012', 'SM2604230012', '2026-04-23 00:00:00', '2026-04-23 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 80967.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 80967.600000, 0.000000, 0.000000, 0.000000, 80967.600000, 80967.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1354, '入库', '总部入库', 'SM2604240007', 'SM2604240007', '2026-04-24 00:00:00', '2026-04-24 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 718502.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 718502.400000, 0.000000, 0.000000, 0.000000, 718502.400000, 718502.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1355, '入库', '总部入库', 'SM2604270003', 'SM2604270003', '2026-04-27 00:00:00', '2026-04-27 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 607038.300000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 607038.300000, 0.000000, 0.000000, 0.000000, 607038.300000, 607038.300000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1356, '入库', '总部入库', 'SM2604270008', 'SM2604270008', '2026-04-27 00:00:00', '2026-04-27 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 345618.900000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 345618.900000, 0.000000, 0.000000, 0.000000, 345618.900000, 345618.900000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1357, '入库', '总部入库', 'SM2604270020', 'SM2604270020', '2026-04-27 00:00:00', '2026-04-27 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 71810.550000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 71810.550000, 0.000000, 0.000000, 0.000000, 71810.550000, 71810.550000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1358, '入库', '总部入库', 'SM2604300004', 'SM2604300004', '2026-04-30 00:00:00', '2026-04-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 389723.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 389723.400000, 0.000000, 0.000000, 0.000000, 389723.400000, 389723.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1359, '入库', '总部入库', 'SM2604300007', 'SM2604300007', '2026-04-30 00:00:00', '2026-04-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 562933.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 562933.800000, 0.000000, 0.000000, 0.000000, 562933.800000, 562933.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1360, '入库', '总部入库', 'SM2605080022', 'SM2605080022', '2026-05-08 00:00:00', '2026-05-08 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 562933.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 562933.800000, 0.000000, 0.000000, 0.000000, 562933.800000, 562933.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1361, '入库', '总部入库', 'SM2605090005', 'SM2605090005', '2026-05-09 00:00:00', '2026-05-09 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 389723.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 389723.400000, 0.000000, 0.000000, 0.000000, 389723.400000, 389723.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1362, '入库', '总部入库', 'SM2605140005', 'SM2605140005', '2026-05-14 00:00:00', '2026-05-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 433026.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 433026.000000, 0.000000, 0.000000, 0.000000, 433026.000000, 433026.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1363, '入库', '总部入库', 'SM2605180003', 'SM2605180003', '2026-05-18 00:00:00', '2026-05-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 404838.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 404838.000000, 0.000000, 0.000000, 0.000000, 404838.000000, 404838.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1364, '入库', '总部入库', 'SM2605180004', 'SM2605180004', '2026-05-18 00:00:00', '2026-05-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 80967.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 80967.600000, 0.000000, 0.000000, 0.000000, 80967.600000, 80967.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1365, '入库', '总部入库', 'SM2605180015', 'SM2605180015', '2026-05-18 00:00:00', '2026-05-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 43302.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 43302.600000, 0.000000, 0.000000, 0.000000, 43302.600000, 43302.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1366, '入库', '总部入库', 'SM2605180016', 'SM2605180016', '2026-05-18 00:00:00', '2026-05-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 994356.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 994356.000000, 0.000000, 0.000000, 0.000000, 994356.000000, 994356.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1367, '入库', '总部入库', 'SM2605180020', 'SM2605180020', '2026-05-18 00:00:00', '2026-05-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 675199.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 675199.800000, 0.000000, 0.000000, 0.000000, 675199.800000, 675199.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1368, '入库', '总部入库', 'SM2605200001', 'SM2605200001', '2026-05-20 00:00:00', '2026-05-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 890643.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 890643.600000, 0.000000, 0.000000, 0.000000, 890643.600000, 890643.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1369, '入库', '总部入库', 'SM2605200002', 'SM2605200002', '2026-05-20 00:00:00', '2026-05-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 485805.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 485805.600000, 0.000000, 0.000000, 0.000000, 485805.600000, 485805.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1370, '入库', '总部入库', 'SM2605200003', 'SM2605200003', '2026-05-20 00:00:00', '2026-05-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 242902.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 242902.800000, 0.000000, 0.000000, 0.000000, 242902.800000, 242902.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1371, '入库', '总部入库', 'SM2605290001', 'SM2605290001', '2026-05-29 00:00:00', '2026-05-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1619352.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1619352.000000, 0.000000, 0.000000, 0.000000, 1619352.000000, 1619352.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1372, '入库', '总部入库', 'SM2606050014', 'SM2606050014', '2026-06-05 00:00:00', '2026-06-05 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 80967.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 80967.600000, 0.000000, 0.000000, 0.000000, 80967.600000, 80967.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1373, '入库', '总部入库', 'SM2606060001', 'SM2606060001', '2026-06-06 00:00:00', '2026-06-06 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1172102.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1172102.400000, 0.000000, 0.000000, 0.000000, 1172102.400000, 1172102.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1374, '入库', '总部入库', 'SM2606080001', 'SM2606080001', '2026-06-08 00:00:00', '2026-06-08 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 21205.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 21205.800000, 0.000000, 0.000000, 0.000000, 21205.800000, 21205.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1375, '入库', '总部入库', 'SM2606170032', 'SM2606170032', '2026-06-17 00:00:00', '2026-06-17 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 370915.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 370915.200000, 0.000000, 0.000000, 0.000000, 370915.200000, 370915.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1376, '入库', '总部入库', 'SM2606180036', 'SM2606180036', '2026-06-18 00:00:00', '2026-06-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 510008.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 510008.400000, 0.000000, 0.000000, 0.000000, 510008.400000, 510008.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1377, '入库', '总部入库', 'SM2606230003', 'SM2606230003', '2026-06-23 00:00:00', '2026-06-23 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 324550.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 324550.800000, 0.000000, 0.000000, 0.000000, 324550.800000, 324550.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1378, '入库', '总部入库', 'SM2606240011', 'SM2606240011', '2026-06-24 00:00:00', '2026-06-24 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 92728.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 92728.800000, 0.000000, 0.000000, 0.000000, 92728.800000, 92728.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1379, '入库', '总部入库', 'SM2606250001', 'SM2606250001', '2026-06-25 00:00:00', '2026-06-25 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 190179.900000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 190179.900000, 0.000000, 0.000000, 0.000000, 190179.900000, 190179.900000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1380, '入库', '总部入库', 'SM2606250005', 'SM2606250005', '2026-06-25 00:00:00', '2026-06-25 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 185457.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 185457.600000, 0.000000, 0.000000, 0.000000, 185457.600000, 185457.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1381, '入库', '总部入库', 'SM2606250007', 'SM2606250007', '2026-06-25 00:00:00', '2026-06-25 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 43359.300000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 43359.300000, 0.000000, 0.000000, 0.000000, 43359.300000, 43359.300000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1382, '入库', '总部入库', 'SM2606290012', 'SM2606290012', '2026-06-29 00:00:00', '2026-06-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 122.400000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 122.400000, 0.000000, 0.000000, 0.000000, 122.400000, 122.400000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1383, '入库', '总部入库', 'SM2606290014', 'SM2606290014', '2026-06-29 00:00:00', '2026-06-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 275562.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 275562.000000, 0.000000, 0.000000, 0.000000, 275562.000000, 275562.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1384, '入库', '总部入库', 'SM2606300001', 'SM2606300001', '2026-06-30 00:00:00', '2026-06-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 816.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 816.000000, 0.000000, 0.000000, 0.000000, 816.000000, 816.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1385, '入库', '总部入库', 'SM2606300002', 'SM2606300002', '2026-06-30 00:00:00', '2026-06-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1469664.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1469664.000000, 0.000000, 0.000000, 0.000000, 1469664.000000, 1469664.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1386, '入库', '总部入库', 'SM2607010032', 'SM2607010032', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 510300.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 510300.000000, 0.000000, 0.000000, 0.000000, 510300.000000, 510300.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1387, '入库', '总部入库', 'SM2607020015', 'SM2607020015', '2026-07-02 00:00:00', '2026-07-02 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 265.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 265.200000, 0.000000, 0.000000, 0.000000, 265.200000, 265.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1388, '入库', '总部入库', 'SM2607020017', 'SM2607020017', '2026-07-02 00:00:00', '2026-07-02 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 510.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 510.000000, 0.000000, 0.000000, 0.000000, 510.000000, 510.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1389, '入库', '总部入库', 'SM2607020018', 'SM2607020018', '2026-07-02 00:00:00', '2026-07-02 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 459270.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 459270.000000, 0.000000, 0.000000, 0.000000, 459270.000000, 459270.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1390, '入库', '总部入库', 'SM2607030001', 'SM2607030001', '2026-07-03 00:00:00', '2026-07-03 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 642978.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 642978.000000, 0.000000, 0.000000, 0.000000, 642978.000000, 642978.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1391, '入库', '总部入库', 'SM2607030016', 'SM2607030016', '2026-07-03 00:00:00', '2026-07-03 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1224720.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1224720.000000, 0.000000, 0.000000, 0.000000, 1224720.000000, 1224720.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1392, '入库', '总部入库', 'SM2607130001', 'SM2607130001', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 408240.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 408240.000000, 0.000000, 0.000000, 0.000000, 408240.000000, 408240.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1393, '入库', '总部入库', 'SM2607130002', 'SM2607130002', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 826686.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 826686.000000, 0.000000, 0.000000, 0.000000, 826686.000000, 826686.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1394, '入库', '总部入库', 'SM2607130003', 'SM2607130003', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 642978.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 642978.000000, 0.000000, 0.000000, 0.000000, 642978.000000, 642978.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1395, '入库', '总部入库', 'SM2607130004', 'SM2607130004', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 408.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 408.800000, 0.000000, 0.000000, 0.000000, 408.800000, 408.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1396, '入库', '总部入库', 'SM2607130005', 'SM2607130005', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 265.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 265.200000, 0.000000, 0.000000, 0.000000, 265.200000, 265.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1397, '入库', '总部入库', 'SM2607130009', 'SM2607130009', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 81.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 81.600000, 0.000000, 0.000000, 0.000000, 81.600000, 81.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1398, '入库', '总部入库', 'SM2607130011', 'SM2607130011', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 81.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 81.600000, 0.000000, 0.000000, 0.000000, 81.600000, 81.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1399, '入库', '总部入库', 'SM2607130030', 'SM2607130030', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 56862.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 56862.000000, 0.000000, 0.000000, 0.000000, 56862.000000, 56862.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1400, '入库', '总部入库', 'SM2607130031', 'SM2607130031', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 306180.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 306180.000000, 0.000000, 0.000000, 0.000000, 306180.000000, 306180.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1401, '入库', '总部入库', 'SM2607140007', 'SM2607140007', '2026-07-14 00:00:00', '2026-07-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1619352.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1619352.000000, 0.000000, 0.000000, 0.000000, 1619352.000000, 1619352.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1402, '入库', '总部入库', 'SM2607140010', 'SM2607140010', '2026-07-14 00:00:00', '2026-07-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 816480.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 816480.000000, 0.000000, 0.000000, 0.000000, 816480.000000, 816480.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1403, '入库', '总部入库', 'SM2607140011', 'SM2607140011', '2026-07-14 00:00:00', '2026-07-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1224720.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1224720.000000, 0.000000, 0.000000, 0.000000, 1224720.000000, 1224720.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1404, '入库', '总部入库', 'SM2607140013', 'SM2607140013', '2026-07-14 00:00:00', '2026-07-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 510.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 510.000000, 0.000000, 0.000000, 0.000000, 510.000000, 510.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1405, '入库', '总部入库', 'SM2607150003', 'SM2607150003', '2026-07-15 00:00:00', '2026-07-15 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 408240.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 408240.000000, 0.000000, 0.000000, 0.000000, 408240.000000, 408240.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1406, '入库', '总部入库', 'SM2607160005', 'SM2607160005', '2026-07-16 00:00:00', '2026-07-16 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1457416.800000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1457416.800000, 0.000000, 0.000000, 0.000000, 1457416.800000, 1457416.800000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1407, '入库', '总部入库', 'SM2607160006', 'SM2607160006', '2026-07-16 00:00:00', '2026-07-16 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 385.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 385.200000, 0.000000, 0.000000, 0.000000, 385.200000, 385.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1408, '入库', '总部入库', 'SM2607170005', 'SM2607170005', '2026-07-17 00:00:00', '2026-07-17 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 161935.200000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 161935.200000, 0.000000, 0.000000, 0.000000, 161935.200000, 161935.200000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1409, '入库', '总部入库', 'SM2607180007', 'SM2607180007', '2026-07-18 00:00:00', '2026-07-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 510300.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 510300.000000, 0.000000, 0.000000, 0.000000, 510300.000000, 510300.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1410, '入库', '总部入库', 'SM2607180009', 'SM2607180009', '2026-07-18 00:00:00', '2026-07-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 102060.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 102060.000000, 0.000000, 0.000000, 0.000000, 102060.000000, 102060.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1411, '入库', '总部入库', 'SM2607180010', 'SM2607180010', '2026-07-18 00:00:00', '2026-07-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 102060.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 102060.000000, 0.000000, 0.000000, 0.000000, 102060.000000, 102060.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1412, '入库', '总部入库', 'SM2607180013', 'SM2607180013', '2026-07-18 00:00:00', '2026-07-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1020600.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1020600.000000, 0.000000, 0.000000, 0.000000, 1020600.000000, 1020600.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1413, '入库', '总部入库', 'SM2607180014', 'SM2607180014', '2026-07-18 00:00:00', '2026-07-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 102060.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 102060.000000, 0.000000, 0.000000, 0.000000, 102060.000000, 102060.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1414, '入库', '总部入库', 'SM2607200002', 'SM2607200002', '2026-07-20 00:00:00', '2026-07-20 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 291600.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 291600.000000, 0.000000, 0.000000, 0.000000, 291600.000000, 291600.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1415, '入库', '总部入库', 'SM2607220004', 'SM2607220004', '2026-07-22 00:00:00', '2026-07-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 275562.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 275562.000000, 0.000000, 0.000000, 0.000000, 275562.000000, 275562.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1416, '入库', '总部入库', 'SM2607220006', 'SM2607220006', '2026-07-22 00:00:00', '2026-07-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1020.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1020.000000, 0.000000, 0.000000, 0.000000, 1020.000000, 1020.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1417, '入库', '总部入库', 'SM2607230002', 'SM2607230002', '2026-07-23 00:00:00', '2026-07-23 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1285956.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 1285956.000000, 0.000000, 0.000000, 0.000000, 1285956.000000, 1285956.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1418, '入库', '总部入库', 'SM2607230004', 'SM2607230004', '2026-07-23 00:00:00', '2026-07-23 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 551124.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 551124.000000, 0.000000, 0.000000, 0.000000, 551124.000000, 551124.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1419, '入库', '总部入库', 'SM2607240005', 'SM2607240005', '2026-07-24 00:00:00', '2026-07-24 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 91854.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 91854.000000, 0.000000, 0.000000, 0.000000, 91854.000000, 91854.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1420, '入库', '总部入库', 'SM2608060004', 'SM2608060004', '2026-08-06 00:00:00', '2026-08-06 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 816.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 816.000000, 0.000000, 0.000000, 0.000000, 816.000000, 816.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1421, '入库', '总部入库', 'SM2608060005', 'SM2608060005', '2026-08-06 00:00:00', '2026-08-06 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 91854.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 91854.000000, 0.000000, 0.000000, 0.000000, 91854.000000, 91854.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1422, '入库', '总部入库', 'SM2608070002', 'SM2608070002', '2026-08-07 00:00:00', '2026-08-07 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 2077650.000000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 2077650.000000, 0.000000, 0.000000, 0.000000, 2077650.000000, 2077650.000000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1423, '入库', '总部入库', 'SM2608070007', 'SM2608070007', '2026-08-07 00:00:00', '2026-08-07 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 183.600000, '记账', '总部入库', 'SMT出库单详情初始化;已审核;价税合计计入应付', '', '', '', '', 100.000000, 0.000000, 183.600000, 0.000000, 0.000000, 0.000000, 183.600000, 183.600000, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1424, '其它', '采购订单', 'CGDD-PO_0486-1PH-WS79', 'CGDD-PO_0486-1PH-WS79', '2025-03-26 00:00:00', '2025-03-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 6687800.000000, '记账', '采购订单', 'Stock Status:1PH WS79-112,400;原采购单:PO_0486', '', '', '', '', 100.000000, 0.000000, 6687800.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', '2', '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1425, '其它', '销售订单', 'XSDD-42076320-1PH-WS79', 'XSDD-42076320-1PH-WS79', '2025-05-29 00:00:00', '2025-05-29 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售订单', 'Stock Status客户PO:42076320', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1426, '其它', '销售订单', 'XSDD-42076321-1PH-WS79', 'XSDD-42076321-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076321', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1427, '其它', '销售订单', 'XSDD-42076322-1PH-WS79', 'XSDD-42076322-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076322', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1428, '其它', '销售订单', 'XSDD-42076323-1PH-WS79', 'XSDD-42076323-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076323', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1429, '其它', '销售订单', 'XSDD-42076324-1PH-WS79', 'XSDD-42076324-1PH-WS79', '2025-06-26 00:00:00', '2025-06-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076324', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1430, '其它', '销售订单', 'XSDD-42076325-1PH-WS79', 'XSDD-42076325-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076325', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1431, '其它', '销售订单', 'XSDD-42076326-1PH-WS79', 'XSDD-42076326-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076326', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1432, '其它', '销售订单', 'XSDD-42076327-1PH-WS79', 'XSDD-42076327-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076327', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1433, '其它', '销售订单', 'XSDD-42076328-1PH-WS79', 'XSDD-42076328-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076328', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1434, '其它', '销售订单', 'XSDD-42076329-1PH-WS79', 'XSDD-42076329-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076329', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1435, '其它', '销售订单', 'XSDD-42076330-1PH-WS79', 'XSDD-42076330-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076330', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1436, '其它', '销售订单', 'XSDD-42076331-1PH-WS79', 'XSDD-42076331-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076331', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1437, '其它', '销售订单', 'XSDD-42076332-1PH-WS79', 'XSDD-42076332-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076332', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1438, '其它', '销售订单', 'XSDD-42076333-1PH-WS79', 'XSDD-42076333-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售订单', 'Stock Status客户PO:42076333', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1439, '其它', '销售订单', 'XSDD-42076334-1PH-WS79', 'XSDD-42076334-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076334', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1440, '其它', '销售订单', 'XSDD-42076335-1PH-WS79', 'XSDD-42076335-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076335', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1441, '其它', '销售订单', 'XSDD-42076336-1PH-WS79', 'XSDD-42076336-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076336', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1442, '其它', '销售订单', 'XSDD-42076339-1PH-WS79', 'XSDD-42076339-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42076339', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1443, '其它', '销售订单', 'XSDD-42092713-1PH-WS79', 'XSDD-42092713-1PH-WS79', '2025-07-28 00:00:00', '2025-07-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1212750.000000, '记账', '销售订单', 'Stock Status客户PO:42092713', '', '', '', '', 100.000000, 0.000000, 1212750.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1444, '其它', '销售订单', 'XSDD-42092714-1PH-WS79', 'XSDD-42092714-1PH-WS79', '2025-07-28 00:00:00', '2025-07-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1212750.000000, '记账', '销售订单', 'Stock Status客户PO:42092714', '', '', '', '', 100.000000, 0.000000, 1212750.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1445, '其它', '销售订单', 'XSDD-42092715-1PH-WS79', 'XSDD-42092715-1PH-WS79', '2025-07-28 00:00:00', '2025-07-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 727650.000000, '记账', '销售订单', 'Stock Status客户PO:42092715', '', '', '', '', 100.000000, 0.000000, 727650.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1446, '其它', '销售订单', 'XSDD-42092716-1PH-WS79', 'XSDD-42092716-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售订单', 'Stock Status客户PO:42092716', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1447, '其它', '销售订单', 'XSDD-42092717-1PH-WS79', 'XSDD-42092717-1PH-WS79', '2025-08-28 00:00:00', '2025-08-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 485100.000000, '记账', '销售订单', 'Stock Status客户PO:42092717', '', '', '', '', 100.000000, 0.000000, 485100.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1448, '其它', '销售订单', 'XSDD-42092718-1PH-WS79', 'XSDD-42092718-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 485100.000000, '记账', '销售订单', 'Stock Status客户PO:42092718', '', '', '', '', 100.000000, 0.000000, 485100.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1449, '其它', '销售订单', 'XSDD-42092722-1PH-WS79', 'XSDD-42092722-1PH-WS79', '2025-08-28 00:00:00', '2025-08-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 485100.000000, '记账', '销售订单', 'Stock Status客户PO:42092722', '', '', '', '', 100.000000, 0.000000, 485100.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1450, '其它', '销售订单', 'XSDD-42092726-1PH-WS79', 'XSDD-42092726-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42092726', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1451, '其它', '销售订单', 'XSDD-42092729-1PH-WS79', 'XSDD-42092729-1PH-WS79', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 113190.000000, '记账', '销售订单', 'Stock Status客户PO:42092729', '', '', '', '', 100.000000, 0.000000, 113190.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1452, '入库', '采购', 'CGRK-RM-SMT-250423-01-11', 'CGRK-RM-SMT-250423-01-11', '2025-05-13 00:00:00', '2025-05-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250423-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 104559.445000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1453, '出库', '销售', 'XSCK-INV_1707-11', 'XSCK-INV_1707-11', '2025-06-06 00:00:00', '2025-06-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1707', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42076320-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1454, '出库', '销售', 'XSCK-INV_1708-12', 'XSCK-INV_1708-12', '2025-06-10 00:00:00', '2025-06-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1708', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42076321-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1455, '出库', '销售', 'XSCK-INV_1709-13', 'XSCK-INV_1709-13', '2025-06-10 00:00:00', '2025-06-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1709', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42076322-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1456, '出库', '销售', 'XSCK-INV_1710-14', 'XSCK-INV_1710-14', '2025-06-10 00:00:00', '2025-06-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1710', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42076323-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1457, '入库', '采购', 'CGRK-RM-SMT-250429-01-15', 'CGRK-RM-SMT-250429-01-15', '2025-05-13 00:00:00', '2025-05-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250429-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 451042.912000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1458, '出库', '销售', 'XSCK-INV_1713-15', 'XSCK-INV_1713-15', '2025-06-12 00:00:00', '2025-06-12 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1713', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 0.000000, '1', NULL, '0', 'XSDD-42076324-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1459, '出库', '销售', 'XSCK-INV_1744-16', 'XSCK-INV_1744-16', '2025-07-08 00:00:00', '2025-07-08 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1744', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 0.000000, '1', NULL, '0', 'XSDD-42076325-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1460, '出库', '销售', 'XSCK-INV_1715-17', 'XSCK-INV_1715-17', '2025-06-13 00:00:00', '2025-06-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1715', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 0.000000, '1', NULL, '0', 'XSDD-42076326-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1461, '出库', '销售', 'XSCK-INV_1716-19', 'XSCK-INV_1716-19', '2025-06-13 00:00:00', '2025-06-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1716', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42076327-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1462, '入库', '采购', 'CGRK-RM-SMT-250513-01-20', 'CGRK-RM-SMT-250513-01-20', '2025-05-27 00:00:00', '2025-05-27 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250513-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 355071.520000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1463, '出库', '销售', 'XSCK-1PH-WS79-20', 'XSCK-1PH-WS79-20', '2025-06-13 00:00:00', '2025-06-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42076327-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1464, '出库', '销售', 'XSCK-1PH-WS79-21', 'XSCK-1PH-WS79-21', '2025-06-13 00:00:00', '2025-06-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42076327-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1465, '出库', '销售', 'XSCK-INV_1717-22', 'XSCK-INV_1717-22', '2025-06-15 00:00:00', '2025-06-15 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1717', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 0.000000, '1', NULL, '0', 'XSDD-42076328-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1466, '出库', '销售', 'XSCK-INV_1727-23', 'XSCK-INV_1727-23', '2025-06-23 00:00:00', '2025-06-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1727', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 0.000000, '1', NULL, '0', 'XSDD-42076329-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1467, '出库', '销售', 'XSCK-INV_1729-24', 'XSCK-INV_1729-24', '2025-06-25 00:00:00', '2025-06-25 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 161700.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1729', '', '', '', '', 100.000000, 0.000000, 161700.000000, 0.000000, 0.000000, 0.000000, 161700.000000, 0.000000, '1', NULL, '0', 'XSDD-42076330-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1468, '入库', '采购', 'CGRK-RM-SMT-250519-01-25', 'CGRK-RM-SMT-250519-01-25', '2025-05-30 00:00:00', '2025-05-30 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250519-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 0.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1469, '出库', '销售', 'XSCK-INV_1728-25', 'XSCK-INV_1728-25', '2025-06-23 00:00:00', '2025-06-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1728', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42076330-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1470, '出库', '销售', 'XSCK-INV_1730-26', 'XSCK-INV_1730-26', '2025-06-30 00:00:00', '2025-06-30 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1730', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42076331-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1471, '出库', '销售', 'XSCK-INV_1731-27', 'XSCK-INV_1731-27', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1731', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42076332-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1472, '出库', '销售', 'XSCK-INV_1732-28', 'XSCK-INV_1732-28', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1732', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42076333-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1473, '出库', '销售', 'XSCK-INV_1733-29', 'XSCK-INV_1733-29', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 161700.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1733', '', '', '', '', 100.000000, 0.000000, 161700.000000, 0.000000, 0.000000, 0.000000, 161700.000000, 161700.000000, '1', NULL, '0', 'XSDD-42076334-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1474, '入库', '采购', 'CGRK-RM-SMT-250522-01-30', 'CGRK-RM-SMT-250522-01-30', '2025-06-10 00:00:00', '2025-06-10 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250522-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 595000.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1475, '出库', '销售', 'XSCK-1PH-WS79-30', 'XSCK-1PH-WS79-30', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42076334-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1476, '出库', '销售', 'XSCK-INV_1734-31', 'XSCK-INV_1734-31', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1734', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42076335-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1477, '出库', '销售', 'XSCK-INV_1735-32', 'XSCK-INV_1735-32', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1735', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42076336-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1478, '出库', '销售', 'XSCK-INV_1736-33', 'XSCK-INV_1736-33', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1736', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42076339-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1479, '入库', '采购', 'CGRK-RM-SMT-250526-01-34', 'CGRK-RM-SMT-250526-01-34', '2025-06-13 00:00:00', '2025-06-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250526-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 0.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1480, '出库', '销售', 'XSCK-INV_1753-34', 'XSCK-INV_1753-34', '2025-07-18 00:00:00', '2025-07-18 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1753', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 0.000000, '1', NULL, '0', 'XSDD-42092713-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1481, '出库', '销售', 'XSCK-INV_1763-35', 'XSCK-INV_1763-35', '2025-07-23 00:00:00', '2025-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1763', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092713-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1482, '出库', '销售', 'XSCK-INV_1764-36', 'XSCK-INV_1764-36', '2025-07-23 00:00:00', '2025-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1764', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092713-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1483, '出库', '销售', 'XSCK-INV_1765-37', 'XSCK-INV_1765-37', '2025-07-23 00:00:00', '2025-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1765', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092713-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1484, '入库', '采购', 'CGRK-RM-SMT-250528-01-38', 'CGRK-RM-SMT-250528-01-38', '2025-06-18 00:00:00', '2025-06-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250528-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 595000.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1485, '出库', '销售', 'XSCK-1PH-WS79-38', 'XSCK-1PH-WS79-38', '2025-07-23 00:00:00', '2025-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 161700.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 161700.000000, 0.000000, 0.000000, 0.000000, 161700.000000, 161700.000000, '1', NULL, '0', 'XSDD-42092713-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1486, '出库', '销售', 'XSCK-INV_1766-39', 'XSCK-INV_1766-39', '2025-07-23 00:00:00', '2025-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1766', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092713-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1487, '出库', '销售', 'XSCK-INV_1772-40', 'XSCK-INV_1772-40', '2025-08-06 00:00:00', '2025-08-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1772', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 0.000000, '1', NULL, '0', 'XSDD-42092714-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1488, '出库', '销售', 'XSCK-INV_1773-41', 'XSCK-INV_1773-41', '2025-08-06 00:00:00', '2025-08-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 161700.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1773', '', '', '', '', 100.000000, 0.000000, 161700.000000, 0.000000, 0.000000, 0.000000, 161700.000000, 161700.000000, '1', NULL, '0', 'XSDD-42092714-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1489, '入库', '采购', 'CGRK-RM-SMT-250612-01-42', 'CGRK-RM-SMT-250612-01-42', '2025-07-01 00:00:00', '2025-07-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250612-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 595000.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1490, '出库', '销售', 'XSCK-1PH-WS79-42', 'XSCK-1PH-WS79-42', '2025-08-06 00:00:00', '2025-08-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092714-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1491, '出库', '销售', 'XSCK-INV_1774-43', 'XSCK-INV_1774-43', '2025-08-06 00:00:00', '2025-08-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1774', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092714-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1492, '出库', '销售', 'XSCK-INV_1775-44', 'XSCK-INV_1775-44', '2025-08-06 00:00:00', '2025-08-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1775', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092714-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1493, '出库', '销售', 'XSCK-INV_1776-45', 'XSCK-INV_1776-45', '2025-08-06 00:00:00', '2025-08-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1776', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092714-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1494, '入库', '采购', 'CGRK-RM-SMT-250617-01-46', 'CGRK-RM-SMT-250617-01-46', '2025-07-05 00:00:00', '2025-07-05 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250617-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 595000.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1495, '出库', '销售', 'XSCK-INV_1779-46', 'XSCK-INV_1779-46', '2025-08-06 00:00:00', '2025-08-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1779', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092715-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1496, '出库', '销售', 'XSCK-INV_1780-47', 'XSCK-INV_1780-47', '2025-08-04 00:00:00', '2025-08-04 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1780', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092715-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1497, '出库', '销售', 'XSCK-INV_1781-48', 'XSCK-INV_1781-48', '2025-08-04 00:00:00', '2025-08-04 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1781', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092715-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1498, '出库', '销售', 'XSCK-INV_1782-49', 'XSCK-INV_1782-49', '2025-08-04 00:00:00', '2025-08-04 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1782', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092716-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1499, '入库', '采购', 'CGRK-RM-SMT-250620-01-50', 'CGRK-RM-SMT-250620-01-50', '2025-07-08 00:00:00', '2025-07-08 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 595000.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250620-01', '', '', '', '', 100.000000, 0.000000, 595000.000000, 0.000000, 0.000000, 0.000000, 595000.000000, 595000.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1500, '出库', '销售', 'XSCK-INV_1786-50', 'XSCK-INV_1786-50', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1786', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 0.000000, '1', NULL, '0', 'XSDD-42092717-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1501, '出库', '销售', 'XSCK-INV_1787-51', 'XSCK-INV_1787-51', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1787', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092717-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1502, '出库', '销售', 'XSCK-INV_1788-52', 'XSCK-INV_1788-52', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1788', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, 242550.000000, 242550.000000, '1', NULL, '0', 'XSDD-42092718-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1503, '出库', '销售', 'XSCK-INV_1789-53', 'XSCK-INV_1789-53', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1789', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092718-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1504, '入库', '采购', 'CGRK-RM-SMT-250623-01-54', 'CGRK-RM-SMT-250623-01-54', '2025-07-14 00:00:00', '2025-07-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 610470.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250623-01', '', '', '', '', 100.000000, 0.000000, 610470.000000, 0.000000, 0.000000, 0.000000, 610470.000000, 610470.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1505, '出库', '销售', 'XSCK-1PH-WS79-54', 'XSCK-1PH-WS79-54', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 161700.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 161700.000000, 0.000000, 0.000000, 0.000000, 161700.000000, 161700.000000, '1', NULL, '0', 'XSDD-42092718-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1506, '出库', '销售', 'XSCK-INV_1819-55', 'XSCK-INV_1819-55', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1819', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42092722-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1507, '出库', '销售', 'XSCK-1PH-WS79-56', 'XSCK-1PH-WS79-56', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092722-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1508, '出库', '销售', 'XSCK-1PH-WS79-57', 'XSCK-1PH-WS79-57', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092722-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1509, '出库', '销售', 'XSCK-INV_1820-58', 'XSCK-INV_1820-58', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1820', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092722-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1510, '出库', '销售', 'XSCK-1PH-WS79-59', 'XSCK-1PH-WS79-59', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092722-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1511, '出库', '销售', 'XSCK-1PH-WS79-60', 'XSCK-1PH-WS79-60', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092722-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1512, '出库', '销售', 'XSCK-INV_1821-61', 'XSCK-INV_1821-61', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1821', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092726-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1513, '出库', '销售', 'XSCK-1PH-WS79-62', 'XSCK-1PH-WS79-62', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092726-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1514, '出库', '销售', 'XSCK-1PH-WS79-63', 'XSCK-1PH-WS79-63', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 21021.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 21021.000000, 0.000000, 0.000000, 0.000000, 21021.000000, 21021.000000, '1', NULL, '0', 'XSDD-42092726-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1515, '入库', '采购', 'CGRK-RM-SMT-250701-01-64', 'CGRK-RM-SMT-250701-01-64', '2025-07-17 00:00:00', '2025-07-17 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 127330.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400;供应商发票:RM-SMT-250701-01', '', '', '', '', 100.000000, 0.000000, 127330.000000, 0.000000, 0.000000, 0.000000, 127330.000000, 127330.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1516, '出库', '销售', 'XSCK-1PH-WS79-64', 'XSCK-1PH-WS79-64', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 59829.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 59829.000000, 0.000000, 0.000000, 0.000000, 59829.000000, 59829.000000, '1', NULL, '0', 'XSDD-42092726-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1517, '出库', '销售', 'XSCK-INV_1822-65', 'XSCK-INV_1822-65', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:INV_1822', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42092729-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1518, '出库', '销售', 'XSCK-1PH-WS79-66', 'XSCK-1PH-WS79-66', '2025-09-09 00:00:00', '2025-09-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 32340.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 32340.000000, 0.000000, 0.000000, 0.000000, 32340.000000, 32340.000000, '1', NULL, '0', 'XSDD-42092729-1PH-WS79', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1519, '其它', '采购订单', 'CGDD-PO_0486-3PH-APEC3-WC', 'CGDD-PO_0486-3PH-APEC3-WC', '2025-03-26 00:00:00', '2025-03-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 5778500.000000, '记账', '采购订单', 'Stock Status:3PH APEC3 WC-18200;原采购单:PO_0486', '', '', '', '', 100.000000, 0.000000, 5778500.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', '2', '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1520, '其它', '销售订单', 'XSDD-42076552-3PH-APEC3-WC', 'XSDD-42076552-3PH-APEC3-WC', '2025-06-26 00:00:00', '2025-06-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售订单', 'Stock Status客户PO:42076552', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1521, '其它', '销售订单', 'XSDD-42076553-3PH-APEC3-WC', 'XSDD-42076553-3PH-APEC3-WC', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42076553', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1522, '其它', '销售订单', 'XSDD-42076554-3PH-APEC3-WC', 'XSDD-42076554-3PH-APEC3-WC', '2025-07-29 00:00:00', '2025-07-29 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42076554', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1523, '其它', '销售订单', 'XSDD-42076557-3PH-APEC3-WC', 'XSDD-42076557-3PH-APEC3-WC', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42076557', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1524, '其它', '销售订单', 'XSDD-42076560-3PH-APEC3-WC', 'XSDD-42076560-3PH-APEC3-WC', '2025-08-26 00:00:00', '2025-08-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42076560', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1525, '其它', '销售订单', 'XSDD-42076561-3PH-APEC3-WC', 'XSDD-42076561-3PH-APEC3-WC', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42076561', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1526, '其它', '销售订单', 'XSDD-42076558-3PH-APEC3-WC', 'XSDD-42076558-3PH-APEC3-WC', '2025-03-28 00:00:00', '2025-03-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 822800.000000, '记账', '销售订单', 'Stock Status客户PO:42076558', '', '', '', '', 100.000000, 0.000000, 822800.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1527, '入库', '采购', 'CGRK-RM-SMT-250509-01-11', 'CGRK-RM-SMT-250509-01-11', '2025-05-22 00:00:00', '2025-05-22 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 960120.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250509-01', '', '', '', '', 100.000000, 0.000000, 960120.000000, 0.000000, 0.000000, 0.000000, 960120.000000, 0.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1528, '出库', '销售', 'XSCK-INV_1720-11', 'XSCK-INV_1720-11', '2025-06-17 00:00:00', '2025-06-17 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1720', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 0.000000, '1', NULL, '0', 'XSDD-42076552-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1529, '出库', '销售', 'XSCK-INV_1722-12', 'XSCK-INV_1722-12', '2025-06-24 00:00:00', '2025-06-24 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1722', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42076553-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1530, '出库', '销售', 'XSCK-INV_1723-13', 'XSCK-INV_1723-13', '2025-06-24 00:00:00', '2025-06-24 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1723', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 0.000000, '1', NULL, '0', 'XSDD-42076553-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1531, '出库', '销售', 'XSCK-3PH-APEC3-WC-14', 'XSCK-3PH-APEC3-WC-14', '2025-06-24 00:00:00', '2025-06-24 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 8976.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 8976.000000, 0.000000, 0.000000, 0.000000, 8976.000000, 8976.000000, '1', NULL, '0', 'XSDD-42076553-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1532, '入库', '采购', 'CGRK-RM-SMT-250513-01-15', 'CGRK-RM-SMT-250513-01-15', '2025-05-27 00:00:00', '2025-05-27 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 106680.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250513-01', '', '', '', '', 100.000000, 0.000000, 106680.000000, 0.000000, 0.000000, 0.000000, 106680.000000, 106680.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1533, '出库', '销售', 'XSCK-3PH-APEC3-WC-15', 'XSCK-3PH-APEC3-WC-15', '2025-06-24 00:00:00', '2025-06-24 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 125664.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 125664.000000, 0.000000, 0.000000, 0.000000, 125664.000000, 125664.000000, '1', NULL, '0', 'XSDD-42076553-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1534, '入库', '采购', 'CGRK-RM-SMT-250514-01-16', 'CGRK-RM-SMT-250514-01-16', '2025-05-29 00:00:00', '2025-05-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 520700.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250514-01', '', '', '', '', 100.000000, 0.000000, 520700.000000, 0.000000, 0.000000, 0.000000, 520700.000000, 520700.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1535, '出库', '销售', 'XSCK-3PH-APEC3-WC-16', 'XSCK-3PH-APEC3-WC-16', '2025-06-24 00:00:00', '2025-06-24 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 239360.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 239360.000000, 0.000000, 0.000000, 0.000000, 239360.000000, 239360.000000, '1', NULL, '0', 'XSDD-42076553-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1536, '出库', '销售', 'XSCK-INV_1745-17', 'XSCK-INV_1745-17', '2025-07-08 00:00:00', '2025-07-08 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1745', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 0.000000, '1', NULL, '0', 'XSDD-42076554-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1537, '入库', '采购', 'CGRK-RM-SMT-250521-01-18', 'CGRK-RM-SMT-250521-01-18', '2025-06-05 00:00:00', '2025-06-05 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1173480.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250521-01', '', '', '', '', 100.000000, 0.000000, 1173480.000000, 0.000000, 0.000000, 0.000000, 1173480.000000, 1173480.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1538, '出库', '销售', 'XSCK-3PH-APEC3-WC-18', 'XSCK-3PH-APEC3-WC-18', '2025-07-08 00:00:00', '2025-07-08 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42076554-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1539, '出库', '销售', 'XSCK-3PH-APEC3-WC-19', 'XSCK-3PH-APEC3-WC-19', '2025-07-08 00:00:00', '2025-07-08 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42076554-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1540, '出库', '销售', 'XSCK-INV_1748-20', 'XSCK-INV_1748-20', '2025-07-10 00:00:00', '2025-07-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 634304.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1748', '', '', '', '', 100.000000, 0.000000, 634304.000000, 0.000000, 0.000000, 0.000000, 634304.000000, 0.000000, '1', NULL, '0', 'XSDD-42076557-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1541, '入库', '采购', 'CGRK-RM-SMT-250522-01-21', 'CGRK-RM-SMT-250522-01-21', '2025-06-10 00:00:00', '2025-06-10 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 160020.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250522-01', '', '', '', '', 100.000000, 0.000000, 160020.000000, 0.000000, 0.000000, 0.000000, 160020.000000, 160020.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1542, '出库', '销售', 'XSCK-3PH-APEC3-WC-21', 'XSCK-3PH-APEC3-WC-21', '2025-07-10 00:00:00', '2025-07-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 188496.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 188496.000000, 0.000000, 0.000000, 0.000000, 188496.000000, 188496.000000, '1', NULL, '0', 'XSDD-42076557-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1543, '入库', '采购', 'CGRK-RM-SMT-250526-01-22', 'CGRK-RM-SMT-250526-01-22', '2025-06-13 00:00:00', '2025-06-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 106680.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250526-01', '', '', '', '', 100.000000, 0.000000, 106680.000000, 0.000000, 0.000000, 0.000000, 106680.000000, 106680.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1544, '出库', '销售', 'XSCK-3PH-APEC3-WC-22', 'XSCK-3PH-APEC3-WC-22', '2025-07-10 00:00:00', '2025-07-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 125664.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 125664.000000, 0.000000, 0.000000, 0.000000, 125664.000000, 125664.000000, '1', NULL, '0', 'XSDD-42076557-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1545, '入库', '采购', 'CGRK-RM-SMT-250528-01-23', 'CGRK-RM-SMT-250528-01-23', '2025-06-18 00:00:00', '2025-06-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 147320.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250528-01', '', '', '', '', 100.000000, 0.000000, 147320.000000, 0.000000, 0.000000, 0.000000, 147320.000000, 147320.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1546, '出库', '销售', 'XSCK-3PH-APEC3-WC-23', 'XSCK-3PH-APEC3-WC-23', '2025-07-10 00:00:00', '2025-07-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 173536.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 173536.000000, 0.000000, 0.000000, 0.000000, 173536.000000, 173536.000000, '1', NULL, '0', 'XSDD-42076557-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1547, '入库', '采购', 'CGRK-RM-SMT-250612-01-24', 'CGRK-RM-SMT-250612-01-24', '2025-06-26 00:00:00', '2025-06-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1099820.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250612-01', '', '', '', '', 100.000000, 0.000000, 1099820.000000, 0.000000, 0.000000, 0.000000, 1099820.000000, 232743.755000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1548, '出库', '销售', 'XSCK-INV_1784-24', 'XSCK-INV_1784-24', '2025-08-12 00:00:00', '2025-08-12 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1784', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 0.000000, '1', NULL, '0', 'XSDD-42076560-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1549, '出库', '销售', 'XSCK-INV_1785-25', 'XSCK-INV_1785-25', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1785', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42076560-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1550, '出库', '销售', 'XSCK-3PH-APEC3-WC-26', 'XSCK-3PH-APEC3-WC-26', '2025-08-13 00:00:00', '2025-08-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42076560-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1551, '出库', '销售', 'XSCK-INV_1796-27', 'XSCK-INV_1796-27', '2025-08-19 00:00:00', '2025-08-19 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 173536.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1796', '', '', '', '', 100.000000, 0.000000, 173536.000000, 0.000000, 0.000000, 0.000000, 173536.000000, 0.000000, '1', NULL, '0', 'XSDD-42076561-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1552, '入库', '采购', 'CGRK-RM-SMT-250620-01-28', 'CGRK-RM-SMT-250620-01-28', '2025-07-08 00:00:00', '2025-07-08 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 160020.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RM-SMT-250620-01', '', '', '', '', 100.000000, 0.000000, 160020.000000, 0.000000, 0.000000, 0.000000, 160020.000000, 160020.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1553, '出库', '销售', 'XSCK-3PH-APEC3-WC-28', 'XSCK-3PH-APEC3-WC-28', '2025-08-19 00:00:00', '2025-08-19 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 188496.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 188496.000000, 0.000000, 0.000000, 0.000000, 188496.000000, 188496.000000, '1', NULL, '0', 'XSDD-42076561-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1554, '入库', '采购', 'CGRK-RY-SMT-250623-01-29', 'CGRK-RY-SMT-250623-01-29', '2025-07-11 00:00:00', '2025-07-11 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1066800.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RY-SMT-250623-01', '', '', '', '', 100.000000, 0.000000, 1066800.000000, 0.000000, 0.000000, 0.000000, 1066800.000000, 1066800.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1555, '出库', '销售', 'XSCK-3PH-APEC3-WC-29', 'XSCK-3PH-APEC3-WC-29', '2025-08-19 00:00:00', '2025-08-19 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 11968.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 11968.000000, 0.000000, 0.000000, 0.000000, 11968.000000, 11968.000000, '1', NULL, '0', 'XSDD-42076561-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1556, '出库', '销售', 'XSCK-3PH-APEC3-WC-30', 'XSCK-3PH-APEC3-WC-30', '2025-08-19 00:00:00', '2025-08-19 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 748000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 748000.000000, 0.000000, 0.000000, 0.000000, 748000.000000, 748000.000000, '1', NULL, '0', 'XSDD-42076561-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1557, '出库', '销售', 'XSCK-INV_1805-31', 'XSCK-INV_1805-31', '2025-08-21 00:00:00', '2025-08-21 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:INV_1805', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 0.000000, '1', NULL, '0', 'XSDD-42076558-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1558, '出库', '销售', 'XSCK-3PH-APEC3-WC-32', 'XSCK-3PH-APEC3-WC-32', '2025-08-21 00:00:00', '2025-08-21 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 122672.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 122672.000000, 0.000000, 0.000000, 0.000000, 122672.000000, 122672.000000, '1', NULL, '0', 'XSDD-42076558-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1559, '入库', '采购', 'CGRK-RY-SMT-250623-02-33', 'CGRK-RY-SMT-250623-02-33', '2025-07-14 00:00:00', '2025-07-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 160020.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RY-SMT-250623-02', '', '', '', '', 100.000000, 0.000000, 160020.000000, 0.000000, 0.000000, 0.000000, 160020.000000, 160020.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1560, '出库', '销售', 'XSCK-3PH-APEC3-WC-33', 'XSCK-3PH-APEC3-WC-33', '2025-08-21 00:00:00', '2025-08-21 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 188496.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 188496.000000, 0.000000, 0.000000, 0.000000, 188496.000000, 188496.000000, '1', NULL, '0', 'XSDD-42076558-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1561, '入库', '采购', 'CGRK-RY-SMT-250701-01-34', 'CGRK-RY-SMT-250701-01-34', '2025-07-17 00:00:00', '2025-07-17 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 116840.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200;供应商发票:RY-SMT-250701-01', '', '', '', '', 100.000000, 0.000000, 116840.000000, 0.000000, 0.000000, 0.000000, 116840.000000, 116840.000000, '1', NULL, '0', 'CGDD-PO_0486-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1562, '出库', '销售', 'XSCK-3PH-APEC3-WC-34', 'XSCK-3PH-APEC3-WC-34', '2025-08-21 00:00:00', '2025-08-21 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 62832.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 62832.000000, 0.000000, 0.000000, 0.000000, 62832.000000, 62832.000000, '1', NULL, '0', 'XSDD-42076558-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1563, '出库', '销售', 'XSCK-3PH-APEC3-WC-35', 'XSCK-3PH-APEC3-WC-35', '2025-08-21 00:00:00', '2025-08-21 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 74800.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 74800.000000, 0.000000, 0.000000, 0.000000, 74800.000000, 74800.000000, '1', NULL, '0', 'XSDD-42076558-3PH-APEC3-WC', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1564, '其它', '采购订单', 'CGDD-PO_0486-1PH-WS79-ADD1', 'CGDD-PO_0486-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 6687800.000000, '记账', '采购订单', 'Stock Status:1PH WS79-112,400 (+1);原采购单:PO_0486', '', '', '', '', 100.000000, 0.000000, 6687800.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', '2', '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1565, '其它', '销售订单', 'XSDD-42303412-1PH-WS79-ADD1', 'XSDD-42303412-1PH-WS79-ADD1', '2026-06-29 00:00:00', '2026-06-29 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303412', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1566, '其它', '销售订单', 'XSDD-42303416-1PH-WS79-ADD1', 'XSDD-42303416-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303416', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1567, '其它', '销售订单', 'XSDD-42303420-1PH-WS79-ADD1', 'XSDD-42303420-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303420', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1568, '其它', '销售订单', 'XSDD-42303425-1PH-WS79-ADD1', 'XSDD-42303425-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303425', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1569, '其它', '销售订单', 'XSDD-42303429-1PH-WS79-ADD1', 'XSDD-42303429-1PH-WS79-ADD1', '2026-07-02 00:00:00', '2026-07-02 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303429', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1570, '其它', '销售订单', 'XSDD-42303433-1PH-WS79-ADD1', 'XSDD-42303433-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303433', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1571, '其它', '销售订单', 'XSDD-42303437-1PH-WS79-ADD1', 'XSDD-42303437-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303437', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1572, '其它', '销售订单', 'XSDD-42303440-1PH-WS79-ADD1', 'XSDD-42303440-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303440', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1573, '其它', '销售订单', 'XSDD-42303443-1PH-WS79-ADD1', 'XSDD-42303443-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303443', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1574, '其它', '销售订单', 'XSDD-42303447-1PH-WS79-ADD1', 'XSDD-42303447-1PH-WS79-ADD1', '2026-07-30 00:00:00', '2026-07-30 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303447', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1575, '其它', '销售订单', 'XSDD-42303452-1PH-WS79-ADD1', 'XSDD-42303452-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303452', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1576, '其它', '销售订单', 'XSDD-42303456-1PH-WS79-ADD1', 'XSDD-42303456-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303456', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1577, '其它', '销售订单', 'XSDD-42303461-1PH-WS79-ADD1', 'XSDD-42303461-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303461', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1578, '其它', '销售订单', 'XSDD-42303465-1PH-WS79-ADD1', 'XSDD-42303465-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303465', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1579, '其它', '销售订单', 'XSDD-42303470-1PH-WS79-ADD1', 'XSDD-42303470-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303470', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1580, '其它', '销售订单', 'XSDD-42303475-1PH-WS79-ADD1', 'XSDD-42303475-1PH-WS79-ADD1', '2026-07-30 00:00:00', '2026-07-30 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303475', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1581, '其它', '销售订单', 'XSDD-42303480-1PH-WS79-ADD1', 'XSDD-42303480-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303480', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '3', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1582, '其它', '销售订单', 'XSDD-blom-tukar-po-date-1PH-WS79-ADD1', 'XSDD-blom-tukar-po-date-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:blom tukar po date', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1583, '其它', '销售订单', 'XSDD-42303506-1PH-WS79-ADD1', 'XSDD-42303506-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 161700.000000, '记账', '销售订单', 'Stock Status客户PO:42303506', '', '', '', '', 100.000000, 0.000000, 161700.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1584, '其它', '销售订单', 'XSDD-42303486-1PH-WS79-ADD1', 'XSDD-42303486-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303486', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1585, '其它', '销售订单', 'XSDD-42303491-1PH-WS79-ADD1', 'XSDD-42303491-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303491', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1586, '其它', '销售订单', 'XSDD-42303496-1PH-WS79-ADD1', 'XSDD-42303496-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303496', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1587, '其它', '销售订单', 'XSDD-42303500-1PH-WS79-ADD1', 'XSDD-42303500-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303500', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1588, '其它', '销售订单', 'XSDD-42303511-1PH-WS79-ADD1', 'XSDD-42303511-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303511', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1589, '其它', '销售订单', 'XSDD-42303516-1PH-WS79-ADD1', 'XSDD-42303516-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303516', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1590, '其它', '销售订单', 'XSDD-42303521-1PH-WS79-ADD1', 'XSDD-42303521-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303521', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1591, '其它', '销售订单', 'XSDD-42303525-1PH-WS79-ADD1', 'XSDD-42303525-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303525', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1592, '其它', '销售订单', 'XSDD-42303530-1PH-WS79-ADD1', 'XSDD-42303530-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303530', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1593, '其它', '销售订单', 'XSDD-42303535-1PH-WS79-ADD1', 'XSDD-42303535-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303535', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1594, '其它', '销售订单', 'XSDD-42303539-1PH-WS79-ADD1', 'XSDD-42303539-1PH-WS79-ADD1', '2026-06-18 00:00:00', '2026-06-18 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303539', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1595, '其它', '销售订单', 'XSDD-42303544-1PH-WS79-ADD1', 'XSDD-42303544-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 323400.000000, '记账', '销售订单', 'Stock Status客户PO:42303544', '', '', '', '', 100.000000, 0.000000, 323400.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1596, '其它', '销售订单', 'XSDD-42303549-1PH-WS79-ADD1', 'XSDD-42303549-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303549', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1597, '其它', '销售订单', 'XSDD-42303554-1PH-WS79-ADD1', 'XSDD-42303554-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303554', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1598, '其它', '销售订单', 'XSDD-42303557-1PH-WS79-ADD1', 'XSDD-42303557-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303557', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1599, '其它', '销售订单', 'XSDD-42303561-1PH-WS79-ADD1', 'XSDD-42303561-1PH-WS79-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 242550.000000, '记账', '销售订单', 'Stock Status客户PO:42303561', '', '', '', '', 100.000000, 0.000000, 242550.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1600, '其它', '销售订单', 'XSDD-42303565-1PH-WS79-ADD1', 'XSDD-42303565-1PH-WS79-ADD1', '2026-06-25 00:00:00', '2026-06-25 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 194040.000000, '记账', '销售订单', 'Stock Status客户PO:42303565', '', '', '', '', 100.000000, 0.000000, 194040.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '1', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1601, '入库', '采购', 'CGRK-260414-01-11', 'CGRK-260414-01-11', '2026-04-29 00:00:00', '2026-04-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 642600.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260414-01', '', '', '', '', 100.000000, 0.000000, 642600.000000, 0.000000, 0.000000, 0.000000, 642600.000000, 405653.360000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1602, '出库', '销售', 'XSCK-INV_2111-11', 'XSCK-INV_2111-11', '2026-06-26 00:00:00', '2026-06-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2111', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42303412-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1603, '出库', '销售', 'XSCK-1PH-WS79-ADD1-12', 'XSCK-1PH-WS79-ADD1-12', '2026-06-26 00:00:00', '2026-06-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303412-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1604, '出库', '销售', 'XSCK-1PH-WS79-ADD1-13', 'XSCK-1PH-WS79-ADD1-13', '2026-06-26 00:00:00', '2026-06-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303412-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1605, '出库', '销售', 'XSCK-INV_2112-14', 'XSCK-INV_2112-14', '2026-06-26 00:00:00', '2026-06-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2112', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303412-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1606, '出库', '销售', 'XSCK-INV_2113-15', 'XSCK-INV_2113-15', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2113', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42303416-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1607, '出库', '销售', 'XSCK-1PH-WS79-ADD1-16', 'XSCK-1PH-WS79-ADD1-16', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303416-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1608, '出库', '销售', 'XSCK-INV_2114-17', 'XSCK-INV_2114-17', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2114', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303416-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1609, '出库', '销售', 'XSCK-INV_2115-18', 'XSCK-INV_2115-18', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2115', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303420-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1610, '出库', '销售', 'XSCK-1PH-WS79-ADD1-19', 'XSCK-1PH-WS79-ADD1-19', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303420-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1611, '出库', '销售', 'XSCK-INV_2116-20', 'XSCK-INV_2116-20', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2116', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303420-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1612, '出库', '销售', 'XSCK-INV_2117-21', 'XSCK-INV_2117-21', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 64680.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2117', '', '', '', '', 100.000000, 0.000000, 64680.000000, 0.000000, 0.000000, 0.000000, 64680.000000, 64680.000000, '1', NULL, '0', 'XSDD-42303425-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1613, '入库', '采购', 'CGRK-260415-03-22', 'CGRK-260415-03-22', '2026-05-11 00:00:00', '2026-05-11 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 321300.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260415-03', '', '', '', '', 100.000000, 0.000000, 321300.000000, 0.000000, 0.000000, 0.000000, 321300.000000, 321300.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1614, '出库', '销售', 'XSCK-1PH-WS79-ADD1-22', 'XSCK-1PH-WS79-ADD1-22', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 16170.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 16170.000000, 0.000000, 0.000000, 0.000000, 16170.000000, 16170.000000, '1', NULL, '0', 'XSDD-42303425-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1615, '出库', '销售', 'XSCK-1PH-WS79-ADD1-23', 'XSCK-1PH-WS79-ADD1-23', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303425-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1616, '出库', '销售', 'XSCK-1PH-WS79-ADD1-24', 'XSCK-1PH-WS79-ADD1-24', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303425-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1617, '出库', '销售', 'XSCK-INV_2118-25', 'XSCK-INV_2118-25', '2026-06-28 00:00:00', '2026-06-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2118', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303425-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1618, '出库', '销售', 'XSCK-INV_2122-26', 'XSCK-INV_2122-26', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2122', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42303429-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1619, '出库', '销售', 'XSCK-1PH-WS79-ADD1-27', 'XSCK-1PH-WS79-ADD1-27', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303429-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1620, '出库', '销售', 'XSCK-INV_2123-28', 'XSCK-INV_2123-28', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 16170.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2123', '', '', '', '', 100.000000, 0.000000, 16170.000000, 0.000000, 0.000000, 0.000000, 16170.000000, 16170.000000, '1', NULL, '0', 'XSDD-42303429-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1621, '入库', '采购', 'CGRK-260417-01-29', 'CGRK-260417-01-29', '2026-05-09 00:00:00', '2026-05-09 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 706860.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260417-01', '', '', '', '', 100.000000, 0.000000, 706860.000000, 0.000000, 0.000000, 0.000000, 706860.000000, 706860.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1622, '出库', '销售', 'XSCK-1PH-WS79-ADD1-29', 'XSCK-1PH-WS79-ADD1-29', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 64680.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 64680.000000, 0.000000, 0.000000, 0.000000, 64680.000000, 64680.000000, '1', NULL, '0', 'XSDD-42303429-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1623, '出库', '销售', 'XSCK-1PH-WS79-ADD1-30', 'XSCK-1PH-WS79-ADD1-30', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303429-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1624, '出库', '销售', 'XSCK-INV_2124-31', 'XSCK-INV_2124-31', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2124', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303433-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1625, '出库', '销售', 'XSCK-1PH-WS79-ADD1-32', 'XSCK-1PH-WS79-ADD1-32', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303433-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1626, '出库', '销售', 'XSCK-1PH-WS79-ADD1-33', 'XSCK-1PH-WS79-ADD1-33', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303433-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1627, '出库', '销售', 'XSCK-INV_2125-34', 'XSCK-INV_2125-34', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2125', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303437-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1628, '出库', '销售', 'XSCK-1PH-WS79-ADD1-35', 'XSCK-1PH-WS79-ADD1-35', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303437-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1629, '出库', '销售', 'XSCK-1PH-WS79-ADD1-36', 'XSCK-1PH-WS79-ADD1-36', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303437-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1630, '出库', '销售', 'XSCK-INV_2126-37', 'XSCK-INV_2126-37', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2126', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303440-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1631, '出库', '销售', 'XSCK-1PH-WS79-ADD1-38', 'XSCK-1PH-WS79-ADD1-38', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303440-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1632, '出库', '销售', 'XSCK-1PH-WS79-ADD1-39', 'XSCK-1PH-WS79-ADD1-39', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303440-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1633, '出库', '销售', 'XSCK-INV_2127-40', 'XSCK-INV_2127-40', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2127', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303443-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1634, '出库', '销售', 'XSCK-1PH-WS79-ADD1-41', 'XSCK-1PH-WS79-ADD1-41', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 6468.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 6468.000000, 0.000000, 0.000000, 0.000000, 6468.000000, 6468.000000, '1', NULL, '0', 'XSDD-42303443-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1635, '入库', '采购', 'CGRK-260422-01-42', 'CGRK-260422-01-42', '2026-05-08 00:00:00', '2026-05-08 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 771120.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260422-01', '', '', '', '', 100.000000, 0.000000, 771120.000000, 0.000000, 0.000000, 0.000000, 771120.000000, 771120.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1636, '出库', '销售', 'XSCK-1PH-WS79-ADD1-42', 'XSCK-1PH-WS79-ADD1-42', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 74382.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 74382.000000, 0.000000, 0.000000, 0.000000, 74382.000000, 74382.000000, '1', NULL, '0', 'XSDD-42303443-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1637, '出库', '销售', 'XSCK-1PH-WS79-ADD1-43', 'XSCK-1PH-WS79-ADD1-43', '2026-07-01 00:00:00', '2026-07-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303443-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1638, '出库', '销售', 'XSCK-INV_2130-44', 'XSCK-INV_2130-44', '2026-07-09 00:00:00', '2026-07-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2130', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42303447-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1639, '出库', '销售', 'XSCK-1PH-WS79-ADD1-45', 'XSCK-1PH-WS79-ADD1-45', '2026-07-09 00:00:00', '2026-07-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303447-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1640, '出库', '销售', 'XSCK-1PH-WS79-ADD1-46', 'XSCK-1PH-WS79-ADD1-46', '2026-07-09 00:00:00', '2026-07-09 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303447-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1641, '出库', '销售', 'XSCK-INV_2131-47', 'XSCK-INV_2131-47', '2026-07-13 00:00:00', '2026-07-13 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2131', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42303447-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1642, '出库', '销售', 'XSCK-INV_2132-48', 'XSCK-INV_2132-48', '2026-07-14 00:00:00', '2026-07-14 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2132', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303452-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1643, '出库', '销售', 'XSCK-INV_2138-49', 'XSCK-INV_2138-49', '2026-07-23 00:00:00', '2026-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2138', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303452-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1644, '出库', '销售', 'XSCK-INV_2139-50', 'XSCK-INV_2139-50', '2026-07-22 00:00:00', '2026-07-22 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2139', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303452-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1645, '出库', '销售', 'XSCK-1PH-WS79-ADD1-51', 'XSCK-1PH-WS79-ADD1-51', '2026-07-22 00:00:00', '2026-07-22 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303452-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1646, '出库', '销售', 'XSCK-do_2143-52', 'XSCK-do_2143-52', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:do_2143', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303456-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1647, '出库', '销售', 'XSCK-do_2144-53', 'XSCK-do_2144-53', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:do_2144', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303456-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1648, '出库', '销售', 'XSCK-1PH-WS79-ADD1-54', 'XSCK-1PH-WS79-ADD1-54', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303456-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1649, '出库', '销售', 'XSCK-do_2145-55', 'XSCK-do_2145-55', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 3234.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:do_2145', '', '', '', '', 100.000000, 0.000000, 3234.000000, 0.000000, 0.000000, 0.000000, 3234.000000, 3234.000000, '1', NULL, '0', 'XSDD-42303461-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1650, '入库', '采购', 'CGRK-260423-02-56', 'CGRK-260423-02-56', '2026-05-13 00:00:00', '2026-05-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 533120.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260423-02', '', '', '', '', 100.000000, 0.000000, 533120.000000, 0.000000, 0.000000, 0.000000, 533120.000000, 533120.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1651, '出库', '销售', 'XSCK-1PH-WS79-ADD1-56', 'XSCK-1PH-WS79-ADD1-56', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 77616.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 77616.000000, 0.000000, 0.000000, 0.000000, 77616.000000, 77616.000000, '1', NULL, '0', 'XSDD-42303461-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1652, '出库', '销售', 'XSCK-do_2146-57', 'XSCK-do_2146-57', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:do_2146', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303461-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1653, '出库', '销售', 'XSCK-1PH-WS79-ADD1-58', 'XSCK-1PH-WS79-ADD1-58', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303461-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1654, '出库', '销售', 'XSCK-do_2147-59', 'XSCK-do_2147-59', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:do_2147', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303465-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1655, '出库', '销售', 'XSCK-do_2148-60', 'XSCK-do_2148-60', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:do_2148', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303465-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1656, '出库', '销售', 'XSCK-1PH-WS79-ADD1-61', 'XSCK-1PH-WS79-ADD1-61', '2026-07-27 00:00:00', '2026-07-27 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303465-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1657, '出库', '销售', 'XSCK-INV_2140-62', 'XSCK-INV_2140-62', '2026-07-23 00:00:00', '2026-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2140', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303470-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1658, '出库', '销售', 'XSCK-INV_2141-63', 'XSCK-INV_2141-63', '2026-07-23 00:00:00', '2026-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2141', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303470-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1659, '出库', '销售', 'XSCK-1PH-WS79-ADD1-64', 'XSCK-1PH-WS79-ADD1-64', '2026-07-23 00:00:00', '2026-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303470-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1660, '出库', '销售', 'XSCK-INV_2133-65', 'XSCK-INV_2133-65', '2026-07-16 00:00:00', '2026-07-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2133', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 0.000000, '1', NULL, '0', 'XSDD-42303475-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1661, '入库', '采购', 'CGRK-260427-01-66', 'CGRK-260427-01-66', '2026-05-14 00:00:00', '2026-05-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 706860.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260427-01', '', '', '', '', 100.000000, 0.000000, 706860.000000, 0.000000, 0.000000, 0.000000, 706860.000000, 706860.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1662, '出库', '销售', 'XSCK-INV_2134-66', 'XSCK-INV_2134-66', '2026-07-16 00:00:00', '2026-07-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303475-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1663, '出库', '销售', 'XSCK-1PH-WS79-ADD1-67', 'XSCK-1PH-WS79-ADD1-67', '2026-07-16 00:00:00', '2026-07-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303475-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1664, '出库', '销售', 'XSCK-INV_2142-68', 'XSCK-INV_2142-68', '2026-07-23 00:00:00', '2026-07-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303480-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1665, '出库', '销售', 'XSCK-INV_2150-69', 'XSCK-INV_2150-69', '2026-07-29 00:00:00', '2026-07-29 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303480-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1666, '入库', '采购', 'CGRK-260429-01-78', 'CGRK-260429-01-78', '2026-05-12 00:00:00', '2026-05-12 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 706860.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260429-01', '', '', '', '', 100.000000, 0.000000, 706860.000000, 0.000000, 0.000000, 0.000000, 706860.000000, 706860.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1667, '出库', '销售', 'XSCK-DO_2157-83', 'XSCK-DO_2157-83', '2026-08-05 00:00:00', '2026-08-05 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-blom-tukar-po-date-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1668, '出库', '销售', 'XSCK-1PH-WS79-ADD1-84', 'XSCK-1PH-WS79-ADD1-84', '2026-08-05 00:00:00', '2026-08-05 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-blom-tukar-po-date-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1669, '出库', '销售', 'XSCK-DO_2158-85', 'XSCK-DO_2158-85', '2026-08-05 00:00:00', '2026-08-05 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-blom-tukar-po-date-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1670, '出库', '销售', 'XSCK-INV_2159-86', 'XSCK-INV_2159-86', '2026-08-10 00:00:00', '2026-08-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303506-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1671, '出库', '销售', 'XSCK-1PH-WS79-ADD1-87', 'XSCK-1PH-WS79-ADD1-87', '2026-08-10 00:00:00', '2026-08-10 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 80850.000000, '记账', '销售', 'Stock Status:1PH WS79-112,400 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 80850.000000, 0.000000, 0.000000, 0.000000, 80850.000000, 80850.000000, '1', NULL, '0', 'XSDD-42303506-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1672, '入库', '采购', 'CGRK-260509-01-90', 'CGRK-260509-01-90', '2026-05-26 00:00:00', '2026-05-26 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 706860.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260509-01', '', '', '', '', 100.000000, 0.000000, 706860.000000, 0.000000, 0.000000, 0.000000, 706860.000000, 706860.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1673, '入库', '采购', 'CGRK-260515-01-102', 'CGRK-260515-01-102', '2026-06-10 00:00:00', '2026-06-10 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 321300.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260515-01', '', '', '', '', 100.000000, 0.000000, 321300.000000, 0.000000, 0.000000, 0.000000, 321300.000000, 321300.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1674, '入库', '采购', 'CGRK-260518-02-107', 'CGRK-260518-02-107', '2026-06-06 00:00:00', '2026-06-06 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 500990.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260518-02', '', '', '', '', 100.000000, 0.000000, 500990.000000, 0.000000, 0.000000, 0.000000, 500990.000000, 500990.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1675, '入库', '采购', 'CGRK-260518-01-116', 'CGRK-260518-01-116', '2026-06-08 00:00:00', '2026-06-08 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 769930.000000, '记账', '采购', 'Stock Status:1PH WS79-112,400 (+1);供应商发票:260518-01', '', '', '', '', 100.000000, 0.000000, 769930.000000, 0.000000, 0.000000, 0.000000, 769930.000000, 769930.000000, '1', NULL, '0', 'CGDD-PO_0486-1PH-WS79-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1676, '其它', '采购订单', 'CGDD-TNB296-2025-1-3PH-APEC3-WC-ADD1', 'CGDD-TNB296-2025-1-3PH-APEC3-WC-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 5778500.000000, '记账', '采购订单', 'Stock Status:3PH APEC3 WC-18200 (+1);原采购单:TNB296/2025 (+1)', '', '', '', '', 100.000000, 0.000000, 5778500.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '3', '3', '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1677, '其它', '销售订单', 'XSDD-42303676-3PH-APEC3-WC-ADD1', 'XSDD-42303676-3PH-APEC3-WC-ADD1', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42303676', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1678, '入库', '采购', 'CGRK-260518-03-11', 'CGRK-260518-03-11', '2026-06-06 00:00:00', '2026-06-06 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 320040.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200 (+1);供应商发票:260518-03', '', '', '', '', 100.000000, 0.000000, 320040.000000, 0.000000, 0.000000, 0.000000, 320040.000000, 320040.000000, '1', NULL, '0', 'CGDD-TNB296-2025-1-3PH-APEC3-WC-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1679, '出库', '销售', 'XSCK-INV_2129-11', 'XSCK-INV_2129-11', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200 (+1);客户发票:INV_2129', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 0.000000, '1', NULL, '0', 'XSDD-42303676-3PH-APEC3-WC-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1680, '出库', '销售', 'XSCK-3PH-APEC3-WC-ADD1-12', 'XSCK-3PH-APEC3-WC-ADD1-12', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 2992.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 2992.000000, 0.000000, 0.000000, 0.000000, 2992.000000, 2992.000000, '1', NULL, '0', 'XSDD-42303676-3PH-APEC3-WC-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1681, '入库', '采购', 'CGRK-260520-01-13', 'CGRK-260520-01-13', '2026-06-12 00:00:00', '2026-06-12 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1066800.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200 (+1);供应商发票:260520-01', '', '', '', '', 100.000000, 0.000000, 1066800.000000, 0.000000, 0.000000, 0.000000, 1066800.000000, 1066800.000000, '1', NULL, '0', 'CGDD-TNB296-2025-1-3PH-APEC3-WC-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1682, '出库', '销售', 'XSCK-3PH-APEC3-WC-ADD1-13', 'XSCK-3PH-APEC3-WC-ADD1-13', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 371008.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 371008.000000, 0.000000, 0.000000, 0.000000, 371008.000000, 371008.000000, '1', NULL, '0', 'XSDD-42303676-3PH-APEC3-WC-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1683, '出库', '销售', 'XSCK-3PH-APEC3-WC-ADD1-14', 'XSCK-3PH-APEC3-WC-ADD1-14', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC-18200 (+1);客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42303676-3PH-APEC3-WC-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1684, '入库', '采购', 'CGRK-260529-01-17', 'CGRK-260529-01-17', '2026-06-18 00:00:00', '2026-06-18 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1066800.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200 (+1);供应商发票:260529-01', '', '', '', '', 100.000000, 0.000000, 1066800.000000, 0.000000, 0.000000, 0.000000, 1066800.000000, 1066800.000000, '1', NULL, '0', 'CGDD-TNB296-2025-1-3PH-APEC3-WC-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1685, '入库', '采购', 'CGRK-260606-01-21', 'CGRK-260606-01-21', '2026-06-27 00:00:00', '2026-06-27 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 839470.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC-18200 (+1);供应商发票:260606-01', '', '', '', '', 100.000000, 0.000000, 839470.000000, 0.000000, 0.000000, 0.000000, 839470.000000, 839470.000000, '1', NULL, '0', 'CGDD-TNB296-2025-1-3PH-APEC3-WC-ADD1', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1686, '其它', '采购订单', 'CGDD-TNB-296-2025_OV-3PH-APEC3-WC-OV', 'CGDD-TNB-296-2025_OV-3PH-APEC3-WC-OV', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 4047807.500000, '记账', '采购订单', 'Stock Status:3PH APEC3 WC(OV)-12,749;原采购单:TNB 296/2025_OV', '', '', '', '', 100.000000, 0.000000, 4047807.500000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', '2', '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1687, '其它', '销售订单', 'XSDD-42260524-3PH-APEC3-WC-OV', 'XSDD-42260524-3PH-APEC3-WC-OV', '2026-05-28 00:00:00', '2026-05-28 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42260524', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1688, '其它', '销售订单', 'XSDD-42260525-3PH-APEC3-WC-OV', 'XSDD-42260525-3PH-APEC3-WC-OV', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42260525', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1689, '其它', '销售订单', 'XSDD-42260527-3PH-APEC3-WC-OV', 'XSDD-42260527-3PH-APEC3-WC-OV', '2026-06-25 00:00:00', '2026-06-25 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1402126.000000, '记账', '销售订单', 'Stock Status客户PO:42260527', '', '', '', '', 100.000000, 0.000000, 1402126.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1690, '其它', '销售订单', 'XSDD-42260529-3PH-APEC3-WC-OV', 'XSDD-42260529-3PH-APEC3-WC-OV', '2026-01-01 00:00:00', '2026-01-01 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 1122000.000000, '记账', '销售订单', 'Stock Status客户PO:42260529', '', '', '', '', 100.000000, 0.000000, 1122000.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, '2', NULL, '0', NULL, '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1691, '入库', '采购', 'CGRK-260415-01-11', 'CGRK-260415-01-11', '2026-04-29 00:00:00', '2026-04-29 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1066800.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC(OV)-12,749;供应商发票:260415-01', '', '', '', '', 100.000000, 0.000000, 1066800.000000, 0.000000, 0.000000, 0.000000, 1066800.000000, 111939.941600, '1', NULL, '0', 'CGDD-TNB-296-2025_OV-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1692, '出库', '销售', 'XSCK-INV_2102-11', 'XSCK-INV_2102-11', '2026-05-26 00:00:00', '2026-05-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:INV_2102', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 0.000000, '1', NULL, '0', 'XSDD-42260524-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1693, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-12', 'XSCK-3PH-APEC3-WC-OV-12', '2026-05-26 00:00:00', '2026-05-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42260524-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1694, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-13', 'XSCK-3PH-APEC3-WC-OV-13', '2026-05-26 00:00:00', '2026-05-26 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42260524-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1695, '出库', '销售', 'XSCK-INV_2107-14', 'XSCK-INV_2107-14', '2026-06-06 00:00:00', '2026-06-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 134640.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:INV_2107', '', '', '', '', 100.000000, 0.000000, 134640.000000, 0.000000, 0.000000, 0.000000, 134640.000000, 0.000000, '1', NULL, '0', 'XSDD-42260525-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1696, '入库', '采购', 'CGRK-260423-01-15', 'CGRK-260423-01-15', '2026-05-08 00:00:00', '2026-05-08 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1066800.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC(OV)-12,749;供应商发票:260423-01', '', '', '', '', 100.000000, 0.000000, 1066800.000000, 0.000000, 0.000000, 0.000000, 1066800.000000, 1066800.000000, '1', NULL, '0', 'CGDD-TNB-296-2025_OV-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1697, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-15', 'XSCK-3PH-APEC3-WC-OV-15', '2026-06-06 00:00:00', '2026-06-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 239360.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 239360.000000, 0.000000, 0.000000, 0.000000, 239360.000000, 239360.000000, '1', NULL, '0', 'XSDD-42260525-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1698, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-16', 'XSCK-3PH-APEC3-WC-OV-16', '2026-06-06 00:00:00', '2026-06-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42260525-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1699, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-17', 'XSCK-3PH-APEC3-WC-OV-17', '2026-06-06 00:00:00', '2026-06-06 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42260525-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1700, '出库', '销售', 'XSCK-INV_2108-18', 'XSCK-INV_2108-18', '2026-06-16 00:00:00', '2026-06-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 269280.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:INV_2108', '', '', '', '', 100.000000, 0.000000, 269280.000000, 0.000000, 0.000000, 0.000000, 269280.000000, 0.000000, '1', NULL, '0', 'XSDD-42260527-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1701, '入库', '采购', 'CGRK-260415-02-19', 'CGRK-260415-02-19', '2026-05-11 00:00:00', '2026-05-11 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 640080.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC(OV)-12,749;供应商发票:260415-02', '', '', '', '', 100.000000, 0.000000, 640080.000000, 0.000000, 0.000000, 0.000000, 640080.000000, 640080.000000, '1', NULL, '0', 'CGDD-TNB-296-2025_OV-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1702, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-19', 'XSCK-3PH-APEC3-WC-OV-19', '2026-06-16 00:00:00', '2026-06-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 104720.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 104720.000000, 0.000000, 0.000000, 0.000000, 104720.000000, 104720.000000, '1', NULL, '0', 'XSDD-42260527-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1703, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-20', 'XSCK-3PH-APEC3-WC-OV-20', '2026-06-16 00:00:00', '2026-06-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42260527-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1704, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-21', 'XSCK-3PH-APEC3-WC-OV-21', '2026-06-16 00:00:00', '2026-06-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 275264.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 275264.000000, 0.000000, 0.000000, 0.000000, 275264.000000, 275264.000000, '1', NULL, '0', 'XSDD-42260527-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1705, '入库', '采购', 'CGRK-260423-02-22', 'CGRK-260423-02-22', '2026-05-13 00:00:00', '2026-05-13 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 160020.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC(OV)-12,749;供应商发票:260423-02', '', '', '', '', 100.000000, 0.000000, 160020.000000, 0.000000, 0.000000, 0.000000, 160020.000000, 160020.000000, '1', NULL, '0', 'CGDD-TNB-296-2025_OV-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1706, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-22', 'XSCK-3PH-APEC3-WC-OV-22', '2026-06-16 00:00:00', '2026-06-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 98736.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 98736.000000, 0.000000, 0.000000, 0.000000, 98736.000000, 98736.000000, '1', NULL, '0', 'XSDD-42260527-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1707, '出库', '销售', 'XSCK-INV_2109-23', 'XSCK-INV_2109-23', '2026-06-16 00:00:00', '2026-06-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 89760.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:INV_2109', '', '', '', '', 100.000000, 0.000000, 89760.000000, 0.000000, 0.000000, 0.000000, 89760.000000, 89760.000000, '1', NULL, '0', 'XSDD-42260527-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1708, '入库', '采购', 'CGRK-3PH-APEC3-WC-OV-24', 'CGRK-3PH-APEC3-WC-OV-24', '2026-01-25 00:00:00', '2026-01-25 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 1066800.000000, '记账', '采购', 'Stock Status:3PH APEC3 WC(OV)-12,749;供应商发票:未填写', '', '', '', '', 100.000000, 0.000000, 1066800.000000, 0.000000, 0.000000, 0.000000, 1066800.000000, 1066800.000000, '1', NULL, '0', 'CGDD-TNB-296-2025_OV-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1709, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-24', 'XSCK-3PH-APEC3-WC-OV-24', '2026-06-16 00:00:00', '2026-06-16 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 190366.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 190366.000000, 0.000000, 0.000000, 0.000000, 190366.000000, 190366.000000, '1', NULL, '0', 'XSDD-42260527-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1710, '出库', '销售', 'XSCK-INV_2110-25', 'XSCK-INV_2110-25', '2026-06-23 00:00:00', '2026-06-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:INV_2110', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 0.000000, '1', NULL, '0', 'XSDD-42260529-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1711, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-26', 'XSCK-3PH-APEC3-WC-OV-26', '2026-06-23 00:00:00', '2026-06-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 374000.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 374000.000000, 0.000000, 0.000000, 0.000000, 374000.000000, 374000.000000, '1', NULL, '0', 'XSDD-42260529-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1712, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-27', 'XSCK-3PH-APEC3-WC-OV-27', '2026-06-23 00:00:00', '2026-06-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 318274.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 318274.000000, 0.000000, 0.000000, 0.000000, 318274.000000, 318274.000000, '1', NULL, '0', 'XSDD-42260529-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1713, '入库', '采购', 'CGRK-260427-02-28', 'CGRK-260427-02-28', '2026-05-14 00:00:00', '2026-05-14 00:00:00', 89, 63, NULL, 0.000000, 0.000000, 47307.500000, '记账', '采购', 'Stock Status:3PH APEC3 WC(OV)-12,749;供应商发票:260427-02', '', '', '', '', 100.000000, 0.000000, 47307.500000, 0.000000, 0.000000, 0.000000, 47307.500000, 47307.500000, '1', NULL, '0', 'CGDD-TNB-296-2025_OV-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1714, '出库', '销售', 'XSCK-3PH-APEC3-WC-OV-28', 'XSCK-3PH-APEC3-WC-OV-28', '2026-06-23 00:00:00', '2026-06-23 00:00:00', 90, 63, NULL, 0.000000, 0.000000, 55726.000000, '记账', '销售', 'Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写', '', '', '', '', 100.000000, 0.000000, 55726.000000, 0.000000, 0.000000, 0.000000, 55726.000000, 55726.000000, '1', NULL, '0', 'XSDD-42260529-3PH-APEC3-WC-OV', '', 63, '0'); +INSERT INTO `tbl_depot_head` VALUES (1715, '其它', '请购单', 'QGD00000001719', 'QGD00000001719', '2026-09-18 11:44:02', '2026-09-18 11:43:47', NULL, 63, NULL, NULL, NULL, NULL, '现付', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.000000, NULL, NULL, '2', '0', '0', NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1716, '其它', '采购订单', 'CGDD00000001720', 'CGDD00000001720', '2026-09-18 11:44:19', '2026-09-18 11:44:12', 89, 63, 17, 0.000000, NULL, -0.700000, '现付', NULL, NULL, '', NULL, '', '', 0.000000, 0.000000, 0.700000, NULL, NULL, 0.000000, NULL, NULL, '2', '0', '0', NULL, 'QGD00000001719', NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1717, '入库', '采购', 'CGRK00000001721', 'CGRK00000001721', '2026-09-18 11:44:36', '2026-09-18 11:44:34', 89, 63, 17, 0.000000, NULL, -0.700000, '现付', NULL, NULL, '', NULL, '', '', 0.000000, 0.000000, 0.700000, 0.000000, NULL, 0.000000, 0.700000, 0.700000, '1', '0', '0', 'CGDD00000001720', NULL, NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1718, '其它', '销售订单', 'XSDD00000001724', 'XSDD00000001724', '2026-09-18 14:10:36', '2026-09-18 14:01:46', 90, 63, 17, 0.000000, NULL, 340000000.000000, '现付', NULL, NULL, '', '', '', '', 0.000000, 0.000000, 340000000.000000, NULL, NULL, 0.000000, NULL, NULL, '0', '0', '0', NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1719, '其它', '销售订单', 'XSDD00000001726', 'XSDD00000001726', '2026-09-18 12:01:23', '2026-09-18 15:58:02', 90, 63, 17, 0.000000, NULL, 735000.000000, '现付', NULL, NULL, '', '', '', '', 0.000000, 0.000000, 808500.000000, NULL, NULL, 0.000000, NULL, NULL, '2', '0', '0', NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1720, '出库', '销售', 'XSCK00000001728', 'XSCK00000001728', '2026-09-18 12:03:04', '2026-09-18 16:03:01', 90, 63, 17, 0.000000, NULL, 735000.000000, '现付', NULL, NULL, '', '', '', '', 0.000000, 0.000000, 808500.000000, 0.000000, NULL, 0.000000, 808500.000000, 808500.000000, '1', '0', '0', 'XSDD00000001726', NULL, NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1721, '入库', '总部入库', 'SM2609180001', 'SM2609180001', '2026-09-18 12:06:42', '2026-09-18 16:06:03', 89, 63, NULL, 0.000000, NULL, -595000.000000, '现付', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 595000.000000, 0.000000, 0.000000, NULL, 595000.000000, 595000.000000, '1', '0', '0', NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1722, '其它', '请购单', 'QGD00000001738', 'QGD00000001738', '2026-09-18 12:28:04', '2026-09-18 16:27:47', NULL, 63, NULL, NULL, NULL, NULL, '现付', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.000000, NULL, NULL, '2', '0', '0', NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1723, '其它', '采购订单', 'CGDD00000001739', 'CGDD00000001739', '2026-09-18 12:28:33', '2026-09-18 16:28:25', 89, 63, 17, 0.000000, NULL, -100000.000000, '现付', NULL, NULL, '', NULL, '', '', 0.000000, 0.000000, 100000.000000, NULL, NULL, 0.000000, NULL, NULL, '2', '0', '0', NULL, 'QGD00000001738', NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1724, '入库', '采购', 'CGRK00000001740', 'CGRK00000001740', '2026-09-18 12:29:02', '2026-09-18 16:29:02', 89, 63, 17, 0.000000, NULL, -100000.000000, '现付', NULL, NULL, '', NULL, '', '', 0.000000, 0.000000, 100000.000000, 0.000000, NULL, 0.000000, 100000.000000, 100000.000000, '1', '0', '0', 'CGDD00000001739', NULL, NULL, '0'); +INSERT INTO `tbl_depot_head` VALUES (1725, '出库', '生产领料', NULL, 'LL20260924134027104', '2026-09-24 13:40:27', '2026-09-24 13:40:27', NULL, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', NULL, '0', NULL, NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_depot_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_depot_item`; +CREATE TABLE `tbl_depot_item` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `header_id` bigint NOT NULL COMMENT '表头Id', + `material_id` bigint NOT NULL COMMENT '商品Id', + `material_extend_id` bigint NULL DEFAULT NULL COMMENT '商品扩展id', + `material_unit` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '商品单位', + `sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多属性', + `oper_number` decimal(24, 6) NULL DEFAULT NULL COMMENT '数量', + `basic_number` decimal(24, 6) NULL DEFAULT NULL COMMENT '基础数量,如kg、瓶', + `unit_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '单价', + `purchase_unit_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '采购单价', + `tax_unit_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '含税单价', + `all_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '金额', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `depot_id` bigint NULL DEFAULT NULL COMMENT '仓库ID', + `another_depot_id` bigint NULL DEFAULT NULL COMMENT '调拨时,对方仓库Id', + `tax_rate` decimal(24, 6) NULL DEFAULT NULL COMMENT '税率', + `tax_money` decimal(24, 6) NULL DEFAULT NULL COMMENT '税额', + `tax_last_money` decimal(24, 6) NULL DEFAULT NULL COMMENT '价税合计', + `material_type` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '商品类型', + `sn_list` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '序列号列表', + `batch_number` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '批号', + `expiration_date` datetime(0) NULL DEFAULT NULL COMMENT '有效日期', + `link_id` bigint NULL DEFAULT NULL COMMENT '关联明细id', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `FK2A819F475D61CCF7`(`material_id`) USING BTREE, + INDEX `FK2A819F474BB6190E`(`header_id`) USING BTREE, + INDEX `FK2A819F479485B3F5`(`depot_id`) USING BTREE, + INDEX `FK2A819F47729F5392`(`another_depot_id`) USING BTREE, + INDEX `material_extend_id`(`material_extend_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1531 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '单据子表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_depot_item +-- ---------------------------- +INSERT INTO `tbl_depot_item` VALUES (1076, 1272, 698, 118, '件', NULL, 50.000000, 50.000000, 324.000000, 324.000000, 324.000000, 16200.000000, '来源单据:SH2503070002', 25, NULL, 13.000025, 0.000000, 16200.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1077, 1273, 693, 113, '件', NULL, 1990.000000, 1990.000000, 797.040000, 797.040000, 797.040000, 1586109.600000, '来源单据:SH2503210018', 25, NULL, 13.000000, 0.000000, 1586109.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1078, 1274, 699, 119, '件', NULL, 1990.000000, 1990.000000, 0.100000, 0.100000, 0.100000, 199.000000, '来源单据:SH2503260007', 25, NULL, 12.997558, 0.000000, 199.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1079, 1275, 692, 112, '件', NULL, 500.000000, 500.000000, 550.800000, 550.800000, 550.800000, 275400.000000, '来源单据:SH2503280020', 25, NULL, 0.000000, 0.000000, 275400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1080, 1276, 688, 108, '件', NULL, 400.000000, 400.000000, 613.980000, 613.980000, 613.980000, 245592.000000, '来源单据:SH2503280021', 25, NULL, 0.000000, 0.000000, 245592.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1081, 1277, 699, 119, '件', NULL, 8290.000000, 8290.000000, 0.100000, 0.100000, 0.100000, 829.000000, '来源单据:SH2504010002', 25, NULL, 0.000000, 0.000000, 829.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1082, 1278, 686, 106, '件', NULL, 8290.000000, 8290.000000, 403.380000, 403.380000, 403.380000, 3344020.200000, '来源单据:SH2503310004', 25, NULL, 0.000000, 0.000000, 3344020.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1083, 1279, 697, 117, '件', NULL, 500.000000, 500.000000, 129.600000, 129.600000, 129.600000, 64800.000000, '来源单据:SH2504010004', 25, NULL, 0.000000, 0.000000, 64800.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1084, 1280, 687, 107, '件', NULL, 3024.000000, 3024.000000, 481.950000, 481.950000, 481.950000, 1457416.800000, '来源单据:SH2505090009', 25, NULL, 0.000000, 0.000000, 1457416.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1085, 1281, 687, 107, '件', NULL, 336.000000, 336.000000, 481.950000, 481.950000, 481.950000, 161935.200000, '来源单据:SH2505140012', 25, NULL, 0.000000, 0.000000, 161935.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1086, 1282, 687, 107, '件', NULL, 1640.000000, 1640.000000, 481.950000, 481.950000, 481.950000, 790398.000000, '来源单据:SH2505140013', 25, NULL, 0.000000, 0.000000, 790398.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1087, 1283, 687, 107, '件', NULL, 504.000000, 504.000000, 481.950000, 481.950000, 481.950000, 242902.800000, '来源单据:SH2505220012', 25, NULL, 0.000000, 0.000000, 242902.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1088, 1284, 687, 107, '件', NULL, 3696.000000, 3696.000000, 481.950000, 481.950000, 481.950000, 1781287.200000, '来源单据:SH2505210003', 25, NULL, 0.000000, 0.000000, 1781287.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1089, 1285, 694, 114, '件', NULL, 170.000000, 170.000000, 334.692000, 334.692000, 334.692000, 56897.640000, '来源单据:SH2505230003', 25, NULL, 0.000000, 0.000000, 56897.640000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1090, 1286, 695, 115, '件', NULL, 100.000000, 100.000000, 1003.752000, 1003.752000, 1003.752000, 100375.200000, '来源单据:SH2505230002', 25, NULL, 0.000000, 0.000000, 100375.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1091, 1287, 687, 107, '件', NULL, 336.000000, 336.000000, 481.950000, 481.950000, 481.950000, 161935.200000, '来源单据:SH2505270016', 25, NULL, 0.000000, 0.000000, 161935.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1092, 1288, 687, 107, '件', NULL, 464.000000, 464.000000, 481.950000, 481.950000, 481.950000, 223624.800000, '来源单据:SH2505280004', 25, NULL, 0.000000, 0.000000, 223624.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1093, 1289, 687, 107, '件', NULL, 3464.000000, 3464.000000, 481.950000, 481.950000, 481.950000, 1669474.800000, '来源单据:SH2506120013', 25, NULL, 0.000000, 0.000000, 1669474.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1094, 1290, 702, 122, '件', NULL, 1000.000000, 1000.000000, 24.300000, 24.300000, 24.300000, 24300.000000, '来源单据:SH2506190019', 25, NULL, 0.000000, 0.000000, 24300.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1095, 1291, 687, 107, '件', NULL, 504.000000, 504.000000, 481.950000, 481.950000, 481.950000, 242902.800000, '来源单据:SH2506200018', 25, NULL, 0.000000, 0.000000, 242902.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1096, 1292, 694, 114, '件', NULL, 30.000000, 30.000000, 334.692000, 334.692000, 334.692000, 10040.760000, '来源单据:SH2506230010', 25, NULL, 0.000000, 0.000000, 10040.760000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1097, 1293, 687, 107, '件', NULL, 504.000000, 504.000000, 481.950000, 481.950000, 481.950000, 242902.800000, '来源单据:SH2506240005', 25, NULL, 0.000000, 0.000000, 242902.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1098, 1294, 687, 107, '件', NULL, 3360.000000, 3360.000000, 481.950000, 481.950000, 481.950000, 1619352.000000, '来源单据:SH2506240004', 25, NULL, 0.000000, 0.000000, 1619352.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1099, 1295, 687, 107, '件', NULL, 5.000000, 5.000000, 481.950000, 481.950000, 481.950000, 2409.750000, '来源单据:SH2507010002', 25, NULL, 0.000000, 0.000000, 2409.750000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1100, 1296, 687, 107, '件', NULL, 363.000000, 363.000000, 481.950000, 481.950000, 481.950000, 174947.850000, '来源单据:SH2507010002', 25, NULL, 0.000000, 0.000000, 174947.850000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1101, 1297, 700, 120, '件', NULL, 50.000000, 50.000000, 132.840000, 132.840000, 132.840000, 6642.000000, '来源单据:SH2507160005', 25, NULL, 0.000000, 0.000000, 6642.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1102, 1298, 693, 113, '件', NULL, 4620.000000, 4620.000000, 797.040000, 797.040000, 797.040000, 3682324.800000, '来源单据:SH2508130002', 25, NULL, 0.000000, 0.000000, 3682324.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1103, 1299, 699, 119, '件', NULL, 4620.000000, 4620.000000, 0.100000, 0.100000, 0.100000, 462.000000, '来源单据:SH2508130003', 25, NULL, 0.000000, 0.000000, 462.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1104, 1300, 699, 119, '件', NULL, 5270.000000, 5270.000000, 0.100000, 0.100000, 0.100000, 527.000000, '来源单据:SH2508140009', 25, NULL, 0.000000, 0.000000, 527.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1105, 1301, 693, 113, '件', NULL, 5270.000000, 5270.000000, 797.040000, 797.040000, 797.040000, 4200400.800000, '来源单据:SH2508140008', 25, NULL, 0.000000, 0.000000, 4200400.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1106, 1302, 693, 113, '件', NULL, 110.000000, 110.000000, 797.040000, 797.040000, 797.040000, 87674.400000, '来源单据:SH2508200016', 25, NULL, 0.000000, 0.000000, 87674.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1107, 1303, 690, 110, '件', NULL, 2100.000000, 2100.000000, 518.400000, 518.400000, 518.400000, 1088640.000000, '来源单据:SH2508200015', 25, NULL, 0.000000, 0.000000, 1088640.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1108, 1304, 699, 119, '件', NULL, 110.000000, 110.000000, 0.100000, 0.100000, 0.100000, 11.000000, '来源单据:SH2508200018', 25, NULL, 0.000000, 0.000000, 11.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1109, 1305, 690, 110, '件', NULL, 2900.000000, 2900.000000, 518.400000, 518.400000, 518.400000, 1503360.000000, '来源单据:SH2509050002', 25, NULL, 0.000000, 0.000000, 1503360.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1110, 1306, 699, 119, '件', NULL, 10000.000000, 10000.000000, 0.100000, 0.100000, 0.100000, 1000.000000, '来源单据:SH2509250002', 25, NULL, 0.000000, 0.000000, 1000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1111, 1307, 686, 106, '件', NULL, 10000.000000, 10000.000000, 403.380000, 403.380000, 403.380000, 4033800.000000, '来源单据:SH2509250001', 25, NULL, 0.000000, 0.000000, 4033800.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1112, 1308, 701, 121, '件', NULL, 100.000000, 100.000000, 142.560000, 142.560000, 142.560000, 14256.000000, '来源单据:SH2510170019', 25, NULL, 0.000000, 0.000000, 14256.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1113, 1309, 689, 109, '件', NULL, 120.000000, 120.000000, 690.120000, 690.120000, 690.120000, 82814.400000, '来源单据:SH2510170020', 25, NULL, 0.000000, 0.000000, 82814.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1114, 1310, 686, 106, '件', NULL, 516.000000, 516.000000, 403.380000, 403.380000, 403.380000, 208144.080000, '来源单据:SH2510290008', 25, NULL, 0.000000, 0.000000, 208144.080000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1115, 1311, 686, 106, '件', NULL, 9484.000000, 9484.000000, 403.380000, 403.380000, 403.380000, 3825655.920000, '来源单据:SH2510290008', 25, NULL, 0.000000, 0.000000, 3825655.920000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1116, 1312, 699, 119, '件', NULL, 9990.000000, 9990.000000, 0.100000, 0.100000, 0.100000, 999.000000, '来源单据:SH2510290009', 25, NULL, 0.000000, 0.000000, 999.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1117, 1313, 699, 119, '件', NULL, 10.000000, 10.000000, 0.100000, 0.100000, 0.100000, 1.000000, '来源单据:SH2510290009', 25, NULL, 0.000000, 0.000000, 1.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1118, 1314, 690, 110, '件', NULL, 2970.000000, 2970.000000, 518.400000, 518.400000, 518.400000, 1539648.000000, '来源单据:SH2511140012', 25, NULL, 0.000000, 0.000000, 1539648.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1119, 1315, 686, 106, '件', NULL, 4200.000000, 4200.000000, 403.380000, 403.380000, 403.380000, 1694196.000000, '来源单据:SH2511210018', 25, NULL, 0.000000, 0.000000, 1694196.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1120, 1316, 699, 119, '件', NULL, 4200.000000, 4200.000000, 0.100000, 0.100000, 0.100000, 420.000000, '来源单据:SH2511210019', 25, NULL, 0.000000, 0.000000, 420.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1121, 1317, 693, 113, '件', NULL, 5040.000000, 5040.000000, 797.040000, 797.040000, 797.040000, 4017081.600000, '来源单据:SH2511240013', 25, NULL, 0.000000, 0.000000, 4017081.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1122, 1318, 699, 119, '件', NULL, 5040.000000, 5040.000000, 0.100000, 0.100000, 0.100000, 504.000000, '来源单据:SH2511240014', 25, NULL, 0.000000, 0.000000, 504.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1123, 1319, 690, 110, '件', NULL, 30.000000, 30.000000, 518.400000, 518.400000, 518.400000, 15552.000000, '来源单据:SH2511250009', 25, NULL, 0.000000, 0.000000, 15552.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1124, 1320, 693, 113, '件', NULL, 4960.000000, 4960.000000, 797.040000, 797.040000, 797.040000, 3953318.400000, '来源单据:SH2511280023', 25, NULL, 0.000000, 0.000000, 3953318.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1125, 1321, 699, 119, '件', NULL, 5040.000000, 5040.000000, 0.100000, 0.100000, 0.100000, 504.000000, '来源单据:SH2512030005', 25, NULL, 0.000000, 0.000000, 504.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1126, 1321, 699, 119, '件', NULL, 4960.000000, 4960.000000, 0.100000, 0.100000, 0.100000, 496.000000, '来源单据:SH2512030005', 25, NULL, 0.000000, 0.000000, 496.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1127, 1322, 686, 106, '件', NULL, 10000.000000, 10000.000000, 403.380000, 403.380000, 403.380000, 4033800.000000, '来源单据:SH2512030004', 25, NULL, 0.000000, 0.000000, 4033800.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1128, 1323, 693, 113, '件', NULL, 5040.000000, 5040.000000, 797.040000, 797.040000, 797.040000, 4017081.600000, '来源单据:SH2512090010', 25, NULL, 0.000000, 0.000000, 4017081.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1129, 1324, 699, 119, '件', NULL, 5040.000000, 5040.000000, 0.100000, 0.100000, 0.100000, 504.000000, '来源单据:SH2512090009', 25, NULL, 0.000000, 0.000000, 504.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1130, 1325, 693, 113, '件', NULL, 2730.000000, 2730.000000, 797.040000, 797.040000, 797.040000, 2175919.200000, '来源单据:SH2512120024', 25, NULL, 0.000000, 0.000000, 2175919.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1131, 1326, 690, 110, '件', NULL, 1580.000000, 1580.000000, 518.400000, 518.400000, 518.400000, 819072.000000, '来源单据:SH2512120023', 25, NULL, 0.000000, 0.000000, 819072.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1132, 1327, 699, 119, '件', NULL, 2730.000000, 2730.000000, 0.100000, 0.100000, 0.100000, 273.000000, '来源单据:SH2512160015', 25, NULL, 0.000000, 0.000000, 273.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1133, 1328, 699, 119, '件', NULL, 4960.000000, 4960.000000, 0.100000, 0.100000, 0.100000, 496.000000, '来源单据:SH2512160014', 25, NULL, 0.000000, 0.000000, 496.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1134, 1329, 699, 119, '件', NULL, 4713.000000, 4713.000000, 0.100000, 0.100000, 0.100000, 471.300000, '来源单据:SH2512290007', 25, NULL, 0.000000, 0.000000, 471.300000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1135, 1330, 693, 113, '件', NULL, 4713.000000, 4713.000000, 797.040000, 797.040000, 797.040000, 3756449.520000, '来源单据:SH2512290006', 25, NULL, 0.000000, 0.000000, 3756449.520000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1136, 1331, 690, 110, '件', NULL, 320.000000, 320.000000, 518.400000, 518.400000, 518.400000, 165888.000000, '来源单据:SH2512290008', 25, NULL, 0.000000, 0.000000, 165888.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1137, 1332, 690, 110, '件', NULL, 1000.000000, 1000.000000, 693.360000, 693.360000, 693.360000, 693360.000000, '来源单据:SH2601040003', 25, NULL, 0.000000, 0.000000, 693360.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1138, 1333, 690, 110, '件', NULL, 100.000000, 100.000000, 518.400000, 518.400000, 518.400000, 51840.000000, '来源单据:SH2512290008', 25, NULL, 0.000000, 0.000000, 51840.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1139, 1334, 690, 110, '件', NULL, 2000.000000, 2000.000000, 518.400000, 518.400000, 518.400000, 1036800.000000, '来源单据:SH2601200021', 25, NULL, 0.000000, 0.000000, 1036800.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1140, 1335, 690, 110, '件', NULL, 70.000000, 70.000000, 518.400000, 518.400000, 518.400000, 36288.000000, '来源单据:SH2601200021', 25, NULL, 0.000000, 0.000000, 36288.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1141, 1336, 684, 104, '件', NULL, 3240.000000, 3240.000000, 80.190000, 80.190000, 80.190000, 259815.600000, '来源单据:SH2604100007', 25, NULL, 0.000000, 0.000000, 259815.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1142, 1337, 684, 104, '件', NULL, 3170.000000, 3170.000000, 80.190000, 80.190000, 80.190000, 254202.300000, '来源单据:SH2604100007', 25, NULL, 0.000000, 0.000000, 254202.300000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1143, 1338, 684, 104, '件', NULL, 3850.000000, 3850.000000, 80.190000, 80.190000, 80.190000, 308731.500000, '来源单据:SH2604100007', 25, NULL, 0.000000, 0.000000, 308731.500000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1144, 1339, 684, 104, '件', NULL, 540.000000, 540.000000, 80.190000, 80.190000, 80.190000, 43302.600000, '来源单据:SH2604100007', 25, NULL, 0.000000, 0.000000, 43302.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1145, 1340, 684, 104, '件', NULL, 540.000000, 540.000000, 80.190000, 80.190000, 80.190000, 43302.600000, '来源单据:SH2604150004', 25, NULL, 0.000000, 0.000000, 43302.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1146, 1341, 684, 104, '件', NULL, 1080.000000, 1080.000000, 80.190000, 80.190000, 80.190000, 86605.200000, '来源单据:SH2604150004', 25, NULL, 0.000000, 0.000000, 86605.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1147, 1342, 684, 104, '件', NULL, 3780.000000, 3780.000000, 80.190000, 80.190000, 80.190000, 303118.200000, '来源单据:SH2604150004', 25, NULL, 0.000000, 0.000000, 303118.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1148, 1343, 687, 107, '件', NULL, 1680.000000, 1680.000000, 481.950000, 481.950000, 481.950000, 809676.000000, '来源单据:SH2604150003', 25, NULL, 0.000000, 0.000000, 809676.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1149, 1344, 687, 107, '件', NULL, 3696.000000, 3696.000000, 481.950000, 481.950000, 481.950000, 1781287.200000, '来源单据:SH2604150002', 25, NULL, 0.000000, 0.000000, 1781287.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1150, 1345, 684, 104, '件', NULL, 2700.000000, 2700.000000, 80.190000, 80.190000, 80.190000, 216513.000000, '来源单据:SH2604160008', 25, NULL, 0.000000, 0.000000, 216513.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1151, 1346, 684, 104, '件', NULL, 4320.000000, 4320.000000, 80.190000, 80.190000, 80.190000, 346420.800000, '来源单据:SH2604160008', 25, NULL, 0.000000, 0.000000, 346420.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1152, 1347, 684, 104, '件', NULL, 4860.000000, 4860.000000, 80.190000, 80.190000, 80.190000, 389723.400000, '来源单据:SH2604160008', 25, NULL, 0.000000, 0.000000, 389723.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1153, 1348, 684, 104, '件', NULL, 12420.000000, 12420.000000, 80.190000, 80.190000, 80.190000, 995959.800000, '来源单据:SH2604210010', 25, NULL, 0.000000, 0.000000, 995959.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1154, 1349, 687, 107, '件', NULL, 3360.000000, 3360.000000, 481.950000, 481.950000, 481.950000, 1619352.000000, '来源单据:SH2604220010', 25, NULL, 0.000000, 0.000000, 1619352.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1155, 1350, 687, 107, '件', NULL, 3528.000000, 3528.000000, 481.950000, 481.950000, 481.950000, 1700319.600000, '来源单据:SH2604220011', 25, NULL, 0.000000, 0.000000, 1700319.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1156, 1351, 684, 104, '件', NULL, 540.000000, 540.000000, 80.190000, 80.190000, 80.190000, 43302.600000, '来源单据:SH2604210010', 25, NULL, 0.000000, 0.000000, 43302.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1157, 1352, 687, 107, '件', NULL, 168.000000, 168.000000, 481.950000, 481.950000, 481.950000, 80967.600000, '来源单据:SH2604220011', 25, NULL, 0.000000, 0.000000, 80967.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1158, 1353, 687, 107, '件', NULL, 168.000000, 168.000000, 481.950000, 481.950000, 481.950000, 80967.600000, '来源单据:SH2604220011', 25, NULL, 0.000000, 0.000000, 80967.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1159, 1354, 684, 104, '件', NULL, 8960.000000, 8960.000000, 80.190000, 80.190000, 80.190000, 718502.400000, '来源单据:SH2604220009', 25, NULL, 0.000000, 0.000000, 718502.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1160, 1355, 684, 104, '件', NULL, 7570.000000, 7570.000000, 80.190000, 80.190000, 80.190000, 607038.300000, '来源单据:SH2604240012', 25, NULL, 0.000000, 0.000000, 607038.300000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1161, 1356, 684, 104, '件', NULL, 4310.000000, 4310.000000, 80.190000, 80.190000, 80.190000, 345618.900000, '来源单据:SH2604240012', 25, NULL, 0.000000, 0.000000, 345618.900000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1162, 1357, 687, 107, '件', NULL, 149.000000, 149.000000, 481.950000, 481.950000, 481.950000, 71810.550000, '来源单据:SH2604240013', 25, NULL, 0.000000, 0.000000, 71810.550000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1163, 1358, 684, 104, '件', NULL, 4860.000000, 4860.000000, 80.190000, 80.190000, 80.190000, 389723.400000, '来源单据:SH2604300001', 25, NULL, 0.000000, 0.000000, 389723.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1164, 1359, 684, 104, '件', NULL, 7020.000000, 7020.000000, 80.190000, 80.190000, 80.190000, 562933.800000, '来源单据:SH2604300001', 25, NULL, 0.000000, 0.000000, 562933.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1165, 1360, 684, 104, '件', NULL, 7020.000000, 7020.000000, 80.190000, 80.190000, 80.190000, 562933.800000, '来源单据:SH2605080017', 25, NULL, 0.000000, 0.000000, 562933.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1166, 1361, 684, 104, '件', NULL, 4860.000000, 4860.000000, 80.190000, 80.190000, 80.190000, 389723.400000, '来源单据:SH2605080017', 25, NULL, 0.000000, 0.000000, 389723.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1167, 1362, 684, 104, '件', NULL, 5400.000000, 5400.000000, 80.190000, 80.190000, 80.190000, 433026.000000, '来源单据:SH2605140004', 25, NULL, 0.000000, 0.000000, 433026.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1168, 1363, 687, 107, '件', NULL, 840.000000, 840.000000, 481.950000, 481.950000, 481.950000, 404838.000000, '来源单据:SH2605180007', 25, NULL, 0.000000, 0.000000, 404838.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1169, 1364, 687, 107, '件', NULL, 168.000000, 168.000000, 481.950000, 481.950000, 481.950000, 80967.600000, '来源单据:SH2605180007', 25, NULL, 0.000000, 0.000000, 80967.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1170, 1365, 684, 104, '件', NULL, 540.000000, 540.000000, 80.190000, 80.190000, 80.190000, 43302.600000, '来源单据:SH2605180005', 25, NULL, 0.000000, 0.000000, 43302.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1171, 1366, 684, 104, '件', NULL, 12400.000000, 12400.000000, 80.190000, 80.190000, 80.190000, 994356.000000, '来源单据:SH2605180006', 25, NULL, 0.000000, 0.000000, 994356.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1172, 1367, 684, 104, '件', NULL, 8420.000000, 8420.000000, 80.190000, 80.190000, 80.190000, 675199.800000, '来源单据:SH2605180005', 25, NULL, 0.000000, 0.000000, 675199.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1173, 1368, 687, 107, '件', NULL, 1848.000000, 1848.000000, 481.950000, 481.950000, 481.950000, 890643.600000, '来源单据:SH2605190018', 25, NULL, 0.000000, 0.000000, 890643.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1174, 1369, 687, 107, '件', NULL, 1008.000000, 1008.000000, 481.950000, 481.950000, 481.950000, 485805.600000, '来源单据:SH2605190018', 25, NULL, 0.000000, 0.000000, 485805.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1175, 1370, 687, 107, '件', NULL, 504.000000, 504.000000, 481.950000, 481.950000, 481.950000, 242902.800000, '来源单据:SH2605190018', 25, NULL, 0.000000, 0.000000, 242902.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1176, 1371, 687, 107, '件', NULL, 3360.000000, 3360.000000, 481.950000, 481.950000, 481.950000, 1619352.000000, '来源单据:SH2605280028', 25, NULL, 0.000000, 0.000000, 1619352.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1177, 1372, 687, 107, '件', NULL, 168.000000, 168.000000, 481.950000, 481.950000, 481.950000, 80967.600000, '来源单据:SH2606040013', 25, NULL, 0.000000, 0.000000, 80967.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1178, 1373, 687, 107, '件', NULL, 2432.000000, 2432.000000, 481.950000, 481.950000, 481.950000, 1172102.400000, '来源单据:SH2606040013', 25, NULL, 0.000000, 0.000000, 1172102.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1179, 1374, 687, 107, '件', NULL, 44.000000, 44.000000, 481.950000, 481.950000, 481.950000, 21205.800000, '来源单据:SH2606080003', 25, NULL, 0.000000, 0.000000, 21205.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1180, 1375, 683, 103, '件', NULL, 4320.000000, 4320.000000, 85.860000, 85.860000, 85.860000, 370915.200000, '来源单据:SH2606170024', 25, NULL, 0.000000, 0.000000, 370915.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1181, 1376, 683, 103, '件', NULL, 5940.000000, 5940.000000, 85.860000, 85.860000, 85.860000, 510008.400000, '来源单据:SH2606170024', 25, NULL, 0.000000, 0.000000, 510008.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1182, 1377, 683, 103, '件', NULL, 3780.000000, 3780.000000, 85.860000, 85.860000, 85.860000, 324550.800000, '来源单据:SH2606230001', 25, NULL, 0.000000, 0.000000, 324550.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1183, 1378, 683, 103, '件', NULL, 1080.000000, 1080.000000, 85.860000, 85.860000, 85.860000, 92728.800000, '来源单据:SH2606230001', 25, NULL, 0.000000, 0.000000, 92728.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1184, 1379, 683, 103, '件', NULL, 2215.000000, 2215.000000, 85.860000, 85.860000, 85.860000, 190179.900000, '来源单据:SH2606230001', 25, NULL, 0.000000, 0.000000, 190179.900000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1185, 1380, 683, 103, '件', NULL, 2160.000000, 2160.000000, 85.860000, 85.860000, 85.860000, 185457.600000, '来源单据:SH2606230001', 25, NULL, 0.000000, 0.000000, 185457.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1186, 1381, 683, 103, '件', NULL, 505.000000, 505.000000, 85.860000, 85.860000, 85.860000, 43359.300000, '来源单据:SH2606230001', 25, NULL, 0.000000, 0.000000, 43359.300000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1187, 1382, 696, 116, '件', NULL, 1224.000000, 1224.000000, 0.100000, 0.100000, 0.100000, 122.400000, '来源单据:SH2606290012', 25, NULL, 0.000000, 0.000000, 122.400000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1188, 1383, 685, 105, '件', NULL, 1260.000000, 1260.000000, 218.700000, 218.700000, 218.700000, 275562.000000, '来源单据:SH2606290005', 25, NULL, 0.000000, 0.000000, 275562.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1189, 1384, 696, 116, '件', NULL, 8160.000000, 8160.000000, 0.100000, 0.100000, 0.100000, 816.000000, '来源单据:SH2606290006', 25, NULL, 0.000000, 0.000000, 816.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1190, 1385, 685, 105, '件', NULL, 6720.000000, 6720.000000, 218.700000, 218.700000, 218.700000, 1469664.000000, '来源单据:SH2606290005', 25, NULL, 0.000000, 0.000000, 1469664.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1191, 1386, 691, 111, '件', NULL, 1050.000000, 1050.000000, 486.000000, 486.000000, 486.000000, 510300.000000, '来源单据:SH2606290011', 25, NULL, 0.000000, 0.000000, 510300.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1192, 1387, 696, 116, '件', NULL, 2652.000000, 2652.000000, 0.100000, 0.100000, 0.100000, 265.200000, '来源单据:SH2607020014', 25, NULL, 0.000000, 0.000000, 265.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1193, 1388, 696, 116, '件', NULL, 5100.000000, 5100.000000, 0.100000, 0.100000, 0.100000, 510.000000, '来源单据:SH2607020012', 25, NULL, 0.000000, 0.000000, 510.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1194, 1389, 685, 105, '件', NULL, 2100.000000, 2100.000000, 218.700000, 218.700000, 218.700000, 459270.000000, '来源单据:SH2607020011', 25, NULL, 0.000000, 0.000000, 459270.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1195, 1390, 685, 105, '件', NULL, 2940.000000, 2940.000000, 218.700000, 218.700000, 218.700000, 642978.000000, '来源单据:SH2607020011', 25, NULL, 0.000000, 0.000000, 642978.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1196, 1391, 691, 111, '件', NULL, 2520.000000, 2520.000000, 486.000000, 486.000000, 486.000000, 1224720.000000, '来源单据:SH2607020013', 25, NULL, 0.000000, 0.000000, 1224720.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1197, 1392, 691, 111, '件', NULL, 840.000000, 840.000000, 486.000000, 486.000000, 486.000000, 408240.000000, '来源单据:SH2607130003', 25, NULL, 0.000000, 0.000000, 408240.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1198, 1393, 685, 105, '件', NULL, 3780.000000, 3780.000000, 218.700000, 218.700000, 218.700000, 826686.000000, '来源单据:SH2607130001', 25, NULL, 0.000000, 0.000000, 826686.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1199, 1394, 685, 105, '件', NULL, 2940.000000, 2940.000000, 218.700000, 218.700000, 218.700000, 642978.000000, '来源单据:SH2607130001', 25, NULL, 0.000000, 0.000000, 642978.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1200, 1395, 696, 116, '件', NULL, 4088.000000, 4088.000000, 0.100000, 0.100000, 0.100000, 408.800000, '来源单据:SH2607130002', 25, NULL, 0.000000, 0.000000, 408.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1201, 1396, 696, 116, '件', NULL, 2652.000000, 2652.000000, 0.100000, 0.100000, 0.100000, 265.200000, '来源单据:SH2607130002', 25, NULL, 0.000000, 0.000000, 265.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1202, 1397, 696, 116, '件', NULL, 816.000000, 816.000000, 0.100000, 0.100000, 0.100000, 81.600000, '来源单据:SH2607130004', 25, NULL, 0.000000, 0.000000, 81.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1203, 1398, 696, 116, '件', NULL, 816.000000, 816.000000, 0.100000, 0.100000, 0.100000, 81.600000, '来源单据:SH2607130004', 25, NULL, 0.000000, 0.000000, 81.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1204, 1399, 685, 105, '件', NULL, 260.000000, 260.000000, 218.700000, 218.700000, 218.700000, 56862.000000, '来源单据:SH2607130001', 25, NULL, 0.000000, 0.000000, 56862.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1205, 1400, 691, 111, '件', NULL, 630.000000, 630.000000, 486.000000, 486.000000, 486.000000, 306180.000000, '来源单据:SH2607130003', 25, NULL, 0.000000, 0.000000, 306180.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1206, 1401, 687, 107, '件', NULL, 3360.000000, 3360.000000, 481.950000, 481.950000, 481.950000, 1619352.000000, '来源单据:SH2607140004', 25, NULL, 0.000000, 0.000000, 1619352.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1207, 1402, 691, 111, '件', NULL, 1680.000000, 1680.000000, 486.000000, 486.000000, 486.000000, 816480.000000, '来源单据:SH2607140008', 25, NULL, 0.000000, 0.000000, 816480.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1208, 1403, 691, 111, '件', NULL, 2520.000000, 2520.000000, 486.000000, 486.000000, 486.000000, 1224720.000000, '来源单据:SH2607140008', 25, NULL, 0.000000, 0.000000, 1224720.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1209, 1404, 696, 116, '件', NULL, 5100.000000, 5100.000000, 0.100000, 0.100000, 0.100000, 510.000000, '来源单据:SH2607140009', 25, NULL, 0.000000, 0.000000, 510.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1210, 1405, 691, 111, '件', NULL, 840.000000, 840.000000, 486.000000, 486.000000, 486.000000, 408240.000000, '来源单据:SH2607140008', 25, NULL, 0.000000, 0.000000, 408240.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1211, 1406, 687, 107, '件', NULL, 3024.000000, 3024.000000, 481.950000, 481.950000, 481.950000, 1457416.800000, '来源单据:SH2607160019', 25, NULL, 0.000000, 0.000000, 1457416.800000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1212, 1407, 696, 116, '件', NULL, 3852.000000, 3852.000000, 0.100000, 0.100000, 0.100000, 385.200000, '来源单据:SH2607160021', 25, NULL, 0.000000, 0.000000, 385.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1213, 1408, 687, 107, '件', NULL, 336.000000, 336.000000, 481.950000, 481.950000, 481.950000, 161935.200000, '来源单据:SH2607160019', 25, NULL, 0.000000, 0.000000, 161935.200000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1214, 1409, 691, 111, '件', NULL, 1050.000000, 1050.000000, 486.000000, 486.000000, 486.000000, 510300.000000, '来源单据:SH2607160020', 25, NULL, 0.000000, 0.000000, 510300.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1215, 1410, 691, 111, '件', NULL, 210.000000, 210.000000, 486.000000, 486.000000, 486.000000, 102060.000000, '来源单据:SH2607160020', 25, NULL, 0.000000, 0.000000, 102060.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1216, 1411, 691, 111, '件', NULL, 210.000000, 210.000000, 486.000000, 486.000000, 486.000000, 102060.000000, '来源单据:SH2607160020', 25, NULL, 0.000000, 0.000000, 102060.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1217, 1412, 691, 111, '件', NULL, 2100.000000, 2100.000000, 486.000000, 486.000000, 486.000000, 1020600.000000, '来源单据:SH2607160020', 25, NULL, 0.000000, 0.000000, 1020600.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1218, 1413, 691, 111, '件', NULL, 210.000000, 210.000000, 486.000000, 486.000000, 486.000000, 102060.000000, '来源单据:SH2607160020', 25, NULL, 0.000000, 0.000000, 102060.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1219, 1414, 691, 111, '件', NULL, 600.000000, 600.000000, 486.000000, 486.000000, 486.000000, 291600.000000, '来源单据:SH2607160020', 25, NULL, 0.000000, 0.000000, 291600.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1220, 1415, 685, 105, '件', NULL, 1260.000000, 1260.000000, 218.700000, 218.700000, 218.700000, 275562.000000, '来源单据:SH2607220001', 25, NULL, 0.000000, 0.000000, 275562.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1221, 1416, 696, 116, '件', NULL, 10200.000000, 10200.000000, 0.100000, 0.100000, 0.100000, 1020.000000, '来源单据:SH2607220002', 25, NULL, 0.000000, 0.000000, 1020.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1222, 1417, 685, 105, '件', NULL, 5880.000000, 5880.000000, 218.700000, 218.700000, 218.700000, 1285956.000000, '来源单据:SH2607220001', 25, NULL, 0.000000, 0.000000, 1285956.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1223, 1418, 685, 105, '件', NULL, 2520.000000, 2520.000000, 218.700000, 218.700000, 218.700000, 551124.000000, '来源单据:SH2607220001', 25, NULL, 0.000000, 0.000000, 551124.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1224, 1419, 685, 105, '件', NULL, 420.000000, 420.000000, 218.700000, 218.700000, 218.700000, 91854.000000, '来源单据:SH2607220001', 25, NULL, 0.000000, 0.000000, 91854.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1225, 1420, 696, 116, '件', NULL, 8160.000000, 8160.000000, 0.100000, 0.100000, 0.100000, 816.000000, '来源单据:SH2608060003', 25, NULL, 0.000000, 0.000000, 816.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1226, 1421, 685, 105, '件', NULL, 420.000000, 420.000000, 218.700000, 218.700000, 218.700000, 91854.000000, '来源单据:SH2608060001', 25, NULL, 0.000000, 0.000000, 91854.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1227, 1422, 685, 105, '件', NULL, 9500.000000, 9500.000000, 218.700000, 218.700000, 218.700000, 2077650.000000, '来源单据:SH2608060001', 25, NULL, 0.000000, 0.000000, 2077650.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1228, 1423, 696, 116, '件', NULL, 1836.000000, 1836.000000, 0.100000, 0.100000, 0.100000, 183.600000, '来源单据:SH2608060003', 25, NULL, 0.000000, 0.000000, 183.600000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1229, 1424, 703, 123, '件', NULL, 112400.000000, 112400.000000, 59.500000, 59.500000, 59.500000, 6687800.000000, '', 26, NULL, 0.000000, 0.000000, 6687800.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1230, 1425, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1231, 1426, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1232, 1427, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1233, 1428, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1234, 1429, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1235, 1430, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1236, 1431, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1237, 1432, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1238, 1433, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1239, 1434, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1240, 1435, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1241, 1436, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1242, 1437, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1243, 1438, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1244, 1439, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1245, 1440, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1246, 1441, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1247, 1442, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1248, 1443, 703, 123, '件', NULL, 15000.000000, 15000.000000, 73.500000, 73.500000, 80.850000, 1102500.000000, '', 26, NULL, 10.000000, 110250.000000, 1212750.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1249, 1444, 703, 123, '件', NULL, 15000.000000, 15000.000000, 73.500000, 73.500000, 80.850000, 1102500.000000, '', 26, NULL, 10.000000, 110250.000000, 1212750.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1250, 1445, 703, 123, '件', NULL, 9000.000000, 9000.000000, 73.500000, 73.500000, 80.850000, 661500.000000, '', 26, NULL, 10.000000, 66150.000000, 727650.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1251, 1446, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1252, 1447, 703, 123, '件', NULL, 6000.000000, 6000.000000, 73.500000, 73.500000, 80.850000, 441000.000000, '', 26, NULL, 10.000000, 44100.000000, 485100.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1253, 1448, 703, 123, '件', NULL, 6000.000000, 6000.000000, 73.500000, 73.500000, 80.850000, 441000.000000, '', 26, NULL, 10.000000, 44100.000000, 485100.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1254, 1449, 703, 123, '件', NULL, 6000.000000, 6000.000000, 73.500000, 73.500000, 80.850000, 441000.000000, '', 26, NULL, 10.000000, 44100.000000, 485100.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1255, 1450, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1256, 1451, 703, 123, '件', NULL, 1400.000000, 1400.000000, 73.500000, 73.500000, 80.850000, 102900.000000, '', 26, NULL, 10.000000, 10290.000000, 113190.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1257, 1452, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1258, 1453, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1259, 1454, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1260, 1455, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1261, 1456, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1262, 1457, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1263, 1458, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1264, 1459, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1265, 1460, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1266, 1461, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1267, 1462, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1268, 1463, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1269, 1464, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1270, 1465, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1271, 1466, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1272, 1467, 703, 123, '件', NULL, 2000.000000, 2000.000000, 73.500000, 73.500000, 80.850000, 147000.000000, '', 26, NULL, 10.000000, 14700.000000, 161700.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1273, 1468, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1274, 1469, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1275, 1470, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1276, 1471, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1277, 1472, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1278, 1473, 703, 123, '件', NULL, 2000.000000, 2000.000000, 73.500000, 73.500000, 80.850000, 147000.000000, '', 26, NULL, 10.000000, 14700.000000, 161700.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1279, 1474, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1280, 1475, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1281, 1476, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1282, 1477, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1283, 1478, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1284, 1479, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1285, 1480, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1286, 1481, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1287, 1482, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1288, 1483, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1289, 1484, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1290, 1485, 703, 123, '件', NULL, 2000.000000, 2000.000000, 73.500000, 73.500000, 80.850000, 147000.000000, '', 26, NULL, 10.000000, 14700.000000, 161700.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1291, 1486, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1292, 1487, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1293, 1488, 703, 123, '件', NULL, 2000.000000, 2000.000000, 73.500000, 73.500000, 80.850000, 147000.000000, '', 26, NULL, 10.000000, 14700.000000, 161700.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1294, 1489, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1295, 1490, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1296, 1491, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1297, 1492, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1298, 1493, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1299, 1494, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1300, 1495, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1301, 1496, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1302, 1497, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1303, 1498, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1304, 1499, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, '', 26, NULL, 0.000000, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1305, 1500, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1306, 1501, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1307, 1502, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1308, 1503, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1309, 1504, 703, 123, '件', NULL, 10260.000000, 10260.000000, 59.500000, 59.500000, 59.500000, 610470.000000, '', 26, NULL, 0.000000, 0.000000, 610470.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1310, 1505, 703, 123, '件', NULL, 2000.000000, 2000.000000, 73.500000, 73.500000, 80.850000, 147000.000000, '', 26, NULL, 10.000000, 14700.000000, 161700.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1311, 1506, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1312, 1507, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1313, 1508, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1314, 1509, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1315, 1510, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1316, 1511, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1317, 1512, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1318, 1513, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1319, 1514, 703, 123, '件', NULL, 260.000000, 260.000000, 73.500000, 73.500000, 80.850000, 19110.000000, '', 26, NULL, 10.000000, 1911.000000, 21021.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1320, 1515, 703, 123, '件', NULL, 2140.000000, 2140.000000, 59.500000, 59.500000, 59.500000, 127330.000000, '', 26, NULL, 0.000000, 0.000000, 127330.000000, NULL, NULL, NULL, NULL, 1229, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1321, 1516, 703, 123, '件', NULL, 740.000000, 740.000000, 73.500000, 73.500000, 80.850000, 54390.000000, '', 26, NULL, 10.000000, 5439.000000, 59829.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1322, 1517, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1323, 1518, 703, 123, '件', NULL, 400.000000, 400.000000, 73.500000, 73.500000, 80.850000, 29400.000000, '', 26, NULL, 10.000000, 2940.000000, 32340.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1324, 1519, 704, 124, '件', NULL, 18200.000000, 18200.000000, 317.500000, 317.500000, 317.500000, 5778500.000000, '', 26, NULL, 0.000000, 0.000000, 5778500.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1325, 1520, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1326, 1521, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1327, 1522, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1328, 1523, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1329, 1524, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1330, 1525, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1331, 1526, 704, 124, '件', NULL, 2200.000000, 2200.000000, 340.000000, 340.000000, 374.000000, 748000.000000, '', 26, NULL, 10.000000, 74800.000000, 822800.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1332, 1527, 704, 124, '件', NULL, 3024.000000, 3024.000000, 317.500000, 317.500000, 317.500000, 960120.000000, '', 26, NULL, 0.000000, 0.000000, 960120.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1333, 1528, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1334, 1529, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1335, 1530, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1336, 1531, 704, 124, '件', NULL, 24.000000, 24.000000, 340.000000, 340.000000, 374.000000, 8160.000000, '', 26, NULL, 10.000000, 816.000000, 8976.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1337, 1532, 704, 124, '件', NULL, 336.000000, 336.000000, 317.500000, 317.500000, 317.500000, 106680.000000, '', 26, NULL, 0.000000, 0.000000, 106680.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1338, 1533, 704, 124, '件', NULL, 336.000000, 336.000000, 340.000000, 340.000000, 374.000000, 114240.000000, '', 26, NULL, 10.000000, 11424.000000, 125664.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1339, 1534, 704, 124, '件', NULL, 1640.000000, 1640.000000, 317.500000, 317.500000, 317.500000, 520700.000000, '', 26, NULL, 0.000000, 0.000000, 520700.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1340, 1535, 704, 124, '件', NULL, 640.000000, 640.000000, 340.000000, 340.000000, 374.000000, 217600.000000, '', 26, NULL, 10.000000, 21760.000000, 239360.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1341, 1536, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1342, 1537, 704, 124, '件', NULL, 3696.000000, 3696.000000, 317.500000, 317.500000, 317.500000, 1173480.000000, '', 26, NULL, 0.000000, 0.000000, 1173480.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1343, 1538, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1344, 1539, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1345, 1540, 704, 124, '件', NULL, 1696.000000, 1696.000000, 340.000000, 340.000000, 374.000000, 576640.000000, '', 26, NULL, 10.000000, 57664.000000, 634304.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1346, 1541, 704, 124, '件', NULL, 504.000000, 504.000000, 317.500000, 317.500000, 317.500000, 160020.000000, '', 26, NULL, 0.000000, 0.000000, 160020.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1347, 1542, 704, 124, '件', NULL, 504.000000, 504.000000, 340.000000, 340.000000, 374.000000, 171360.000000, '', 26, NULL, 10.000000, 17136.000000, 188496.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1348, 1543, 704, 124, '件', NULL, 336.000000, 336.000000, 317.500000, 317.500000, 317.500000, 106680.000000, '', 26, NULL, 0.000000, 0.000000, 106680.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1349, 1544, 704, 124, '件', NULL, 336.000000, 336.000000, 340.000000, 340.000000, 374.000000, 114240.000000, '', 26, NULL, 10.000000, 11424.000000, 125664.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1350, 1545, 704, 124, '件', NULL, 464.000000, 464.000000, 317.500000, 317.500000, 317.500000, 147320.000000, '', 26, NULL, 0.000000, 0.000000, 147320.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1351, 1546, 704, 124, '件', NULL, 464.000000, 464.000000, 340.000000, 340.000000, 374.000000, 157760.000000, '', 26, NULL, 10.000000, 15776.000000, 173536.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1352, 1547, 704, 124, '件', NULL, 3464.000000, 3464.000000, 317.500000, 317.500000, 317.500000, 1099820.000000, '', 26, NULL, 0.000000, 0.000000, 1099820.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1353, 1548, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1354, 1549, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1355, 1550, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1356, 1551, 704, 124, '件', NULL, 464.000000, 464.000000, 340.000000, 340.000000, 374.000000, 157760.000000, '', 26, NULL, 10.000000, 15776.000000, 173536.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1357, 1552, 704, 124, '件', NULL, 504.000000, 504.000000, 317.500000, 317.500000, 317.500000, 160020.000000, '', 26, NULL, 0.000000, 0.000000, 160020.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1358, 1553, 704, 124, '件', NULL, 504.000000, 504.000000, 340.000000, 340.000000, 374.000000, 171360.000000, '', 26, NULL, 10.000000, 17136.000000, 188496.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1359, 1554, 704, 124, '件', NULL, 3360.000000, 3360.000000, 317.500000, 317.500000, 317.500000, 1066800.000000, '', 26, NULL, 0.000000, 0.000000, 1066800.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1360, 1555, 704, 124, '件', NULL, 32.000000, 32.000000, 340.000000, 340.000000, 374.000000, 10880.000000, '', 26, NULL, 10.000000, 1088.000000, 11968.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1361, 1556, 704, 124, '件', NULL, 2000.000000, 2000.000000, 340.000000, 340.000000, 374.000000, 680000.000000, '', 26, NULL, 10.000000, 68000.000000, 748000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1362, 1557, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1363, 1558, 704, 124, '件', NULL, 328.000000, 328.000000, 340.000000, 340.000000, 374.000000, 111520.000000, '', 26, NULL, 10.000000, 11152.000000, 122672.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1364, 1559, 704, 124, '件', NULL, 504.000000, 504.000000, 317.500000, 317.500000, 317.500000, 160020.000000, '', 26, NULL, 0.000000, 0.000000, 160020.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1365, 1560, 704, 124, '件', NULL, 504.000000, 504.000000, 340.000000, 340.000000, 374.000000, 171360.000000, '', 26, NULL, 10.000000, 17136.000000, 188496.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1366, 1561, 704, 124, '件', NULL, 368.000000, 368.000000, 317.500000, 317.500000, 317.500000, 116840.000000, '', 26, NULL, 0.000000, 0.000000, 116840.000000, NULL, NULL, NULL, NULL, 1324, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1367, 1562, 704, 124, '件', NULL, 168.000000, 168.000000, 340.000000, 340.000000, 374.000000, 57120.000000, '', 26, NULL, 10.000000, 5712.000000, 62832.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1368, 1563, 704, 124, '件', NULL, 200.000000, 200.000000, 340.000000, 340.000000, 374.000000, 68000.000000, '', 26, NULL, 10.000000, 6800.000000, 74800.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1369, 1564, 703, 123, '件', NULL, 112400.000000, 112400.000000, 59.500000, 59.500000, 59.500000, 6687800.000000, '', 26, NULL, 0.000000, 0.000000, 6687800.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1370, 1565, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1371, 1566, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1372, 1567, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1373, 1568, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1374, 1569, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1375, 1570, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1376, 1571, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1377, 1572, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1378, 1573, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1379, 1574, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1380, 1575, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1381, 1576, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1382, 1577, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1383, 1578, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1384, 1579, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1385, 1580, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1386, 1581, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1387, 1582, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1388, 1583, 703, 123, '件', NULL, 2000.000000, 2000.000000, 73.500000, 73.500000, 80.850000, 147000.000000, '', 26, NULL, 10.000000, 14700.000000, 161700.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1389, 1584, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1390, 1585, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1391, 1586, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1392, 1587, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1393, 1588, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1394, 1589, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1395, 1590, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1396, 1591, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1397, 1592, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1398, 1593, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1399, 1594, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1400, 1595, 703, 123, '件', NULL, 4000.000000, 4000.000000, 73.500000, 73.500000, 80.850000, 294000.000000, '', 26, NULL, 10.000000, 29400.000000, 323400.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1401, 1596, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1402, 1597, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1403, 1598, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1404, 1599, 703, 123, '件', NULL, 3000.000000, 3000.000000, 73.500000, 73.500000, 80.850000, 220500.000000, '', 26, NULL, 10.000000, 22050.000000, 242550.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1405, 1600, 703, 123, '件', NULL, 2400.000000, 2400.000000, 73.500000, 73.500000, 80.850000, 176400.000000, '', 26, NULL, 10.000000, 17640.000000, 194040.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1406, 1601, 703, 123, '件', NULL, 10800.000000, 10800.000000, 59.500000, 59.500000, 59.500000, 642600.000000, '', 26, NULL, 0.000000, 0.000000, 642600.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1407, 1602, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1408, 1603, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1409, 1604, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1410, 1605, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1411, 1606, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1412, 1607, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1413, 1608, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1414, 1609, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1415, 1610, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1416, 1611, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1417, 1612, 703, 123, '件', NULL, 800.000000, 800.000000, 73.500000, 73.500000, 80.850000, 58800.000000, '', 26, NULL, 10.000000, 5880.000000, 64680.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1418, 1613, 703, 123, '件', NULL, 5400.000000, 5400.000000, 59.500000, 59.500000, 59.500000, 321300.000000, '', 26, NULL, 0.000000, 0.000000, 321300.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1419, 1614, 703, 123, '件', NULL, 200.000000, 200.000000, 73.500000, 73.500000, 80.850000, 14700.000000, '', 26, NULL, 10.000000, 1470.000000, 16170.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1420, 1615, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1421, 1616, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1422, 1617, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1423, 1618, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1424, 1619, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1425, 1620, 703, 123, '件', NULL, 200.000000, 200.000000, 73.500000, 73.500000, 80.850000, 14700.000000, '', 26, NULL, 10.000000, 1470.000000, 16170.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1426, 1621, 703, 123, '件', NULL, 11880.000000, 11880.000000, 59.500000, 59.500000, 59.500000, 706860.000000, '', 26, NULL, 0.000000, 0.000000, 706860.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1427, 1622, 703, 123, '件', NULL, 800.000000, 800.000000, 73.500000, 73.500000, 80.850000, 58800.000000, '', 26, NULL, 10.000000, 5880.000000, 64680.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1428, 1623, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1429, 1624, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1430, 1625, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1431, 1626, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1432, 1627, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1433, 1628, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1434, 1629, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1435, 1630, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1436, 1631, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1437, 1632, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1438, 1633, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1439, 1634, 703, 123, '件', NULL, 80.000000, 80.000000, 73.500000, 73.500000, 80.850000, 5880.000000, '', 26, NULL, 10.000000, 588.000000, 6468.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1440, 1635, 703, 123, '件', NULL, 12960.000000, 12960.000000, 59.500000, 59.500000, 59.500000, 771120.000000, '', 26, NULL, 0.000000, 0.000000, 771120.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1441, 1636, 703, 123, '件', NULL, 920.000000, 920.000000, 73.500000, 73.500000, 80.850000, 67620.000000, '', 26, NULL, 10.000000, 6762.000000, 74382.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1442, 1637, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1443, 1638, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1444, 1639, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1445, 1640, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1446, 1641, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1447, 1642, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1448, 1643, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1449, 1644, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1450, 1645, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1451, 1646, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1452, 1647, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1453, 1648, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1454, 1649, 703, 123, '件', NULL, 40.000000, 40.000000, 73.500000, 73.500000, 80.850000, 2940.000000, '', 26, NULL, 10.000000, 294.000000, 3234.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1455, 1650, 703, 123, '件', NULL, 8960.000000, 8960.000000, 59.500000, 59.500000, 59.500000, 533120.000000, '', 26, NULL, 0.000000, 0.000000, 533120.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1456, 1651, 703, 123, '件', NULL, 960.000000, 960.000000, 73.500000, 73.500000, 80.850000, 70560.000000, '', 26, NULL, 10.000000, 7056.000000, 77616.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1457, 1652, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1458, 1653, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1459, 1654, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1460, 1655, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1461, 1656, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1462, 1657, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1463, 1658, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1464, 1659, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1465, 1660, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1466, 1661, 703, 123, '件', NULL, 11880.000000, 11880.000000, 59.500000, 59.500000, 59.500000, 706860.000000, '', 26, NULL, 0.000000, 0.000000, 706860.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1467, 1662, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1468, 1663, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1469, 1664, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1470, 1665, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1471, 1666, 703, 123, '件', NULL, 11880.000000, 11880.000000, 59.500000, 59.500000, 59.500000, 706860.000000, '', 26, NULL, 0.000000, 0.000000, 706860.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1472, 1667, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1473, 1668, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1474, 1669, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1475, 1670, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1476, 1671, 703, 123, '件', NULL, 1000.000000, 1000.000000, 73.500000, 73.500000, 80.850000, 73500.000000, '', 26, NULL, 10.000000, 7350.000000, 80850.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1477, 1672, 703, 123, '件', NULL, 11880.000000, 11880.000000, 59.500000, 59.500000, 59.500000, 706860.000000, '', 26, NULL, 0.000000, 0.000000, 706860.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1478, 1673, 703, 123, '件', NULL, 5400.000000, 5400.000000, 59.500000, 59.500000, 59.500000, 321300.000000, '', 26, NULL, 0.000000, 0.000000, 321300.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1479, 1674, 703, 123, '件', NULL, 8420.000000, 8420.000000, 59.500000, 59.500000, 59.500000, 500990.000000, '', 26, NULL, 0.000000, 0.000000, 500990.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1480, 1675, 703, 123, '件', NULL, 12940.000000, 12940.000000, 59.500000, 59.500000, 59.500000, 769930.000000, '', 26, NULL, 0.000000, 0.000000, 769930.000000, NULL, NULL, NULL, NULL, 1369, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1481, 1676, 704, 124, '件', NULL, 18200.000000, 18200.000000, 317.500000, 317.500000, 317.500000, 5778500.000000, '', 26, NULL, 0.000000, 0.000000, 5778500.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1482, 1677, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1483, 1678, 704, 124, '件', NULL, 1008.000000, 1008.000000, 317.500000, 317.500000, 317.500000, 320040.000000, '', 26, NULL, 0.000000, 0.000000, 320040.000000, NULL, NULL, NULL, NULL, 1481, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1484, 1679, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1485, 1680, 704, 124, '件', NULL, 8.000000, 8.000000, 340.000000, 340.000000, 374.000000, 2720.000000, '', 26, NULL, 10.000000, 272.000000, 2992.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1486, 1681, 704, 124, '件', NULL, 3360.000000, 3360.000000, 317.500000, 317.500000, 317.500000, 1066800.000000, '', 26, NULL, 0.000000, 0.000000, 1066800.000000, NULL, NULL, NULL, NULL, 1481, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1487, 1682, 704, 124, '件', NULL, 992.000000, 992.000000, 340.000000, 340.000000, 374.000000, 337280.000000, '', 26, NULL, 10.000000, 33728.000000, 371008.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1488, 1683, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1489, 1684, 704, 124, '件', NULL, 3360.000000, 3360.000000, 317.500000, 317.500000, 317.500000, 1066800.000000, '', 26, NULL, 0.000000, 0.000000, 1066800.000000, NULL, NULL, NULL, NULL, 1481, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1490, 1685, 704, 124, '件', NULL, 2644.000000, 2644.000000, 317.500000, 317.500000, 317.500000, 839470.000000, '', 26, NULL, 0.000000, 0.000000, 839470.000000, NULL, NULL, NULL, NULL, 1481, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1491, 1686, 704, 124, '件', NULL, 12749.000000, 12749.000000, 317.500000, 317.500000, 317.500000, 4047807.500000, '', 26, NULL, 0.000000, 0.000000, 4047807.500000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1492, 1687, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1493, 1688, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1494, 1689, 704, 124, '件', NULL, 3749.000000, 3749.000000, 340.000000, 340.000000, 374.000000, 1274660.000000, '', 26, NULL, 10.000000, 127466.000000, 1402126.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1495, 1690, 704, 124, '件', NULL, 3000.000000, 3000.000000, 340.000000, 340.000000, 374.000000, 1020000.000000, '', 26, NULL, 10.000000, 102000.000000, 1122000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1496, 1691, 704, 124, '件', NULL, 3360.000000, 3360.000000, 317.500000, 317.500000, 317.500000, 1066800.000000, '', 26, NULL, 0.000000, 0.000000, 1066800.000000, NULL, NULL, NULL, NULL, 1491, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1497, 1692, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1498, 1693, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1499, 1694, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1500, 1695, 704, 124, '件', NULL, 360.000000, 360.000000, 340.000000, 340.000000, 374.000000, 122400.000000, '', 26, NULL, 10.000000, 12240.000000, 134640.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1501, 1696, 704, 124, '件', NULL, 3360.000000, 3360.000000, 317.500000, 317.500000, 317.500000, 1066800.000000, '', 26, NULL, 0.000000, 0.000000, 1066800.000000, NULL, NULL, NULL, NULL, 1491, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1502, 1697, 704, 124, '件', NULL, 640.000000, 640.000000, 340.000000, 340.000000, 374.000000, 217600.000000, '', 26, NULL, 10.000000, 21760.000000, 239360.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1503, 1698, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1504, 1699, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1505, 1700, 704, 124, '件', NULL, 720.000000, 720.000000, 340.000000, 340.000000, 374.000000, 244800.000000, '', 26, NULL, 10.000000, 24480.000000, 269280.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1506, 1701, 704, 124, '件', NULL, 2016.000000, 2016.000000, 317.500000, 317.500000, 317.500000, 640080.000000, '', 26, NULL, 0.000000, 0.000000, 640080.000000, NULL, NULL, NULL, NULL, 1491, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1507, 1702, 704, 124, '件', NULL, 280.000000, 280.000000, 340.000000, 340.000000, 374.000000, 95200.000000, '', 26, NULL, 10.000000, 9520.000000, 104720.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1508, 1703, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1509, 1704, 704, 124, '件', NULL, 736.000000, 736.000000, 340.000000, 340.000000, 374.000000, 250240.000000, '', 26, NULL, 10.000000, 25024.000000, 275264.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1510, 1705, 704, 124, '件', NULL, 504.000000, 504.000000, 317.500000, 317.500000, 317.500000, 160020.000000, '', 26, NULL, 0.000000, 0.000000, 160020.000000, NULL, NULL, NULL, NULL, 1491, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1511, 1706, 704, 124, '件', NULL, 264.000000, 264.000000, 340.000000, 340.000000, 374.000000, 89760.000000, '', 26, NULL, 10.000000, 8976.000000, 98736.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1512, 1707, 704, 124, '件', NULL, 240.000000, 240.000000, 340.000000, 340.000000, 374.000000, 81600.000000, '', 26, NULL, 10.000000, 8160.000000, 89760.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1513, 1708, 704, 124, '件', NULL, 3360.000000, 3360.000000, 317.500000, 317.500000, 317.500000, 1066800.000000, '', 26, NULL, 0.000000, 0.000000, 1066800.000000, NULL, NULL, NULL, NULL, 1491, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1514, 1709, 704, 124, '件', NULL, 509.000000, 509.000000, 340.000000, 340.000000, 374.000000, 173060.000000, '', 26, NULL, 10.000000, 17306.000000, 190366.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1515, 1710, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1516, 1711, 704, 124, '件', NULL, 1000.000000, 1000.000000, 340.000000, 340.000000, 374.000000, 340000.000000, '', 26, NULL, 10.000000, 34000.000000, 374000.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1517, 1712, 704, 124, '件', NULL, 851.000000, 851.000000, 340.000000, 340.000000, 374.000000, 289340.000000, '', 26, NULL, 10.000000, 28934.000000, 318274.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1518, 1713, 704, 124, '件', NULL, 149.000000, 149.000000, 317.500000, 317.500000, 317.500000, 47307.500000, '', 26, NULL, 0.000000, 0.000000, 47307.500000, NULL, NULL, NULL, NULL, 1491, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1519, 1714, 704, 124, '件', NULL, 149.000000, 149.000000, 340.000000, 340.000000, 374.000000, 50660.000000, '', 26, NULL, 10.000000, 5066.000000, 55726.000000, NULL, NULL, NULL, NULL, NULL, 63, '0'); +INSERT INTO `tbl_depot_item` VALUES (1520, 1715, 699, 119, '件', NULL, 7.000000, 7.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1521, 1716, 699, 119, '件', NULL, 7.000000, 7.000000, 0.100000, NULL, NULL, 0.700000, NULL, NULL, NULL, 0.000000, 0.000000, 0.700000, NULL, NULL, NULL, NULL, 1520, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1522, 1717, 699, 119, '件', NULL, 7.000000, 7.000000, 0.100000, NULL, NULL, 0.700000, NULL, 25, NULL, 0.000000, 0.000000, 0.700000, NULL, NULL, NULL, NULL, 1521, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1523, 1718, 704, 124, '件', NULL, 1000000.000000, 1000000.000000, 340.000000, NULL, NULL, 340000000.000000, NULL, NULL, NULL, 0.000000, 0.000000, 340000000.000000, NULL, NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1524, 1719, 703, 123, '件', NULL, 10000.000000, 10000.000000, 73.500000, NULL, NULL, 735000.000000, NULL, NULL, NULL, 10.000000, 73500.000000, 808500.000000, NULL, NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1525, 1720, 703, 123, '件', NULL, 10000.000000, 10000.000000, 73.500000, 59.500000, NULL, 735000.000000, NULL, 25, NULL, 10.000000, 73500.000000, 808500.000000, NULL, NULL, NULL, NULL, 1524, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1526, 1721, 703, 123, '件', NULL, 10000.000000, 10000.000000, 59.500000, 59.500000, 59.500000, 595000.000000, NULL, 25, NULL, NULL, 0.000000, 595000.000000, NULL, NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1527, 1722, 705, 125, '件', NULL, 10000.000000, 10000.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1528, 1723, 705, 125, '件', NULL, 10000.000000, 10000.000000, 10.000000, NULL, NULL, 100000.000000, NULL, NULL, NULL, 0.000000, 0.000000, 100000.000000, NULL, NULL, NULL, NULL, 1527, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1529, 1724, 705, 125, '件', NULL, 10000.000000, 10000.000000, 10.000000, NULL, NULL, 100000.000000, NULL, 25, NULL, 0.000000, 0.000000, 100000.000000, NULL, NULL, NULL, NULL, 1528, NULL, '0'); +INSERT INTO `tbl_depot_item` VALUES (1530, 1725, 705, 125, '件', '', 10000.000000, 10000.000000, 0.000000, NULL, NULL, 0.000000, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_function +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_function`; +CREATE TABLE `tbl_function` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '编号', + `name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '名称', + `parent_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '上级编号', + `url` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '链接', + `component` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '组件', + `state` bit(1) NULL DEFAULT NULL COMMENT '收缩', + `sort` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '排序', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用', + `type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类型', + `push_btn` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '功能按钮', + `icon` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '图标', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + `name_en` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT 'English menu/resource name', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `url`(`url`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 277 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '功能模块表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_function +-- ---------------------------- +INSERT INTO `tbl_function` VALUES (1, '0001', '系统管理', '0', '/system', '/layouts/TabLayout', b'1', '0010', b'1', '电脑版', '', 'setting', '0', 'System Management'); +INSERT INTO `tbl_function` VALUES (13, '000102', '角色管理', '0001', '/system/role', '/system/RoleList', b'0', '0130', b'1', '电脑版', '1,8', 'profile', '0', 'Role Management'); +INSERT INTO `tbl_function` VALUES (14, '000103', '用户管理', '0001', '/system/user', '/system/UserList', b'0', '0140', b'1', '电脑版', '1', 'profile', '0', 'User Management'); +INSERT INTO `tbl_function` VALUES (15, '000104', '日志管理', '0001', '/system/log', '/system/LogList', b'0', '0160', b'1', '电脑版', '', 'profile', '0', 'Log Management'); +INSERT INTO `tbl_function` VALUES (16, '000105', '菜单管理', '0001', '/system/function', '/system/FunctionList', b'0', '0166', b'1', '电脑版', '1', 'profile', '0', 'Resource Menus'); +INSERT INTO `tbl_function` VALUES (18, '000109', '租户管理', '0001', '/system/tenant', '/system/TenantList', b'0', '0167', b'0', '电脑版', '1', 'profile', '0', 'Tenant Management'); +INSERT INTO `tbl_function` VALUES (21, '0101', '商品管理', '0', '/material', '/layouts/TabLayout', b'0', '0007', b'1', '电脑版', NULL, 'shopping', '0', 'Product Management'); +INSERT INTO `tbl_function` VALUES (22, '010101', '商品类别', '0101', '/material/material_category', '/material/MaterialCategoryList', b'0', '0230', b'1', '电脑版', '1', 'profile', '0', 'Product Categories'); +INSERT INTO `tbl_function` VALUES (23, '010102', '商品信息', '0101', '/material/material', '/material/MaterialList', b'0', '0240', b'1', '电脑版', '1,3', 'profile', '0', 'Product Information'); +INSERT INTO `tbl_function` VALUES (24, '0102', '基础资料', '0', '/systemA', '/layouts/TabLayout', b'0', '0009', b'1', '电脑版', NULL, 'appstore', '0', 'Master Data'); +INSERT INTO `tbl_function` VALUES (25, '01020101', '供应商信息', '0102', '/system/vendor', '/system/VendorList', b'0', '0260', b'1', '电脑版', '1,3', 'profile', '0', 'Suppliers'); +INSERT INTO `tbl_function` VALUES (26, '010202', '仓库信息', '0102', '/system/depot', '/system/DepotList', b'0', '0270', b'1', '电脑版', '1', 'profile', '0', 'Warehouses'); +INSERT INTO `tbl_function` VALUES (31, '010206', '操作人员管理', '0102', '/system/person', '/system/PersonList', b'0', '0284', b'1', '电脑版', '1', 'profile', '0', 'Operators'); +INSERT INTO `tbl_function` VALUES (32, '0502', '采购管理', '0', '/bill', '/layouts/TabLayout', b'0', '0002', b'1', '电脑版', '', 'retweet', '0', 'Purchase Management'); +INSERT INTO `tbl_function` VALUES (33, '050201', '采购入库', '0502', '/bill/purchase_in', '/bill/PurchaseInList', b'0', '0340', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Purchase Receipts'); +INSERT INTO `tbl_function` VALUES (38, '0603', '销售管理', '0', '/billB', '/layouts/TabLayout', b'0', '0001', b'1', '电脑版', '', 'shopping-cart', '0', 'Sales Management'); +INSERT INTO `tbl_function` VALUES (40, '080107', '调拨出库', '0801', '/bill/allocation_out', '/bill/AllocationOutList', b'0', '0807', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Stock Transfers'); +INSERT INTO `tbl_function` VALUES (41, '060303', '销售出库', '0603', '/bill/sale_out', '/bill/SaleOutList', b'0', '0394', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Sales Shipments'); +INSERT INTO `tbl_function` VALUES (44, '0704', '财务管理', '0', '/financial', '/layouts/TabLayout', b'0', '0005', b'1', '电脑版', '', 'money-collect', '0', 'Finance Management'); +INSERT INTO `tbl_function` VALUES (59, '030101', '进销存统计', '0301', '/report/in_out_stock_report', '/report/InOutStockReport', b'0', '0658', b'1', '电脑版', '', 'profile', '0', 'Inventory Transaction Summary'); +INSERT INTO `tbl_function` VALUES (194, '010204', '收支项目', '0102', '/system/in_out_item', '/system/InOutItemList', b'0', '0282', b'1', '电脑版', '1', 'profile', '0', 'Income and Expense Items'); +INSERT INTO `tbl_function` VALUES (195, '010205', '结算账户', '0102', '/system/account', '/system/AccountList', b'0', '0283', b'1', '电脑版', '1', 'profile', '0', 'Settlement Accounts'); +INSERT INTO `tbl_function` VALUES (197, '070402', '收入单', '0704', '/financial/item_in', '/financial/ItemInList', b'0', '0465', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Income Vouchers'); +INSERT INTO `tbl_function` VALUES (198, '0301', '报表查询', '0', '/report', '/layouts/TabLayout', b'0', '0008', b'1', '电脑版', NULL, 'pie-chart', '0', 'Reports'); +INSERT INTO `tbl_function` VALUES (199, '050204', '采购退货', '0502', '/bill/purchase_back', '/bill/PurchaseBackList', b'0', '0345', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Purchase Returns'); +INSERT INTO `tbl_function` VALUES (200, '060305', '销售退货', '0603', '/bill/sale_back', '/bill/SaleBackList', b'0', '0396', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Sales Returns'); +INSERT INTO `tbl_function` VALUES (201, '080103', '其它入库', '0801', '/bill/other_in', '/bill/OtherInList', b'0', '0803', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Other Receipts'); +INSERT INTO `tbl_function` VALUES (202, '080105', '其它出库', '0801', '/bill/other_out', '/bill/OtherOutList', b'0', '0805', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Other Shipments'); +INSERT INTO `tbl_function` VALUES (203, '070403', '支出单', '0704', '/financial/item_out', '/financial/ItemOutList', b'0', '0470', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Expense Vouchers'); +INSERT INTO `tbl_function` VALUES (204, '070404', '收款单', '0704', '/financial/money_in', '/financial/MoneyInList', b'0', '0475', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Receipt Vouchers'); +INSERT INTO `tbl_function` VALUES (205, '070405', '付款单', '0704', '/financial/money_out', '/financial/MoneyOutList', b'0', '0480', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Payment Vouchers'); +INSERT INTO `tbl_function` VALUES (206, '070406', '转账单', '0704', '/financial/giro', '/financial/GiroList', b'0', '0490', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Transfer Vouchers'); +INSERT INTO `tbl_function` VALUES (207, '030102', '账户统计', '0301', '/report/account_report', '/report/AccountReport', b'0', '0610', b'1', '电脑版', '', 'profile', '0', 'Account Summary'); +INSERT INTO `tbl_function` VALUES (208, '030103', '采购统计', '0301', '/report/buy_in_report', '/report/BuyInReport', b'0', '0620', b'1', '电脑版', '', 'profile', '0', 'Purchase Summary'); +INSERT INTO `tbl_function` VALUES (209, '030104', '销售统计', '0301', '/report/sale_out_report', '/report/SaleOutReport', b'0', '0630', b'1', '电脑版', '', 'profile', '0', 'Sales Summary'); +INSERT INTO `tbl_function` VALUES (210, '040102', '零售出库', '0603', '/bill/retail_out', '/bill/RetailOutList', b'0', '0405', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Retail Shipments'); +INSERT INTO `tbl_function` VALUES (211, '040104', '零售退货', '0603', '/bill/retail_back', '/bill/RetailBackList', b'0', '0407', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Retail Returns'); +INSERT INTO `tbl_function` VALUES (212, '070407', '收预付款', '0704', '/financial/advance_in', '/financial/AdvanceInList', b'0', '0495', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Advance Receipts'); +INSERT INTO `tbl_function` VALUES (217, '01020102', '客户信息', '0102', '/system/customer', '/system/CustomerList', b'0', '0262', b'1', '电脑版', '1,3', 'profile', '0', 'Customers'); +INSERT INTO `tbl_function` VALUES (218, '01020103', '会员信息', '0102', '/system/member', '/system/MemberList', b'0', '0263', b'1', '电脑版', '1,3', 'profile', '0', 'Members'); +INSERT INTO `tbl_function` VALUES (220, '010103', '多单位', '0101', '/system/unit', '/system/UnitList', b'0', '0245', b'1', '电脑版', '1', 'profile', '0', 'Multiple Units'); +INSERT INTO `tbl_function` VALUES (225, '0401', '零售管理', '0', '/billC', '/layouts/TabLayout', b'0', '0101', b'1', '电脑版', '', 'gift', '0', 'Retail Management'); +INSERT INTO `tbl_function` VALUES (226, '030106', '入库明细', '0301', '/report/in_detail', '/report/InDetail', b'0', '0640', b'1', '电脑版', '', 'profile', '0', 'Inbound Details'); +INSERT INTO `tbl_function` VALUES (227, '030107', '出库明细', '0301', '/report/out_detail', '/report/OutDetail', b'0', '0645', b'1', '电脑版', '', 'profile', '0', 'Outbound Details'); +INSERT INTO `tbl_function` VALUES (228, '030108', '入库汇总', '0301', '/report/in_material_count', '/report/InMaterialCount', b'0', '0650', b'1', '电脑版', '', 'profile', '0', 'Inbound Summary'); +INSERT INTO `tbl_function` VALUES (229, '030109', '出库汇总', '0301', '/report/out_material_count', '/report/OutMaterialCount', b'0', '0655', b'1', '电脑版', '', 'profile', '0', 'Outbound Summary'); +INSERT INTO `tbl_function` VALUES (232, '080109', '组装单', '0801', '/bill/assemble', '/bill/AssembleList', b'0', '0809', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Assembly Orders'); +INSERT INTO `tbl_function` VALUES (233, '080111', '拆卸单', '0801', '/bill/disassemble', '/bill/DisassembleList', b'0', '0811', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Disassembly Orders'); +INSERT INTO `tbl_function` VALUES (234, '000105', '系统配置', '0001', '/system/system_config', '/system/SystemConfigList', b'0', '0164', b'1', '电脑版', '1', 'profile', '0', 'System Configuration'); +INSERT INTO `tbl_function` VALUES (235, '030110', '客户对账', '0301', '/report/customer_account', '/report/CustomerAccount', b'0', '0660', b'1', '电脑版', '', 'profile', '0', 'Customer Reconciliation'); +INSERT INTO `tbl_function` VALUES (236, '000106', '商品属性', '0001', '/material/material_property', '/material/MaterialPropertyList', b'0', '0163', b'1', '电脑版', '1', 'profile', '0', 'Product Properties'); +INSERT INTO `tbl_function` VALUES (237, '030111', '供应商对账', '0301', '/report/vendor_account', '/report/VendorAccount', b'0', '0665', b'1', '电脑版', '', 'profile', '0', 'Supplier Reconciliation'); +INSERT INTO `tbl_function` VALUES (239, '0801', '仓库管理', '0', '/billD', '/layouts/TabLayout', b'0', '0004', b'1', '电脑版', '', 'hdd', '0', 'Warehouse Management'); +INSERT INTO `tbl_function` VALUES (241, '050202', '采购订单', '0502', '/bill/purchase_order', '/bill/PurchaseOrderList', b'0', '0335', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Purchase Orders'); +INSERT INTO `tbl_function` VALUES (242, '060301', '销售订单', '0603', '/bill/sale_order', '/bill/SaleOrderList', b'0', '0392', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Sales Orders'); +INSERT INTO `tbl_function` VALUES (243, '000108', '部门管理', '0001', '/system/organization', '/system/OrganizationList', b'1', '0150', b'1', '电脑版', '1', 'profile', '0', 'Department Management'); +INSERT INTO `tbl_function` VALUES (244, '030112', '库存预警', '0301', '/report/stock_warning_report', '/report/StockWarningReport', b'0', '0670', b'1', '电脑版', '', 'profile', '0', 'Stock Alerts'); +INSERT INTO `tbl_function` VALUES (245, '000107', '插件管理', '0001', '/system/plugin', '/system/PluginList', b'0', '0170', b'1', '电脑版', '1', 'profile', '0', 'Plugin Management'); +INSERT INTO `tbl_function` VALUES (246, '030113', '商品库存', '0801', '/report/material_stock', '/report/MaterialStock', b'0', '0605', b'1', '电脑版', '', 'profile', '0', 'Product Inventory'); +INSERT INTO `tbl_function` VALUES (247, '010105', '多属性', '0101', '/material/material_attribute', '/material/MaterialAttributeList', b'0', '0250', b'1', '电脑版', '1', 'profile', '0', 'Product Attributes'); +INSERT INTO `tbl_function` VALUES (248, '030150', '调拨明细', '0301', '/report/allocation_detail', '/report/AllocationDetail', b'0', '0646', b'1', '电脑版', '', 'profile', '0', 'Transfer Details'); +INSERT INTO `tbl_function` VALUES (258, '000112', '平台配置', '0001', '/system/platform_config', '/system/PlatformConfigList', b'0', '0175', b'1', '电脑版', '', 'profile', '0', 'Platform Configuration'); +INSERT INTO `tbl_function` VALUES (259, '030105', '零售统计', '0301', '/report/retail_out_report', '/report/RetailOutReport', b'0', '0615', b'1', '电脑版', '', 'profile', '0', 'Retail Summary'); +INSERT INTO `tbl_function` VALUES (260, '000113', '字典管理', '0001', '/system/dict', '/system/DictList', b'0', '0172', b'1', '电脑版', '', 'profile', '0', 'Dictionary Management'); +INSERT INTO `tbl_function` VALUES (261, '050203', '请购单', '0502', '/bill/purchase_apply', '/bill/PurchaseApplyList', b'0', '0330', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Purchase Requisitions'); +INSERT INTO `tbl_function` VALUES (262, '0901', '生产管理', '0', '/production', '/layouts/TabLayout', b'0', '0003', b'1', '电脑版', '', 'cluster', '0', 'Production Management'); +INSERT INTO `tbl_function` VALUES (263, '090101', '生产方案', '0901', '/production/pack_bom', '/production/PackBomList', b'0', '0481', b'1', '电脑版', NULL, 'profile', '0', 'Production BOMs'); +INSERT INTO `tbl_function` VALUES (264, '090102', '生产工单', '0901', '/production/order', '/production/OrderList', b'0', '0482', b'1', '电脑版', '1,2,3', 'profile', '0', 'Production Orders'); +INSERT INTO `tbl_function` VALUES (265, '090103', '领料管理', '0901', '/production/requisition', '/production/RequisitionList', b'0', '0483', b'1', '电脑版', '1,2,3', 'profile', '0', 'Material Requisitions'); +INSERT INTO `tbl_function` VALUES (266, '090104', '完工报工', '0901', '/production/report', '/production/ReportList', b'0', '0484', b'1', '电脑版', '1,2,3', 'profile', '0', 'Production Reports'); +INSERT INTO `tbl_function` VALUES (267, '01020110', '客户分类', '0102', '/system/customerCategory', '/system/CustomerCategoryList', b'1', '0263', b'1', '电脑版', NULL, 'bars', '0', 'Customer Categories'); +INSERT INTO `tbl_function` VALUES (268, '060304', '发货管理', '0603', '/bill/sale_shipment', '/bill/SaleShipmentList', b'0', '0395', b'1', '电脑版', '1,2,7', 'car', '0', 'Shipment Management'); +INSERT INTO `tbl_function` VALUES (270, '080110', '总部入库', '0801', '/bill/headquarters_in', '/bill/HeadquartersInList', b'0', '0810', b'1', '电脑版', '1,2,3,7', 'profile', '0', 'Headquarters Receipts'); +INSERT INTO `tbl_function` VALUES (271, '060303', '交货计划管理', '0603', '/bill/delivery_plan', '/bill/DeliveryPlanList', b'0', '0394', b'1', '电脑版', '1,2,7', 'profile', '0', 'Delivery Plans'); +INSERT INTO `tbl_function` VALUES (272, '0902', '资产管理', '0', '/assetManagement', '/layouts/TabLayout', b'0', '0006', b'1', '电脑版', '', 'bank', '0', 'Asset Management'); +INSERT INTO `tbl_function` VALUES (273, '090201', '资产台账', '0902', '/asset/ledger', '/asset/AssetList', b'0', '0491', b'1', '电脑版', '1,2,3', 'profile', '0', 'Asset Ledger'); +INSERT INTO `tbl_function` VALUES (274, '090202', '设备台账', '0902', '/asset/device', '/asset/DeviceList', b'0', '0492', b'1', '电脑版', '1,2,3', 'tool', '0', 'Device Ledger'); +INSERT INTO `tbl_function` VALUES (275, '090203', '资产盘点', '0902', '/asset/inventory', '/asset/InventoryList', b'0', '0493', b'1', '电脑版', '1,2,3,4,5,6', 'scan', '0', 'Asset Inventory'); +INSERT INTO `tbl_function` VALUES (276, '090200', '资产汇总', '0902', '/asset', '/asset/AssetDashboard', b'0', '0490', b'1', '电脑版', '', 'dashboard', '0', 'Asset Overview'); + +-- ---------------------------- +-- Table structure for tbl_headquarters_inbound_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_headquarters_inbound_item`; +CREATE TABLE `tbl_headquarters_inbound_item` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `header_id` bigint NOT NULL, + `material_code` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, + `material_name` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, + `specification` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `qty` decimal(24, 6) NOT NULL, + `unit_price` decimal(24, 6) NULL DEFAULT NULL, + `total_net_money` decimal(24, 6) NULL DEFAULT NULL, + `total_money` decimal(24, 6) NULL DEFAULT NULL, + `depot_id` bigint NULL DEFAULT NULL COMMENT '入库仓库id', + `item_json` json NULL COMMENT '入库商品原始信息', + `source_doc_no` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_headquarters_inbound_header`(`header_id`) USING BTREE, + INDEX `idx_headquarters_inbound_code`(`material_code`) USING BTREE, + INDEX `idx_headquarters_inbound_depot`(`depot_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 752 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '总部入库明细' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_headquarters_inbound_item +-- ---------------------------- +INSERT INTO `tbl_headquarters_inbound_item` VALUES (598, 1272, 'C.4.T.0.00562', 'MD-4GVIII(VB)', 'MD-4GVIII(VB)', 50.000000, 324.000000, 14336.280000, 16200.000000, 25, '{\"出货量\": 50.0, \"价税合计\": 16200.0, \"商品单价\": 324.0, \"成品名称\": \"MD-4GVIII(VB)\", \"未税金额\": 14336.28, \"规格型号\": \"MD-4GVIII(VB)\", \"成品物料代码\": \"C.4.T.0.00562\"}', 'SH2503070002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (599, 1273, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 1990.000000, 797.040000, 1403636.810000, 1586109.600000, 25, '{\"出货量\": 1990.0, \"价税合计\": 1586109.6, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 1403636.81, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2503210018', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (600, 1274, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 1990.000000, 0.100000, 176.110000, 199.000000, 25, '{\"出货量\": 1990.0, \"价税合计\": 199.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 176.11, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2503260007', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (601, 1275, 'C.3.T.0.00036', '三相四线多功能电能表T46(VH)', 'DTSD1226-T46(VH)', 500.000000, 550.800000, 275400.000000, 275400.000000, 25, '{\"出货量\": 500.0, \"价税合计\": 275400.0, \"商品单价\": 550.8, \"成品名称\": \"三相四线多功能电能表T46(VH)\", \"未税金额\": 275400.0, \"规格型号\": \"DTSD1226-T46(VH)\", \"成品物料代码\": \"C.3.T.0.00036\"}', 'SH2503280020', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (602, 1276, 'C.3.S.0.00020', '三相四线多功能电能表SXVI(VG)-新', 'DTSD1226-SXVI(VG)', 400.000000, 613.980000, 245592.000000, 245592.000000, 25, '{\"出货量\": 400.0, \"价税合计\": 245592.0, \"商品单价\": 613.98, \"成品名称\": \"三相四线多功能电能表SXVI(VG)-新\", \"未税金额\": 245592.0, \"规格型号\": \"DTSD1226-SXVI(VG)\", \"成品物料代码\": \"C.3.S.0.00020\"}', 'SH2503280021', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (603, 1277, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 8290.000000, 0.100000, 829.000000, 829.000000, 25, '{\"出货量\": 8290.0, \"价税合计\": 829.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 829.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2504010002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (604, 1278, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 8290.000000, 403.380000, 3344020.200000, 3344020.200000, 25, '{\"出货量\": 8290.0, \"价税合计\": 3344020.2, \"商品单价\": 403.38, \"成品名称\": \"单相多功能电能表T49(VH)_(马来市场)\", \"未税金额\": 3344020.2, \"规格型号\": \"DDSD1226-T49(VH)\", \"成品物料代码\": \"C.1.T.0.0004500005\"}', 'SH2503310004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (605, 1279, 'C.4.T.0.00553', 'MT-P109(VA)', 'MT-P109(VA)', 500.000000, 129.600000, 64800.000000, 64800.000000, 25, '{\"出货量\": 500.0, \"价税合计\": 64800.0, \"商品单价\": 129.6, \"成品名称\": \"MT-P109(VA)\", \"未税金额\": 64800.0, \"规格型号\": \"MT-P109(VA)\", \"成品物料代码\": \"C.4.T.0.00553\"}', 'SH2504010004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (606, 1280, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3024.000000, 481.950000, 1457416.800000, 1457416.800000, 25, '{\"出货量\": 3024.0, \"价税合计\": 1457416.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1457416.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2505090009', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (607, 1281, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 336.000000, 481.950000, 161935.200000, 161935.200000, 25, '{\"出货量\": 336.0, \"价税合计\": 161935.2, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 161935.2, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2505140012', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (608, 1282, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 1640.000000, 481.950000, 790398.000000, 790398.000000, 25, '{\"出货量\": 1640.0, \"价税合计\": 790398.0, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 790398.0, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2505140013', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (609, 1283, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 504.000000, 481.950000, 242902.800000, 242902.800000, 25, '{\"出货量\": 504.0, \"价税合计\": 242902.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 242902.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2505220012', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (610, 1284, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3696.000000, 481.950000, 1781287.200000, 1781287.200000, 25, '{\"出货量\": 3696.0, \"价税合计\": 1781287.2, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1781287.2, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2505210003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (611, 1285, 'C.4.T.0.00421', 'MD-LR62(VB)', 'MD-LR62(VB)', 170.000000, 334.692000, 56897.640000, 56897.640000, 25, '{\"出货量\": 170.0, \"价税合计\": 56897.64, \"商品单价\": 334.692, \"成品名称\": \"MD-LR62(VB)\", \"未税金额\": 56897.64, \"规格型号\": \"MD-LR62(VB)\", \"成品物料代码\": \"C.4.T.0.00421\"}', 'SH2505230003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (612, 1286, 'C.4.T.0.00422', 'MD-LR63(VB)', 'MD-LR63(VB)', 100.000000, 1003.752000, 100375.200000, 100375.200000, 25, '{\"出货量\": 100.0, \"价税合计\": 100375.2, \"商品单价\": 1003.752, \"成品名称\": \"MD-LR63(VB)\", \"未税金额\": 100375.2, \"规格型号\": \"MD-LR63(VB)\", \"成品物料代码\": \"C.4.T.0.00422\"}', 'SH2505230002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (613, 1287, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 336.000000, 481.950000, 161935.200000, 161935.200000, 25, '{\"出货量\": 336.0, \"价税合计\": 161935.2, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 161935.2, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2505270016', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (614, 1288, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 464.000000, 481.950000, 223624.800000, 223624.800000, 25, '{\"出货量\": 464.0, \"价税合计\": 223624.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 223624.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2505280004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (615, 1289, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3464.000000, 481.950000, 1669474.800000, 1669474.800000, 25, '{\"出货量\": 3464.0, \"价税合计\": 1669474.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1669474.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2506120013', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (616, 1290, 'C.4.T.0.00722', 'MD-RS178(VA) RS485分线器', 'MD-RS178(VA)', 1000.000000, 24.300000, 24300.000000, 24300.000000, 25, '{\"出货量\": 1000.0, \"价税合计\": 24300.0, \"商品单价\": 24.3, \"成品名称\": \"MD-RS178(VA) RS485分线器\", \"未税金额\": 24300.0, \"规格型号\": \"MD-RS178(VA)\", \"成品物料代码\": \"C.4.T.0.00722\"}', 'SH2506190019', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (617, 1291, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 504.000000, 481.950000, 242902.800000, 242902.800000, 25, '{\"出货量\": 504.0, \"价税合计\": 242902.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 242902.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2506200018', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (618, 1292, 'C.4.T.0.00421', 'MD-LR62(VB)', 'MD-LR62(VB)', 30.000000, 334.692000, 10040.760000, 10040.760000, 25, '{\"出货量\": 30.0, \"价税合计\": 10040.76, \"商品单价\": 334.692, \"成品名称\": \"MD-LR62(VB)\", \"未税金额\": 10040.76, \"规格型号\": \"MD-LR62(VB)\", \"成品物料代码\": \"C.4.T.0.00421\"}', 'SH2506230010', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (619, 1293, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 504.000000, 481.950000, 242902.800000, 242902.800000, 25, '{\"出货量\": 504.0, \"价税合计\": 242902.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 242902.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2506240005', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (620, 1294, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3360.000000, 481.950000, 1619352.000000, 1619352.000000, 25, '{\"出货量\": 3360.0, \"价税合计\": 1619352.0, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1619352.0, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2506240004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (621, 1295, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 5.000000, 481.950000, 2409.750000, 2409.750000, 25, '{\"出货量\": 5.0, \"价税合计\": 2409.75, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 2409.75, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2507010002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (622, 1296, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 363.000000, 481.950000, 174947.850000, 174947.850000, 25, '{\"出货量\": 363.0, \"价税合计\": 174947.85, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 174947.85, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2507010002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (623, 1297, 'C.4.T.0.00686', 'TC160(VA) 通讯模块供电盒', 'TC160(VA)', 50.000000, 132.840000, 6642.000000, 6642.000000, 25, '{\"出货量\": 50.0, \"价税合计\": 6642.0, \"商品单价\": 132.84, \"成品名称\": \"TC160(VA) 通讯模块供电盒\", \"未税金额\": 6642.0, \"规格型号\": \"TC160(VA)\", \"成品物料代码\": \"C.4.T.0.00686\"}', 'SH2507160005', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (624, 1298, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 4620.000000, 797.040000, 3682324.800000, 3682324.800000, 25, '{\"出货量\": 4620.0, \"价税合计\": 3682324.8, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 3682324.8, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2508130002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (625, 1299, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4620.000000, 0.100000, 462.000000, 462.000000, 25, '{\"出货量\": 4620.0, \"价税合计\": 462.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 462.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2508130003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (626, 1300, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 5270.000000, 0.100000, 527.000000, 527.000000, 25, '{\"出货量\": 5270.0, \"价税合计\": 527.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 527.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2508140009', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (627, 1301, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 5270.000000, 797.040000, 4200400.800000, 4200400.800000, 25, '{\"出货量\": 5270.0, \"价税合计\": 4200400.8, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 4200400.8, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2508140008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (628, 1302, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 110.000000, 797.040000, 87674.400000, 87674.400000, 25, '{\"出货量\": 110.0, \"价税合计\": 87674.4, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 87674.4, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2508200016', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (629, 1303, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 2100.000000, 518.400000, 1088640.000000, 1088640.000000, 25, '{\"出货量\": 2100.0, \"价税合计\": 1088640.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 1088640.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2508200015', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (630, 1304, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 110.000000, 0.100000, 11.000000, 11.000000, 25, '{\"出货量\": 110.0, \"价税合计\": 11.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 11.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2508200018', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (631, 1305, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 2900.000000, 518.400000, 1503360.000000, 1503360.000000, 25, '{\"出货量\": 2900.0, \"价税合计\": 1503360.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 1503360.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2509050002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (632, 1306, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 10000.000000, 0.100000, 1000.000000, 1000.000000, 25, '{\"出货量\": 10000.0, \"价税合计\": 1000.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 1000.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2509250002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (633, 1307, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 10000.000000, 403.380000, 4033800.000000, 4033800.000000, 25, '{\"出货量\": 10000.0, \"价税合计\": 4033800.0, \"商品单价\": 403.38, \"成品名称\": \"单相多功能电能表T49(VH)_(马来市场)\", \"未税金额\": 4033800.0, \"规格型号\": \"DDSD1226-T49(VH)\", \"成品物料代码\": \"C.1.T.0.0004500005\"}', 'SH2509250001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (634, 1308, 'C.4.T.0.0068900002', 'MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)', 'MD-RS114(VB)', 100.000000, 142.560000, 14256.000000, 14256.000000, 25, '{\"出货量\": 100.0, \"价税合计\": 14256.0, \"商品单价\": 142.56, \"成品名称\": \"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\", \"未税金额\": 14256.0, \"规格型号\": \"MD-RS114(VB)\", \"成品物料代码\": \"C.4.T.0.0068900002\"}', 'SH2510170019', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (635, 1309, 'C.3.S.0.00026', '三相四线多功能电能表SXVI(VH)-新', 'DTSD1226-SXVI(VH)', 120.000000, 690.120000, 82814.400000, 82814.400000, 25, '{\"出货量\": 120.0, \"价税合计\": 82814.4, \"商品单价\": 690.12, \"成品名称\": \"三相四线多功能电能表SXVI(VH)-新\", \"未税金额\": 82814.4, \"规格型号\": \"DTSD1226-SXVI(VH)\", \"成品物料代码\": \"C.3.S.0.00026\"}', 'SH2510170020', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (636, 1310, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 516.000000, 403.380000, 208144.080000, 208144.080000, 25, '{\"出货量\": 516.0, \"价税合计\": 208144.08, \"商品单价\": 403.38, \"成品名称\": \"单相多功能电能表T49(VH)_(马来市场)\", \"未税金额\": 208144.08, \"规格型号\": \"DDSD1226-T49(VH)\", \"成品物料代码\": \"C.1.T.0.0004500005\"}', 'SH2510290008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (637, 1311, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 9484.000000, 403.380000, 3825655.920000, 3825655.920000, 25, '{\"出货量\": 9484.0, \"价税合计\": 3825655.92, \"商品单价\": 403.38, \"成品名称\": \"单相多功能电能表T49(VH)_(马来市场)\", \"未税金额\": 3825655.92, \"规格型号\": \"DDSD1226-T49(VH)\", \"成品物料代码\": \"C.1.T.0.0004500005\"}', 'SH2510290008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (638, 1312, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 9990.000000, 0.100000, 999.000000, 999.000000, 25, '{\"出货量\": 9990.0, \"价税合计\": 999.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 999.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2510290009', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (639, 1313, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 10.000000, 0.100000, 1.000000, 1.000000, 25, '{\"出货量\": 10.0, \"价税合计\": 1.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 1.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2510290009', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (640, 1314, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 2970.000000, 518.400000, 1539648.000000, 1539648.000000, 25, '{\"出货量\": 2970.0, \"价税合计\": 1539648.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 1539648.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2511140012', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (641, 1315, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 4200.000000, 403.380000, 1694196.000000, 1694196.000000, 25, '{\"出货量\": 4200.0, \"价税合计\": 1694196.0, \"商品单价\": 403.38, \"成品名称\": \"单相多功能电能表T49(VH)_(马来市场)\", \"未税金额\": 1694196.0, \"规格型号\": \"DDSD1226-T49(VH)\", \"成品物料代码\": \"C.1.T.0.0004500005\"}', 'SH2511210018', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (642, 1316, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4200.000000, 0.100000, 420.000000, 420.000000, 25, '{\"出货量\": 4200.0, \"价税合计\": 420.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 420.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2511210019', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (643, 1317, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 5040.000000, 797.040000, 4017081.600000, 4017081.600000, 25, '{\"出货量\": 5040.0, \"价税合计\": 4017081.6, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 4017081.6, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2511240013', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (644, 1318, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 5040.000000, 0.100000, 504.000000, 504.000000, 25, '{\"出货量\": 5040.0, \"价税合计\": 504.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 504.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2511240014', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (645, 1319, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 30.000000, 518.400000, 15552.000000, 15552.000000, 25, '{\"出货量\": 30.0, \"价税合计\": 15552.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 15552.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2511250009', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (646, 1320, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 4960.000000, 797.040000, 3953318.400000, 3953318.400000, 25, '{\"出货量\": 4960.0, \"价税合计\": 3953318.4, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 3953318.4, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2511280023', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (647, 1321, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 5040.000000, 0.100000, 504.000000, 504.000000, 25, '{\"出货量\": 5040.0, \"价税合计\": 504.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 504.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2512030005', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (648, 1321, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4960.000000, 0.100000, 496.000000, 496.000000, 25, '{\"出货量\": 4960.0, \"价税合计\": 496.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 496.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2512030005', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (649, 1322, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 10000.000000, 403.380000, 4033800.000000, 4033800.000000, 25, '{\"出货量\": 10000.0, \"价税合计\": 4033800.0, \"商品单价\": 403.38, \"成品名称\": \"单相多功能电能表T49(VH)_(马来市场)\", \"未税金额\": 4033800.0, \"规格型号\": \"DDSD1226-T49(VH)\", \"成品物料代码\": \"C.1.T.0.0004500005\"}', 'SH2512030004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (650, 1323, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 5040.000000, 797.040000, 4017081.600000, 4017081.600000, 25, '{\"出货量\": 5040.0, \"价税合计\": 4017081.6, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 4017081.6, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2512090010', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (651, 1324, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 5040.000000, 0.100000, 504.000000, 504.000000, 25, '{\"出货量\": 5040.0, \"价税合计\": 504.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 504.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2512090009', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (652, 1325, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 2730.000000, 797.040000, 2175919.200000, 2175919.200000, 25, '{\"出货量\": 2730.0, \"价税合计\": 2175919.2, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 2175919.2, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2512120024', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (653, 1326, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 1580.000000, 518.400000, 819072.000000, 819072.000000, 25, '{\"出货量\": 1580.0, \"价税合计\": 819072.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 819072.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2512120023', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (654, 1327, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 2730.000000, 0.100000, 273.000000, 273.000000, 25, '{\"出货量\": 2730.0, \"价税合计\": 273.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 273.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2512160015', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (655, 1328, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4960.000000, 0.100000, 496.000000, 496.000000, 25, '{\"出货量\": 4960.0, \"价税合计\": 496.0, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 496.0, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2512160014', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (656, 1329, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4713.000000, 0.100000, 471.300000, 471.300000, 25, '{\"出货量\": 4713.0, \"价税合计\": 471.3, \"商品单价\": 0.1, \"成品名称\": \"MD-4G111(VF) 4G模块\", \"未税金额\": 471.3, \"规格型号\": \"MD-4G111(VF)\", \"成品物料代码\": \"C.4.T.0.00654\"}', 'SH2512290007', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (657, 1330, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 4713.000000, 797.040000, 3756449.520000, 3756449.520000, 25, '{\"出货量\": 4713.0, \"价税合计\": 3756449.52, \"商品单价\": 797.04, \"成品名称\": \"三相四线多功能电能表T46(VJ)\", \"未税金额\": 3756449.52, \"规格型号\": \"DTSD1226-T46(VJ)\", \"成品物料代码\": \"C.3.T.0.00038\"}', 'SH2512290006', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (658, 1331, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 320.000000, 518.400000, 165888.000000, 165888.000000, 25, '{\"出货量\": 320.0, \"价税合计\": 165888.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 165888.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2512290008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (659, 1332, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 1000.000000, 693.360000, 693360.000000, 693360.000000, 25, '{\"出货量\": 1000.0, \"价税合计\": 693360.0, \"商品单价\": 693.36, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 693360.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2601040003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (660, 1333, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 100.000000, 518.400000, 51840.000000, 51840.000000, 25, '{\"出货量\": 100.0, \"价税合计\": 51840.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 51840.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2512290008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (661, 1334, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 2000.000000, 518.400000, 1036800.000000, 1036800.000000, 25, '{\"出货量\": 2000.0, \"价税合计\": 1036800.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 1036800.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2601200021', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (662, 1335, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 70.000000, 518.400000, 36288.000000, 36288.000000, 25, '{\"出货量\": 70.0, \"价税合计\": 36288.0, \"商品单价\": 518.4, \"成品名称\": \"三相四线多功能电能表SXVI(VK)-新\", \"未税金额\": 36288.0, \"规格型号\": \"DTSD1226-SXVI(VK)\", \"成品物料代码\": \"C.3.S.0.00030\"}', 'SH2601200021', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (663, 1336, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 3240.000000, 80.190000, 259815.600000, 259815.600000, 25, '{\"出货量\": 3240.0, \"价税合计\": 259815.6, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 259815.6, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604100007', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (664, 1337, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 3170.000000, 80.190000, 254202.300000, 254202.300000, 25, '{\"出货量\": 3170.0, \"价税合计\": 254202.3, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 254202.3, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604100007', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (665, 1338, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 3850.000000, 80.190000, 308731.500000, 308731.500000, 25, '{\"出货量\": 3850.0, \"价税合计\": 308731.5, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 308731.5, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604100007', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (666, 1339, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 540.000000, 80.190000, 43302.600000, 43302.600000, 25, '{\"出货量\": 540.0, \"价税合计\": 43302.6, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 43302.6, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604100007', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (667, 1340, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 540.000000, 80.190000, 43302.600000, 43302.600000, 25, '{\"出货量\": 540.0, \"价税合计\": 43302.6, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 43302.6, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604150004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (668, 1341, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 1080.000000, 80.190000, 86605.200000, 86605.200000, 25, '{\"出货量\": 1080.0, \"价税合计\": 86605.2, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 86605.2, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604150004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (669, 1342, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 3780.000000, 80.190000, 303118.200000, 303118.200000, 25, '{\"出货量\": 3780.0, \"价税合计\": 303118.2, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 303118.2, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604150004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (670, 1343, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 1680.000000, 481.950000, 809676.000000, 809676.000000, 25, '{\"出货量\": 1680.0, \"价税合计\": 809676.0, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 809676.0, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2604150003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (671, 1344, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3696.000000, 481.950000, 1781287.200000, 1781287.200000, 25, '{\"出货量\": 3696.0, \"价税合计\": 1781287.2, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1781287.2, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2604150002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (672, 1345, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 2700.000000, 80.190000, 216513.000000, 216513.000000, 25, '{\"出货量\": 2700.0, \"价税合计\": 216513.0, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 216513.0, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604160008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (673, 1346, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4320.000000, 80.190000, 346420.800000, 346420.800000, 25, '{\"出货量\": 4320.0, \"价税合计\": 346420.8, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 346420.8, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604160008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (674, 1347, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4860.000000, 80.190000, 389723.400000, 389723.400000, 25, '{\"出货量\": 4860.0, \"价税合计\": 389723.4, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 389723.4, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604160008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (675, 1348, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 12420.000000, 80.190000, 995959.800000, 995959.800000, 25, '{\"出货量\": 12420.0, \"价税合计\": 995959.8, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 995959.8, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604210010', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (676, 1349, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3360.000000, 481.950000, 1619352.000000, 1619352.000000, 25, '{\"出货量\": 3360.0, \"价税合计\": 1619352.0, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1619352.0, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2604220010', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (677, 1350, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3528.000000, 481.950000, 1700319.600000, 1700319.600000, 25, '{\"出货量\": 3528.0, \"价税合计\": 1700319.6, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1700319.6, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2604220011', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (678, 1351, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 540.000000, 80.190000, 43302.600000, 43302.600000, 25, '{\"出货量\": 540.0, \"价税合计\": 43302.6, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 43302.6, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604210010', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (679, 1352, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 168.000000, 481.950000, 80967.600000, 80967.600000, 25, '{\"出货量\": 168.0, \"价税合计\": 80967.6, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 80967.6, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2604220011', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (680, 1353, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 168.000000, 481.950000, 80967.600000, 80967.600000, 25, '{\"出货量\": 168.0, \"价税合计\": 80967.6, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 80967.6, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2604220011', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (681, 1354, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 8960.000000, 80.190000, 718502.400000, 718502.400000, 25, '{\"出货量\": 8960.0, \"价税合计\": 718502.4, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 718502.4, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604220009', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (682, 1355, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 7570.000000, 80.190000, 607038.300000, 607038.300000, 25, '{\"出货量\": 7570.0, \"价税合计\": 607038.3, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 607038.3, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604240012', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (683, 1356, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4310.000000, 80.190000, 345618.900000, 345618.900000, 25, '{\"出货量\": 4310.0, \"价税合计\": 345618.9, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 345618.9, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604240012', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (684, 1357, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 149.000000, 481.950000, 71810.550000, 71810.550000, 25, '{\"出货量\": 149.0, \"价税合计\": 71810.55, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 71810.55, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2604240013', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (685, 1358, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4860.000000, 80.190000, 389723.400000, 389723.400000, 25, '{\"出货量\": 4860.0, \"价税合计\": 389723.4, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 389723.4, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604300001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (686, 1359, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 7020.000000, 80.190000, 562933.800000, 562933.800000, 25, '{\"出货量\": 7020.0, \"价税合计\": 562933.8, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 562933.8, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2604300001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (687, 1360, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 7020.000000, 80.190000, 562933.800000, 562933.800000, 25, '{\"出货量\": 7020.0, \"价税合计\": 562933.8, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 562933.8, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2605080017', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (688, 1361, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4860.000000, 80.190000, 389723.400000, 389723.400000, 25, '{\"出货量\": 4860.0, \"价税合计\": 389723.4, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 389723.4, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2605080017', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (689, 1362, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 5400.000000, 80.190000, 433026.000000, 433026.000000, 25, '{\"出货量\": 5400.0, \"价税合计\": 433026.0, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 433026.0, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2605140004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (690, 1363, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 840.000000, 481.950000, 404838.000000, 404838.000000, 25, '{\"出货量\": 840.0, \"价税合计\": 404838.0, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 404838.0, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2605180007', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (691, 1364, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 168.000000, 481.950000, 80967.600000, 80967.600000, 25, '{\"出货量\": 168.0, \"价税合计\": 80967.6, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 80967.6, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2605180007', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (692, 1365, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 540.000000, 80.190000, 43302.600000, 43302.600000, 25, '{\"出货量\": 540.0, \"价税合计\": 43302.6, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 43302.6, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2605180005', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (693, 1366, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 12400.000000, 80.190000, 994356.000000, 994356.000000, 25, '{\"出货量\": 12400.0, \"价税合计\": 994356.0, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 994356.0, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2605180006', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (694, 1367, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 8420.000000, 80.190000, 675199.800000, 675199.800000, 25, '{\"出货量\": 8420.0, \"价税合计\": 675199.8, \"商品单价\": 80.19, \"成品名称\": \"单相有功电能表C8(VG)\", \"未税金额\": 675199.8, \"规格型号\": \"DDS1226-C8(VG)\", \"成品物料代码\": \"C.1.C.2.00023\"}', 'SH2605180005', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (695, 1368, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 1848.000000, 481.950000, 890643.600000, 890643.600000, 25, '{\"出货量\": 1848.0, \"价税合计\": 890643.6, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 890643.6, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2605190018', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (696, 1369, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 1008.000000, 481.950000, 485805.600000, 485805.600000, 25, '{\"出货量\": 1008.0, \"价税合计\": 485805.6, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 485805.6, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2605190018', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (697, 1370, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 504.000000, 481.950000, 242902.800000, 242902.800000, 25, '{\"出货量\": 504.0, \"价税合计\": 242902.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 242902.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2605190018', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (698, 1371, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3360.000000, 481.950000, 1619352.000000, 1619352.000000, 25, '{\"出货量\": 3360.0, \"价税合计\": 1619352.0, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1619352.0, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2605280028', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (699, 1372, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 168.000000, 481.950000, 80967.600000, 80967.600000, 25, '{\"出货量\": 168.0, \"价税合计\": 80967.6, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 80967.6, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2606040013', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (700, 1373, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 2432.000000, 481.950000, 1172102.400000, 1172102.400000, 25, '{\"出货量\": 2432.0, \"价税合计\": 1172102.4, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1172102.4, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2606040013', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (701, 1374, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 44.000000, 481.950000, 21205.800000, 21205.800000, 25, '{\"出货量\": 44.0, \"价税合计\": 21205.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 21205.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2606080003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (702, 1375, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 4320.000000, 85.860000, 370915.200000, 370915.200000, 25, '{\"出货量\": 4320.0, \"价税合计\": 370915.2, \"商品单价\": 85.86, \"成品名称\": \"单相有功电能表C8(VD)\", \"未税金额\": 370915.2, \"规格型号\": \"DDS1226-C8(VD)\", \"成品物料代码\": \"C.1.C.2.00021\"}', 'SH2606170024', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (703, 1376, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 5940.000000, 85.860000, 510008.400000, 510008.400000, 25, '{\"出货量\": 5940.0, \"价税合计\": 510008.4, \"商品单价\": 85.86, \"成品名称\": \"单相有功电能表C8(VD)\", \"未税金额\": 510008.4, \"规格型号\": \"DDS1226-C8(VD)\", \"成品物料代码\": \"C.1.C.2.00021\"}', 'SH2606170024', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (704, 1377, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 3780.000000, 85.860000, 324550.800000, 324550.800000, 25, '{\"出货量\": 3780.0, \"价税合计\": 324550.8, \"商品单价\": 85.86, \"成品名称\": \"单相有功电能表C8(VD)\", \"未税金额\": 324550.8, \"规格型号\": \"DDS1226-C8(VD)\", \"成品物料代码\": \"C.1.C.2.00021\"}', 'SH2606230001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (705, 1378, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 1080.000000, 85.860000, 92728.800000, 92728.800000, 25, '{\"出货量\": 1080.0, \"价税合计\": 92728.8, \"商品单价\": 85.86, \"成品名称\": \"单相有功电能表C8(VD)\", \"未税金额\": 92728.8, \"规格型号\": \"DDS1226-C8(VD)\", \"成品物料代码\": \"C.1.C.2.00021\"}', 'SH2606230001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (706, 1379, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 2215.000000, 85.860000, 190179.900000, 190179.900000, 25, '{\"出货量\": 2215.0, \"价税合计\": 190179.9, \"商品单价\": 85.86, \"成品名称\": \"单相有功电能表C8(VD)\", \"未税金额\": 190179.9, \"规格型号\": \"DDS1226-C8(VD)\", \"成品物料代码\": \"C.1.C.2.00021\"}', 'SH2606230001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (707, 1380, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 2160.000000, 85.860000, 185457.600000, 185457.600000, 25, '{\"出货量\": 2160.0, \"价税合计\": 185457.6, \"商品单价\": 85.86, \"成品名称\": \"单相有功电能表C8(VD)\", \"未税金额\": 185457.6, \"规格型号\": \"DDS1226-C8(VD)\", \"成品物料代码\": \"C.1.C.2.00021\"}', 'SH2606230001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (708, 1381, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 505.000000, 85.860000, 43359.300000, 43359.300000, 25, '{\"出货量\": 505.0, \"价税合计\": 43359.3, \"商品单价\": 85.86, \"成品名称\": \"单相有功电能表C8(VD)\", \"未税金额\": 43359.3, \"规格型号\": \"DDS1226-C8(VD)\", \"成品物料代码\": \"C.1.C.2.00021\"}', 'SH2606230001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (709, 1382, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 1224.000000, 0.100000, 122.400000, 122.400000, 25, '{\"出货量\": 1224.0, \"价税合计\": 122.4, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 122.4, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2606290012', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (710, 1383, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 1260.000000, 218.700000, 275562.000000, 275562.000000, 25, '{\"出货量\": 1260.0, \"价税合计\": 275562.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 275562.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2606290005', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (711, 1384, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 8160.000000, 0.100000, 816.000000, 816.000000, 25, '{\"出货量\": 8160.0, \"价税合计\": 816.0, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 816.0, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2606290006', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (712, 1385, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 6720.000000, 218.700000, 1469664.000000, 1469664.000000, 25, '{\"出货量\": 6720.0, \"价税合计\": 1469664.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 1469664.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2606290005', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (713, 1386, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 1050.000000, 486.000000, 510300.000000, 510300.000000, 25, '{\"出货量\": 1050.0, \"价税合计\": 510300.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 510300.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2606290011', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (714, 1387, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 2652.000000, 0.100000, 265.200000, 265.200000, 25, '{\"出货量\": 2652.0, \"价税合计\": 265.2, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 265.2, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607020014', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (715, 1388, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 5100.000000, 0.100000, 510.000000, 510.000000, 25, '{\"出货量\": 5100.0, \"价税合计\": 510.0, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 510.0, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607020012', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (716, 1389, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 2100.000000, 218.700000, 459270.000000, 459270.000000, 25, '{\"出货量\": 2100.0, \"价税合计\": 459270.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 459270.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607020011', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (717, 1390, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 2940.000000, 218.700000, 642978.000000, 642978.000000, 25, '{\"出货量\": 2940.0, \"价税合计\": 642978.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 642978.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607020011', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (718, 1391, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 2520.000000, 486.000000, 1224720.000000, 1224720.000000, 25, '{\"出货量\": 2520.0, \"价税合计\": 1224720.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 1224720.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607020013', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (719, 1392, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 840.000000, 486.000000, 408240.000000, 408240.000000, 25, '{\"出货量\": 840.0, \"价税合计\": 408240.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 408240.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607130003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (720, 1393, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 3780.000000, 218.700000, 826686.000000, 826686.000000, 25, '{\"出货量\": 3780.0, \"价税合计\": 826686.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 826686.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607130001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (721, 1394, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 2940.000000, 218.700000, 642978.000000, 642978.000000, 25, '{\"出货量\": 2940.0, \"价税合计\": 642978.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 642978.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607130001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (722, 1395, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 4088.000000, 0.100000, 408.800000, 408.800000, 25, '{\"出货量\": 4088.0, \"价税合计\": 408.8, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 408.8, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607130002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (723, 1396, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 2652.000000, 0.100000, 265.200000, 265.200000, 25, '{\"出货量\": 2652.0, \"价税合计\": 265.2, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 265.2, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607130002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (724, 1397, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 816.000000, 0.100000, 81.600000, 81.600000, 25, '{\"出货量\": 816.0, \"价税合计\": 81.6, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 81.6, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607130004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (725, 1398, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 816.000000, 0.100000, 81.600000, 81.600000, 25, '{\"出货量\": 816.0, \"价税合计\": 81.6, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 81.6, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607130004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (726, 1399, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 260.000000, 218.700000, 56862.000000, 56862.000000, 25, '{\"出货量\": 260.0, \"价税合计\": 56862.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 56862.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607130001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (727, 1400, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 630.000000, 486.000000, 306180.000000, 306180.000000, 25, '{\"出货量\": 630.0, \"价税合计\": 306180.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 306180.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607130003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (728, 1401, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3360.000000, 481.950000, 1619352.000000, 1619352.000000, 25, '{\"出货量\": 3360.0, \"价税合计\": 1619352.0, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1619352.0, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2607140004', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (729, 1402, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 1680.000000, 486.000000, 816480.000000, 816480.000000, 25, '{\"出货量\": 1680.0, \"价税合计\": 816480.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 816480.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607140008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (730, 1403, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 2520.000000, 486.000000, 1224720.000000, 1224720.000000, 25, '{\"出货量\": 2520.0, \"价税合计\": 1224720.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 1224720.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607140008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (731, 1404, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 5100.000000, 0.100000, 510.000000, 510.000000, 25, '{\"出货量\": 5100.0, \"价税合计\": 510.0, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 510.0, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607140009', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (732, 1405, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 840.000000, 486.000000, 408240.000000, 408240.000000, 25, '{\"出货量\": 840.0, \"价税合计\": 408240.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 408240.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607140008', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (733, 1406, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3024.000000, 481.950000, 1457416.800000, 1457416.800000, 25, '{\"出货量\": 3024.0, \"价税合计\": 1457416.8, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 1457416.8, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2607160019', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (734, 1407, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 3852.000000, 0.100000, 385.200000, 385.200000, 25, '{\"出货量\": 3852.0, \"价税合计\": 385.2, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 385.2, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607160021', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (735, 1408, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 336.000000, 481.950000, 161935.200000, 161935.200000, 25, '{\"出货量\": 336.0, \"价税合计\": 161935.2, \"商品单价\": 481.95, \"成品名称\": \"三相四线多功能电能表CXVI(VA)-新\", \"未税金额\": 161935.2, \"规格型号\": \"DTSD1226-CXVI(VA)\", \"成品物料代码\": \"C.3.C.2.00025\"}', 'SH2607160019', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (736, 1409, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 1050.000000, 486.000000, 510300.000000, 510300.000000, 25, '{\"出货量\": 1050.0, \"价税合计\": 510300.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 510300.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607160020', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (737, 1410, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 210.000000, 486.000000, 102060.000000, 102060.000000, 25, '{\"出货量\": 210.0, \"价税合计\": 102060.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 102060.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607160020', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (738, 1411, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 210.000000, 486.000000, 102060.000000, 102060.000000, 25, '{\"出货量\": 210.0, \"价税合计\": 102060.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 102060.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607160020', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (739, 1412, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 2100.000000, 486.000000, 1020600.000000, 1020600.000000, 25, '{\"出货量\": 2100.0, \"价税合计\": 1020600.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 1020600.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607160020', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (740, 1413, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 210.000000, 486.000000, 102060.000000, 102060.000000, 25, '{\"出货量\": 210.0, \"价税合计\": 102060.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 102060.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607160020', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (741, 1414, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 600.000000, 486.000000, 291600.000000, 291600.000000, 25, '{\"出货量\": 600.0, \"价税合计\": 291600.0, \"商品单价\": 486.0, \"成品名称\": \"三相四线多功能电能表T46(VC)\", \"未税金额\": 291600.0, \"规格型号\": \"DTSD1226-T46(VC)\", \"成品物料代码\": \"C.3.T.0.00030\"}', 'SH2607160020', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (742, 1415, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 1260.000000, 218.700000, 275562.000000, 275562.000000, 25, '{\"出货量\": 1260.0, \"价税合计\": 275562.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 275562.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607220001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (743, 1416, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 10200.000000, 0.100000, 1020.000000, 1020.000000, 25, '{\"出货量\": 10200.0, \"价税合计\": 1020.0, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 1020.0, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2607220002', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (744, 1417, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 5880.000000, 218.700000, 1285956.000000, 1285956.000000, 25, '{\"出货量\": 5880.0, \"价税合计\": 1285956.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 1285956.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607220001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (745, 1418, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 2520.000000, 218.700000, 551124.000000, 551124.000000, 25, '{\"出货量\": 2520.0, \"价税合计\": 551124.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 551124.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607220001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (746, 1419, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 420.000000, 218.700000, 91854.000000, 91854.000000, 25, '{\"出货量\": 420.0, \"价税合计\": 91854.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 91854.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2607220001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (747, 1420, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 8160.000000, 0.100000, 816.000000, 816.000000, 25, '{\"出货量\": 8160.0, \"价税合计\": 816.0, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 816.0, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2608060003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (748, 1421, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 420.000000, 218.700000, 91854.000000, 91854.000000, 25, '{\"出货量\": 420.0, \"价税合计\": 91854.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 91854.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2608060001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (749, 1422, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 9500.000000, 218.700000, 2077650.000000, 2077650.000000, 25, '{\"出货量\": 9500.0, \"价税合计\": 2077650.0, \"商品单价\": 218.7, \"成品名称\": \"单相多功能电能表T49(VB)\", \"未税金额\": 2077650.0, \"规格型号\": \"DDSD1226-T49(VB)\", \"成品物料代码\": \"C.1.T.0.00032\"}', 'SH2608060001', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (750, 1423, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 1836.000000, 0.100000, 183.600000, 183.600000, 25, '{\"出货量\": 1836.0, \"价税合计\": 183.6, \"商品单价\": 0.1, \"成品名称\": \"MT-3NSXL(VC)RF通讯模块\", \"未税金额\": 183.6, \"规格型号\": \"MT-3NSXL(VC)\", \"成品物料代码\": \"C.4.T.0.00547\"}', 'SH2608060003', '0'); +INSERT INTO `tbl_headquarters_inbound_item` VALUES (751, 1721, '1PH-WS79', '1PH WS79', '1PH WS79', 10000.000000, 59.500000, NULL, 595000.000000, 25, '{\"出货量\": 10000, \"价税合计\": 595000.0, \"商品单价\": 59.5, \"成品名称\": \"1PH WS79\", \"规格型号\": \"1PH WS79\", \"成品物料代码\": \"1PH-WS79\"}', NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_in_out_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_in_out_item`; +CREATE TABLE `tbl_in_out_item` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '名称', + `type` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类型', + `remark` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用', + `sort` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '排序', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '收支项目' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_in_out_item +-- ---------------------------- +INSERT INTO `tbl_in_out_item` VALUES (21, '快递费', '支出', '', b'1', NULL, 63, '0'); +INSERT INTO `tbl_in_out_item` VALUES (22, '房租收入', '收入', '', b'1', NULL, 63, '0'); +INSERT INTO `tbl_in_out_item` VALUES (23, '利息收入', '收入', '收入', b'1', NULL, 63, '0'); +INSERT INTO `tbl_in_out_item` VALUES (24, '测试收支项目_UPD', '收入', NULL, b'1', NULL, NULL, '1'); + +-- ---------------------------- +-- Table structure for tbl_log +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_log`; +CREATE TABLE `tbl_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `user_id` bigint NULL DEFAULT NULL COMMENT '用户id', + `operation` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '操作模块名称', + `client_ip` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '客户端IP', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `status` tinyint NULL DEFAULT NULL COMMENT '操作状态 0==成功,1==失败', + `content` varchar(5000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '详情', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `request_url` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '请求URL', + `request_params` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '请求入参', + `response_params` longtext CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '请求出参', + PRIMARY KEY (`id`) USING BTREE, + INDEX `FKF2696AA13E226853`(`user_id`) USING BTREE, + INDEX `create_time`(`create_time`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10403 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '操作日志' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_log +-- ---------------------------- +INSERT INTO `tbl_log` VALUES (7915, 63, '功能', '10.20.120.47/10.20.120.47', '2026-09-18 11:12:04', 0, '修改零售出库', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7916, 63, '功能', '10.20.120.47/10.20.120.47', '2026-09-18 11:12:13', 0, '修改零售退货', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7917, 63, '关联关系', '10.20.120.47/10.20.120.47', '2026-09-18 11:12:26', 0, '修改', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7918, 63, '用户', '10.20.120.52/10.20.120.52', '2026-09-18 11:18:25', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7919, 63, '功能', '10.20.120.47/10.20.120.47', '2026-09-18 11:18:35', 0, '修改操作人员管理', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7920, 63, '用户', '10.20.120.47/10.20.120.47', '2026-09-18 11:23:21', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7921, 63, '用户', '10.20.120.47/10.20.120.47', '2026-09-18 11:30:59', 0, '删除[admin_backup]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7922, 63, '用户', '10.20.120.47/10.20.120.47', '2026-09-18 11:31:02', 0, '删除[test123]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7923, 63, '系统配置', '10.20.120.47/10.20.120.47', '2026-09-18 11:31:14', 0, '修改公司test', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7924, 63, '交货计划管理', '10.20.120.47/10.20.120.47', '2026-09-18 11:41:38', 0, '新增交货计划[JH00000001717]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7925, 63, '发货管理', '10.20.120.47/10.20.120.47', '2026-09-18 11:42:23', 0, '由交货计划生成发货通知[FHTZ00000001718]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7926, 63, '发货管理', '10.20.120.47/10.20.120.47', '2026-09-18 11:42:30', 0, '审批发货通知[FHTZ00000001718]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7927, 63, '发货管理', '10.20.120.47/10.20.120.47', '2026-09-18 11:42:37', 0, '确认发货[FHTZ00000001718]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7928, 63, '单据', '10.20.120.47/10.20.120.47', '2026-09-18 11:44:02', 0, '新增QGD00000001719', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7929, 63, '单据', '10.20.120.47/10.20.120.47', '2026-09-18 11:44:08', 0, '[审核]QGD00000001719', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7930, 63, '单据', '10.20.120.47/10.20.120.47', '2026-09-18 11:44:20', 0, '新增CGDD00000001720', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7931, 63, '单据', '10.20.120.47/10.20.120.47', '2026-09-18 11:44:31', 0, '[审核]CGDD00000001720', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7932, 63, '单据', '10.20.120.47/10.20.120.47', '2026-09-18 11:44:37', 0, '新增CGRK00000001721', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7933, 63, '单据', '10.20.120.47/10.20.120.47', '2026-09-18 11:44:46', 0, '[审核]CGRK00000001721', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7934, 63, '商品类型', '10.20.120.47/10.20.120.47', '2026-09-18 11:46:03', 0, '新增包装', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7935, 63, '商品', '10.20.120.47/10.20.120.47', '2026-09-18 11:46:34', 0, '新增MD-4G111(VF) 包装', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7936, 63, '商品', '10.20.120.47/10.20.120.47', '2026-09-18 11:46:46', 0, '修改MD-4G111(VF) 包装', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7937, 63, '商品', '10.20.120.47/10.20.120.47', '2026-09-18 11:47:34', 0, '新增MD-4G111(VF) 4G', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7938, 63, '资产盘点', '10.20.120.47/10.20.120.47', '2026-09-18 13:12:31', 0, '创建盘点单[PD20260918131230171]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7939, 63, '经手人', '10.20.120.47/10.20.120.47', '2026-09-18 13:35:25', 0, '新增Juwairiah', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7940, 63, '经手人', '10.20.120.47/10.20.120.47', '2026-09-18 13:38:15', 0, '新增Neezam', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7941, 63, '功能', '10.20.120.47/10.20.120.47', '2026-09-18 14:06:14', 0, '修改商品库存', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7942, 63, '单据', '10.20.120.52/10.20.120.52', '2026-09-18 14:10:36', 0, '新增XSDD00000001724', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7943, 63, '关联关系', '10.20.120.47/10.20.120.47', '2026-09-18 14:14:25', 0, '修改', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7944, 63, '角色', '10.20.120.47/10.20.120.47', '2026-09-18 14:16:00', 0, '新增system admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7945, 63, '用户', '156.248.10.92', '2026-09-18 11:01:25', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7946, 63, '用户', '183.156.212.255', '2026-09-18 11:03:57', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7947, 63, '用户', '58.217.176.253/115.227.205.165', '2026-09-18 11:20:07', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7948, 63, '用户', '58.217.176.253/115.227.205.165', '2026-09-18 11:29:51', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7949, 63, '用户', '58.217.176.109/183.128.95.60', '2026-09-18 11:52:23', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7950, 63, '单据', '60.28.220.144/115.227.205.165', '2026-09-18 12:01:23', 0, '新增XSDD00000001726', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7951, 63, '单据', '43.174.54.14/115.227.205.165', '2026-09-18 12:02:34', 0, '[审核]XSDD00000001726', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7952, 63, '单据', '43.152.142.118/115.227.205.165', '2026-09-18 12:03:04', 0, '新增XSCK00000001728', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7953, 63, '单据', '43.152.142.140/115.227.205.165', '2026-09-18 12:08:14', 0, '[审核]SM2609180001', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7954, 63, '生产方案', '36.150.72.130/115.227.205.165', '2026-09-18 12:14:19', 0, '新增BOM00000001735', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7955, 63, '生产工单', '43.152.142.57/115.227.205.165', '2026-09-18 12:20:19', 0, '新增GD20260918122018493', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7956, 63, '生产领料', '43.174.32.34/115.227.205.165', '2026-09-18 12:23:29', 0, '新增LL20260918122329111', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7957, 63, '单据', '43.152.142.64/115.227.205.165', '2026-09-18 12:28:04', 0, '新增QGD00000001738', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7958, 63, '单据', '43.174.54.14/115.227.205.165', '2026-09-18 12:28:09', 0, '[审核]QGD00000001738', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7959, 63, '单据', '43.174.32.34/115.227.205.165', '2026-09-18 12:28:33', 0, '新增CGDD00000001739', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7960, 63, '单据', '43.152.142.139/115.227.205.165', '2026-09-18 12:28:40', 0, '[审核]CGDD00000001739', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7961, 63, '单据', '43.174.53.17/115.227.205.165', '2026-09-18 12:29:02', 0, '新增CGRK00000001740', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7962, 63, '单据', '43.168.12.87/115.227.205.165', '2026-09-18 12:30:10', 0, '[审核]CGRK00000001740', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7963, 63, '生产领料', '43.152.142.133/183.128.95.60', '2026-09-18 12:31:57', 0, '新增LL20260918123156921', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7964, 63, '单据', '36.150.72.101/115.227.205.165', '2026-09-18 12:33:02', 0, '[审核]XSCK00000001728', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7965, 63, '交货计划管理', '36.150.72.101/115.227.205.165', '2026-09-18 12:33:05', 0, '新增交货计划[JH00000001741]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7966, 63, '发货管理', '36.150.72.82/115.227.205.165', '2026-09-18 12:36:28', 0, '由交货计划生成发货通知[FHTZ00000001742]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7967, 63, '发货管理', '36.249.95.13/115.227.205.165', '2026-09-18 12:37:27', 0, '审批发货通知[FHTZ00000001742]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7968, 63, '发货管理', '36.249.95.13/115.227.205.165', '2026-09-18 12:38:02', 0, '确认发货[FHTZ00000001742]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7969, 63, '用户', '58.220.53.57/115.206.4.170', '2026-09-18 13:13:36', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7970, 63, '用户', '58.220.53.157/115.206.4.170', '2026-09-18 13:13:51', 0, '删除[reallin]', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7971, 63, '用户', '43.174.53.48/125.122.178.8', '2026-09-18 13:16:17', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7972, 63, '用户', '117.85.66.39/183.156.212.255', '2026-09-18 13:17:01', 0, '修改63', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7973, 63, '用户', '183.131.72.203/125.122.178.8', '2026-09-18 13:22:41', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7974, 63, '用户', '183.131.72.177/125.122.178.8', '2026-09-18 13:23:51', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7975, 63, '用户', '43.152.142.40/1.9.116.218', '2026-09-23 13:17:51', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7976, NULL, '接口日志', '117.85.65.182/183.158.161.24', '2026-09-24 13:38:07', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (7977, NULL, '接口日志', '117.85.66.39/183.158.161.24', '2026-09-24 13:38:08', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (7978, NULL, '接口日志', '117.40.82.179/183.158.161.24', '2026-09-24 13:38:25', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (7979, NULL, '接口日志', '117.85.65.182/183.158.161.24', '2026-09-24 13:38:25', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3qeTyQJHbZCvLt6dhnjpzknIxj0zTVYpeNFsmYSDzPMOCi4wNo7j1x9amZlRSzEKoGSScACuA0v4saFf+Nf8AhG7qLUtKv/8AVLFqEUao8nBUK6u2SwPyn7rDGDkjIB3EU/m25mihl3HBMcoKN0GQM+34Z79TT2kkUyfuGYLjZsYfNn6kYI/ljnsOGsPitoOveM18OaLb6pqM8Uh33VpHGbbaBhnZy4OxS3XHJA27sjPbxxzxS7QyPB2yW3r9SSd2T9Me9AEP9pxfbfICOybvLEqKWHmd0OOmBg56dfSpoJJnEYmTY4iVpAF43HsDntg+vUc18u/EeDQ7n4/6pF4kuri10kiMzy2wzIMWiFQvyt1YKOnft1r074TeGvAlhqV7rfg/Wb/UmCfYpVmYfu1cq4YoY0YZKYB5HB9DgA9VdnhZnJeRGZQqKnK5IB/Dofbn2AmrK1fVU0jRNR1pQ88NnFJNLEp5IjB37c9D8v049815dF+0V4T8hfMsde88xhXdYYcZA6gGTHUnt6UAevyQytOJUnKgIRsIyuex/wA+gwRzlFD2yEuzyhmXhVyVJOCRz93nOOwz2wBzHgrxzpPi7QbvWrQXsFtbSmCT7aADkDduG0kchxwPYYxjPSSXsVva3F1LcweRbLI0zbgoQLzyxbC4HXP14oAlP+kxyJ+9iZW25HBBHIIPQjoe47HuKCSJYIvOO7BYgrkuAMH2HLKa8tvv2hvBVpeSQQxarexrjE8FuoR8gHgO6tx05A6enNeheGddsvE3h+11rTpppLS8BdPOQKyYJUoQB/CwI79OCRg0AaUdxDKFMc0bhwSu1gcgHBI+hIqSqV5bu8agwpeL5u5o5lXIXBHy8AZGe/bPNXaAGqZPMcMqhBjaQ2SfXIxx+ZrwD46NZ3nifw9pXh2OSTxPal3Js3xJbx8OgYgZGMM6/MAignGGBHu9xM0NvN5+PuuVZdyjaBnkgHae2fbI9Bzuk/Dvwzo2qSa3pulm31eVH/0q4nkuJEd/vN87sN3JyRyckZwTkGcD+z7c6da6HqejrAtv4hivGa/guDsmMYwoIGwHCnK7CThiSSN4FexwxyLcTO6QgNjDoMM3X730GB+fTOByEPw88MS+MJfEVtaNDqUN15zXNvcSIXlPLAgMFwQcMNvOeSSWFdTBJlXjtYSgEzHdJyrfvP3hGCcHlsZx+VAjh2vPhhe6vqMmqXHhq41FJzBeyaokaTGeNVjOBKPu4UD5flyDjJJryzwrNp8f7Rk58MTQ2ukOJ1ZrNybdR5B3dcAp52CB93O3bxtr2PVvhn4K8Raqb3UfDkP2t1LTNHM0LElidzLEwDMxLHcck45PpqeGfCeheHLeWDR9Lhs4m2LIgRiWdGZgS7/M+C/BPTHHoADauLi3htbiW5lEMEKEyyyN5aooGS244wAO+ePwr5a8R+L734weMINNl1Sz0Pw9A5eM3s6xKiA48xwWw8pBwFB4zgYG5j9NalpVhfWk0F9bobR7dreQKSN0bgqynHKjB6ggjnoM541fgt8PJdjw6DG8Rzki+uD+IIk9eMf4cgG34K03w9Z+G7bTdBvINQ06w8yFJ4blZgxc7nVypwW+bJGMcggDoMf4q22pXPw88SrYm6MkduHDhljAjDK0wDAgspjyCCDnaRyeK29G8OaH4Psp9M0rTDHaPIblYEaSQu5TYwzISCdq9M9M8cZO5apPFbeXsGEQeXvYAnjowVcLjpxmiw9jxH4I+IfBmn+FlhubnS9O1OKRmvZb6VI3nYsTGUL9VVcDg8ENlfmDH1rQrixm0iXUtIuIry1lmmZTahhFI/mMHYAlv4w5yvDZJAbiuYufhZ4G1O9uLm48L2KzFlQLZ3skaMwHzKEQqqsAucYGc5J6muysNI0vQ9HtNJsbTyLGBlWGGNWYKd24Enk/e5JPfqeaBEkL2qWKNNcQERkStIJBhSxyDu46568A56AHFX6QKqliFALHJIHU9P6CloAjlginCCVA2xw657MOhFSUUUAFIFVSxCgFjliB1OMf0FFFAC0iqqDCqFGScAY5Jyf1oooANqlg20bgCAccgH/9QpaKKAIxBEAw2Daz7yDyN2c5A7cjP1561JRRQAzyoyu3y127t2McZznP1zz9afRRQAUUUUAf/9k=\",\"uuid\":\"739ca04295db406a9b2dd23e4793893f\"}}'); +INSERT INTO `tbl_log` VALUES (7980, NULL, '接口日志', '117.40.82.179/183.158.161.24', '2026-09-24 13:38:49', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (7981, NULL, '接口日志', '117.85.66.39/183.158.161.24', '2026-09-24 13:38:50', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (7982, NULL, '接口日志', '111.4.224.45/183.158.161.24', '2026-09-24 13:39:08', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (7983, NULL, '接口日志', '111.4.225.159/183.158.161.24', '2026-09-24 13:39:08', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (7984, NULL, '接口日志', '111.4.225.53/183.158.161.24', '2026-09-24 13:39:10', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3pZJSV3Q7QWYH5gcAH5T9CB9Rke+GLdCeJja7JJFx8rkp+fBI7jp1BHY0SpCVf7TsUzjySC/3hk4Hbkgnp696+Ym+MUsfxYPiCC91t/Dm7cNNlnOMGHaR5YfYPnyRz6HrQB9N3Er+dHFF5hYHe4TH3cHglhjkgDGQe+eDUwl8xZPLU7lJXDqVBI9yOnuM1y+heJLDxRoVhrumWt2LeRpZVtpCom2h2DOFDn+NSOvRmGOa6W5llhjaRI43VUZm3SbOgyO2PxJGKLAPWXJw6mMliqhiPm4zkYP19+KjJlkuJIThYwoZWRvmBz1x+B9uO+SB5z4j+NfhLwz4gudLure9u7u2fEr2SRyRo4yMZZ1+cA4bA4OVzxXnekavpfij9qGHUtNn+02Fxu8uXYyZ22RUkBgGBDKeeOmRQB9DTuXvFjiEhniXzAC5WNgcrhiAfryPp3pXuJ/JRvLWOXdlomO5jGGwSMHrgg8Z9OaEtXjnuG8wulwwLAsVKDbjjH0Hofc4FfPHxq8DPpWlP4p1DV76+1C81VoY4ZXzFbW7CSQRLkkkKQcHKjB+6DQB9HM6wBQRId74GFZ+T69cD9BSTGVNrxjeo+8gUbm9MEkAVgeBcS/Dvww0bg7dMteQcjiJQRwfqPY/SpfEep2/h3Rb3Wbi11SaCxIndbRy7OCRuIUvjao5OcAAMRQBtJcxSOEV8sd+Bg/wna35E0k7yB4ljByzcnGVx3B7jjOD0yBk84PF2fxO0PU/As/jGOW6t9NsmKXURiBmEoKhYwOVIbevII+8MlcNh2n/ABU0DUPAmoeMFjvI9NsZfJkjaMedu+QAYBxkl1x82OeSOcAHbOzhkCpuBbDHONoweffnA/GnVzfhHxjB4z8OtrWnadewwec0UaXaqhlC4yyEEgjkjrjcpGeM10lAFTzLv7WqukQiLfKEkyxUBslgR67OB0J64r52v9WttN/ail1K9vktrWKTc08gVV2/ZMAcnGGyFB9wa+jUWKC4bdt82c5DbMFsDoT3I5x7D2JrlfE/gLw54r1m2n1vTY5kt4tof5os7mb5d6OpPzHOCDg9MbjkGdJpd3bX9kLy0vLS8hmYlbi0IKPj5TyCQSCuOvbHapkDxzy+ZIpSVgYwW5B28qB/wHP4njjJqaDotl4d0eLSdNtVtbG3ZvJiWVpMBmLEktzklicZNWJp7WRQ7COZIpcMwwwhYdz6Y/TOTgZNAj58+B+qaX4Z8T+KrfxTfWdjrAZY/NvZlDEq7iZRKTgndsJG75sZ5xkR6FeaZf8A7U6XOjzwz2TyS4mhUBZHFowkYYABy4YlhwxJIznNex+I/hr4R8Tai+qaroUd1fFFRpFnkhLgdM7GAJxwCfQDOAMSWnw48Kab4lg8Qado8FlqETEhoCyJgxlCBGCEHB7L79TmgDoyZmmTMShFZst5pHGOCABz15Bxg+vBrxL4+a/puo+BrTT49S0+XU7fVVFxa290kjx7UlUkqDkDOOo4zg817cMXCpKjzR8EDKlT6cqw/EcfoTngJvhH4M1HU7u4udCjup3uC9xO+oXKszvh2O0HH8XHP1Oc0AaHw+1jStR8I+H7LT9cs5b+DSrUT2sNwkjoFVA25M5UgkqTxjdz0GOj1rTYNW0m/srpZRFc20tqzQH5xHIoDEAjGe/Q9O+cVznhfwH4d8L6m95omkLZXUyeWZY7p5gsJKsQwdz95kOCBnGOnNdXdRm5MaxiCTy5R5iyEnAKkHgd8N0PHNAz5Bsb7W7Twzq/w7Vwt7ea1bw/YcIS0gLrIN+MD94luM7h044LVc8UXt34RsfGHgYE2cE2sQzQ2SkSqLfDvw5yeQLU8kN8vP8AEK+hJPhb4Uj8RLrlvoUZ1D7T9rExupgFmD7923ftwT2AwDjgjoeIPhn4N17WLzW9V0lry7kVRMI55txZVULhUcAHbgYx6HjkkEW/h9ol34Y8CaXpUkD74LZJGjdhvEj5eVSRxkOzADGMY5PJHW1Ckx8wLKEjLjMal8seMnI9vYmpqAEdFkRkdQysMFSMgj0piQRJAkKoPLjChVPOMdOvpgUUUASUjKrqVYBlIwQRkEUUUALTPLTzvNx8+3aSD1Hv6/0yfU0UUAK0UbSJIyKXTO1iOVz1we1OoooARVCqFUAKBgAdBTJYY5gokQNtYOuexHINFFAElIEUOXCjcQAWxyQOn8z+dFFAC0UUUAf/2Q==\",\"uuid\":\"f058e48420734be8a155574d65fd7501\"}}'); +INSERT INTO `tbl_log` VALUES (7985, NULL, '接口日志', '111.4.225.174/183.158.161.24', '2026-09-24 13:39:10', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (7986, NULL, '接口日志', '117.40.82.179/183.158.161.24', '2026-09-24 13:39:15', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"td1w\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"f058e48420734be8a155574d65fd7501\"}}', '{\"code\":200,\"data\":{\"msgTip\":\"user password error\"}}'); +INSERT INTO `tbl_log` VALUES (7987, NULL, '接口日志', '111.4.224.162/183.158.161.24', '2026-09-24 13:39:15', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3geZHctnc0cpG3HOw4Oc+i8D8SakkiWXbuLjawYbXK8j1weR7HiobrzUR5Vn8uMAFvl5UDJYg4POMdj098jhNZ+M/hfw/4qm8P6rFqVtPCVEs5gDRJuQOPusWPUDhTz0yOaAPQmYiRFEbMGzlhjC/XnP5Uz7TCIWmMqrGrFSzHaAQdp6+4xXmPh74w+FPF3iaPTIX1LTp7iMpBJdhUDSEgbFIdgCQBgHgkcYbG70r7RDuM32k7AoBj44JOAcY3ZyCMeoxjNAE5fEiptbkE7scDGOP1/Q1VW3uzcmdrraPu+Uq5QqGbk55yVI6Y5HccV534k+MXg7wlrV1pGNQubyPAuJ7GOOXa4J+RnkYbmHQ9cZxkEEDz3SNbsvEf7UMOraJcLcWs+7ypGRkD7bIqwwwBHKkZx74NAH0WVuIzCEfzUDES7wN5B6EYwOPp09+rESWO7G6SSXfvJJ4VFyMAAcZ578nnnjFNktreEStK2IZH8yQySkDOAuD6qQOh49vTwX4u+JdR8V6rfeDdBxHp+iW8t3qTxSho5RGoYKQoyNhwuOm88gbN1AH0FCFCErKZOcMxbOSOD04HTkDHOaihjSNTO0zzOF2uysxBI4OEBwDkdhXk37OpT/hXOoh22q2qyLndt6xQgYPrzXb/EbXJvC3w+1vV7NMXSRBY2UhSryMsav0OSu4HHfbjigDqcl4sxnaWXKllPHpkcH8OKrWc2XeKaT/AEogNJHnKqQADt9uhx1G4ZxkV4B4P+D9v8QvBcPifV/EOpvq9+0mJZCJQoQmNQ275nPyZzuHGBgYzXV/Brx5N4p8M3mn675tzd2WIJLwqMyQMjlA7Z3Mw2SDOOmDkkk0AevANvJJG3AwMc55zz+VLVNEiRlSYSEGXEKzEPhgCcg8nsepzx2q5QBDBMJXlGJgVbBEkZUenBxgjjPfrXztrV9pem/tVG71mSCKxjliLSTrlEc2iiNj6Ycqdx+7jORjNfQr3bR3ywNbyeWy8SqrMN2RwcDAHPUnsfYnwzVvDV3d/tKvfX/h6W80WVlUyXNqTbSkWYAG5hsJ3DABP3gBxQBmfGzU9I1rxH4Ug8H3lnc6sjOqyabIpZWZ08kCROAd+8gZyCc8bsn6K2ecWLeW8DrtxksHXHX0HVvXPHPauV0T4Y+CvD2pm80vRoorxY9u5p5JCqt1wHY4zgjPcbh0JFdM9pFEPMhKWxSNlDKi4A688dAecZFAHz38FdX0vwz4p8WDxbqFvZ60pCNNezAsxV388eYSQzFthIyS2MjODVfTJ9M1b9p4yaFdRizleZUuLYcM4tGDsD/FlwxLfxZJB5zXs2u/DDwf4iv/AO0NT0Vbm8KqjSm5lRnUHqxVhuIHAJ5wAM4Awum+AfCOn+MJNZsNEitNTt1Uo8BeONQyMhKxghMkZBwCO/XNAGv4gbULLwlqkmltLJfwafMbbCebI0wjOwgc7jkdMHJNfOGjajrfhzwb4iguvh7rlzf6rBcC+1q7835Mq6lsGLgKGYsS2SS2TjAH1GyoknnFTvICZUE5BPGQP59sn3qtfafZ6vYXFncDzLW4WSKdEcqJFKlGUkc9CR1yCB6UAeAfArxHqlrZJoNv4avbuyuNReZ9UjkkSGB/KX5H2oR/COrfxDj19q12HRNW8J3E2qxJLovkNJe+bv3eTGrN/D8xKkZ79MjnBqbQPDGieDNNmtdC0421vJL50iI7yMWwATliTwAOB+AyedW8hW5tJbeSCKaKZTHJHKoZWVhg5U8MOeR3GaLgfOF/4S8OeGtH1BrL4uF9FLs8ukWFwpkuUYhTHhJCGcrhdxTHcgKDjqv2b9EmtPDWr6zL5ipf3CRRI0ZUFYgfnVv4gWkZeBwUPPp1lp8GPAVpLBN/wjivKjh8PdSyICDnBVmwy9sEHI6jrXWmFbHT7Wxt4rUvBGiRbkCRxkDCfKo+UZGABgcYB6UAWrWSE7YIrozNDGobLBiQR8rMfUgZ/H6VZqi9o0NzbyQmZ41cjylZQsakHPUZK5x8ufTA4Aq9QAyWKOeMxyxrIh6q4yD+FOZFcYZQwyDgjPIOR+tFFAAUUuHKjcAQGxyAev8AIflUD2NrJAsLwqyJGY1z1VSMEA9RxxRRQBYpHRZEZHUMrDBUjII9KKKABFCIqDJCjAyST+Z5NIqKgwihRknAGOSck/nRRQA6iiigApGVWGGAIyDyO45FFFAC0UUUAf/Z\",\"uuid\":\"ea0117b8eb104071a9d326c7afa88d51\"}}'); +INSERT INTO `tbl_log` VALUES (7988, NULL, '接口日志', '117.85.64.159/183.158.161.24', '2026-09-24 13:39:34', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"pd49\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"ea0117b8eb104071a9d326c7afa88d51\"}}', '{\"code\":200,\"data\":{\"msgTip\":\"user password error\"}}'); +INSERT INTO `tbl_log` VALUES (7989, NULL, '接口日志', '111.4.225.185/183.158.161.24', '2026-09-24 13:39:34', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD34Bt5JI24GBjnPOefyqtK1xI0v2SWNXjO0rKmVJwCMEEEdR6/T1nliSaMxyDKn3x9CD2PvXmPiv4M+Ftf1K51/ULvVbaaVIw0UU0YRNqLGo/1bHooycnnNAHo808McjC5uIo0TbIv73YQOnzc8jP4HOMccyQQyRsWknMpKheRjoTzjpkgjOMdPwHyt4N8KWGp/HKKx8NXM8ukaTdi6N1O0cjMkLLlgVIDK0mFUj+FwccGvqWbEIjlZ7Zbg4j3uu3ef7oOcjJ+v0NAFiQSGMiJlV+xZdw/LI/nTZ5Y4YHeWZYUA5kYgBc8dTxXmN/8cPB8N/q2j6rb6hbzWLTRMHt0kWWSNiuxME/MSMjcAvHJrS8H/F3w9431waXpxubS4EbSCK+iRTOB1EZVzyOpGM4yexwAd2jSZiUxtgplmYjIPHBA4ycnpxxTBMZvsskAdoZPnLgDG3bxnJBGcjoD05xUcunxSTA+WpifJljyQrHIYNjoTkfiD7Yrxn9nmHS4pfEX9kX15dRlbfzvtdmtuVP7zbt2yvkfeznGMDrk4APYy9y8zpHNuUNh1BQSRAn5SByCDz1wduO4ObaANhS0jNEcFjldxx14wD1+mfccMnM4khMUkKx7sS+YpJI7bTnrnjn19sGC61S2srCfUbiXy7C3tmuZZTGx+QAsSMc8AEkYzyKAJVkkWdLfcHYDc7kdV5A6dDnHXAPOOhw4iZbtTuZoWByu0YU8ck5zjj0PU+1eSS/tCeD4J5YFttZuEizHFdR28eXHTcN7g84B5A9wMV6joOt2HiLRbbVdMuRc2k4bZMI2jDFWKt8rDI5U9aAL7+ZuTZt27vnz1xg9PfOP1p1RQxyRhg8u8FmYZHIyxOOvQAgfh+UtAEM3lxMJ9kfmErHvPBwWAxnHv09fTrXD/EfxsfCXg+/vIX8y6dvJtDJHgrK4yh5BBKbXbDAZ8vBION3dSTwxMqySojMCVDMASAMnH0rn/EfhfRvGUaW2tWUl3bW7nyYjLPCvm4OWbaQCMYAbnGWx15APP/gV4Ov9J8Gy6w1y9pNrDiQIY8nyUDCM4YDGSzN3DKUwRzXrpghWYPsO9pN+Rk/Ns25Pp8ox6fjWZb6bFoumLp1rJPHaRQRwxYUHy1UeWCW6naNhyTnC9TzV66E7p5lsTIhjJCrKFyw5Uqdpzk8cnGOxoC586+BdS0XRP2gvEs2rXNlZwi4vo7eW5AVEk87sx4Q7A4yccEr/ABVP4r1DTdT/AGgfDs/hW+gZYlg+13NjIADtZ2k+fo+IcLgZyBswcbaveEPA7al8ZvGA8SeHJpNKuxfNBJeWrLG5a4XDRuQMNtJwynODkGvV9B+Hvhbwncy3OhaalldzL5fmmeVyQOdvzP0yMkDGcDPSgDYju5YEDuXuYJJ1RZTtUoG+XBGByH4Ixxn2Irw/9mnzP+Km8vb9603Bu4/fZx79/wAMcZyPd4ZEMP2Qs7zRKscgDndnAyd3GcAgkjnn14rF8N+BvDvgs3MuhWctp5+DOBNJL5gXdtGGJ6bjjHP17gG4skothneZCzJuaPgHJAO0HO3OMe2Mnqa5X4g67feGfA+q6tNZWd9EkJiNrIMxt5jIi7wfvKNzAgY3DHTOR1U0ck5tp4JGQowYq24BlIwQR645GRwRTXsrV4pIbsLcC5j8iQThSJk+Y7SuMEYZuMcjrQB8y6v4w8X+JfBN5qGp+NfDKafeLJu0Vkja4ADkKix+UzA5AKsWyPlYsOtegfs7vH/wry+ilTdHLqsqkkArzFDwfr+XbuM9XD8IPAljHcG28MQSvNE0JWaeSQANjkF2Ow/7S/MOcVu+FfDOleE9MfTtJsRZxNJ58qLI8itIVUEqzknHygY9unPIBoQhIUa0iljiYORGEjIVejbeTg8HtjjOMY4u1E7ziVVSJWQ4y5fGPXjHXpj8enGZaACiiigAooooAKQqCQSASpyMjoaKKAFqMQRrM0yoBIwwzDjd9fXp36UUUASUjKrjDKGGQcEZ5ByP1oooAWiiigAooooA/9k=\",\"uuid\":\"e0f595523ddb4d7a8c3020f59312ccaa\"}}'); +INSERT INTO `tbl_log` VALUES (7990, 63, '用户', '117.85.66.39/183.158.161.24', '2026-09-24 13:39:54', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (7991, NULL, '接口日志', '117.85.66.39/183.158.161.24', '2026-09-24 13:39:54', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"7pia\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"e0f595523ddb4d7a8c3020f59312ccaa\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (7992, 63, '接口日志', '111.4.224.45/183.158.161.24', '2026-09-24 13:39:55', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (7993, 63, '接口日志', '117.85.65.182/183.158.161.24', '2026-09-24 13:39:56', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (7994, 63, '接口日志', '111.4.225.174/183.158.161.24', '2026-09-24 13:39:56', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (7995, 63, '接口日志', '111.4.225.159/183.158.161.24', '2026-09-24 13:39:56', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (7996, 63, '接口日志', '111.4.225.16/183.158.161.24', '2026-09-24 13:39:57', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (7997, 63, '接口日志', '111.4.224.148/183.158.161.24', '2026-09-24 13:39:57', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (7998, 63, '接口日志', '111.4.224.18/183.158.161.24', '2026-09-24 13:40:05', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":8,\"rows\":[{\"assetCategory\":\"工装设备\",\"assetCode\":\"FA-TOOL-2025-008\",\"assetName\":\"全自动钢网清洗机\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":8,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"originalValue\":78000.000000,\"purchaseDate\":1739131200000,\"quantity\":1.000000,\"remark\":\"用于钢网水基闭环清洗与烘干\",\"source\":\"DEMO\",\"specification\":\"SAWA SC-A1000\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCategory\":\"物流设备\",\"assetCode\":\"FA-WH-2024-007\",\"assetName\":\"电动平衡重式叉车\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":7,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"originalValue\":145000.000000,\"purchaseDate\":1721592000000,\"quantity\":1.000000,\"remark\":\"额定载荷 2.0 吨,持证人员操作\",\"source\":\"DEMO\",\"specification\":\"Toyota 8FBE20\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetCategory\":\"IT设备\",\"assetCode\":\"FA-IT-2025-006\",\"assetName\":\"MES 数据库服务器\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":6,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03 机柜\",\"originalValue\":168000.000000,\"purchaseDate\":1736884800000,\"quantity\":1.000000,\"remark\":\"双机热备主节点,纳入信息安全资产清单\",\"source\":\"DEMO\",\"specification\":\"Dell PowerEdge R760\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetCategory\":\"动力设备\",\"assetCode\":\"FA-UTIL-2023-005\",\"assetName\":\"螺杆式空气压缩机\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":5,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"originalValue\":186000.000000,\"purchaseDate\":1700424000000,\"quantity\":1.000000,\"remark\":\"为 SMT 车间提供稳定压缩空气\",\"source\":\"DEMO\",\"specification\":\"Atlas Copco GA22 VSD+\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetCategory\":\"检测设备\",\"assetCode\":\"FA-QC-2024-004\",\"assetName\":\"在线 3D SPI 检测系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":4,\"keeper\":\"陈晨\",\"location\":\"一车间 印刷检测区\",\"originalValue\":1120000.000000,\"purchaseDate\":1712347200000,\"quantity\":1.000000,\"remark\":\"用于锡膏体积、高度及偏移检测\",\"source\":\"DEMO\",\"specification\":\"Koh Young KY8030-3\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCategory\":\"检测设备\",\"assetCode\":\"FA-QC-2024-003\",\"assetName\":\"在线 3D AOI 检测系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":3,\"keeper\":\"陈晨\",\"location\":\"一车间 AOI 检测区\",\"originalValue\":1350000.000000,\"purchaseDate\":1712347200000,\"quantity\":1.000000,\"remark\":\"用于焊后外观与三维缺陷检测\",\"source\":\"DEMO\",\"specification\":\"Koh Young Zenith 2\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCategory\":\"生产设备\",\"assetCode\":\"FA-SMT-2024-002\",\"assetName\":\"十温区氮气回流焊系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线\",\"originalValue\":980000.000000,\"purchaseDate\":1710705600000,\"quantity\":1.000000,\"remark\":\"炉温曲线纳入工艺受控文件\",\"source\":\"DEMO\",\"specification\":\"HELLER 1936MK7\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCategory\":\"生产设备\",\"assetCode\":\"FA-SMT-2024-001\",\"assetName\":\"SMT 高速贴片生产线\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":1,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线\",\"originalValue\":2850000.000000,\"purchaseDate\":1710705600000,\"quantity\":1.000000,\"remark\":\"关键设备,按月盘点并执行点检保养\",\"source\":\"DEMO\",\"specification\":\"Panasonic NPM-D3A 双轨配置\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (7999, 63, '接口日志', '111.4.225.53/183.158.161.24', '2026-09-24 13:40:07', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetCode\":\"FA-TOOL-2025-008\",\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-WH-2024-007\",\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetCode\":\"FA-IT-2025-006\",\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetCode\":\"FA-UTIL-2023-005\",\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetCode\":\"FA-QC-2024-004\",\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCode\":\"FA-QC-2024-003\",\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCode\":\"FA-SMT-2024-002\",\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8000, 63, '接口日志', '111.4.224.18/183.158.161.24', '2026-09-24 13:40:09', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789723142000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8001, 63, '接口日志', '111.4.224.162/183.158.161.24', '2026-09-24 13:40:10', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8002, 63, '接口日志', '111.4.224.45/183.158.161.24', '2026-09-24 13:40:15', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8003, 63, '接口日志', '111.4.224.162/183.158.161.24', '2026-09-24 13:40:15', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8004, 63, '接口日志', '111.4.225.159/183.158.161.24', '2026-09-24 13:40:15', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8005, 63, '接口日志', '111.4.224.148/183.158.161.24', '2026-09-24 13:40:15', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8006, 63, '接口日志', '111.4.225.159/183.158.161.24', '2026-09-24 13:40:15', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8007, 63, '接口日志', '111.4.224.162/183.158.161.24', '2026-09-24 13:40:15', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8008, 63, '接口日志', '111.4.225.185/183.158.161.24', '2026-09-24 13:40:15', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8009, 63, '接口日志', '111.4.225.159/183.158.161.24', '2026-09-24 13:40:15', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-24\\\",\\\"endTime\\\":\\\"2026-09-24\\\",\\\"createTimeRange\\\":[\\\"2026-06-23T16:00:00.000Z\\\",\\\"2026-09-23T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":8,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782331200000,\"creator\":63,\"debt\":1402126.000000,\"defaultNumber\":\"XSDD-42260527-3PH-APEC3-WC-OV\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1402126.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1689,\"lastDebt\":1402126.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3749.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD-42260527-3PH-APEC3-WC-OV\",\"operTime\":1782331200000,\"operTimeStr\":\"2026-06-25 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42260527\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":1402126.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782331200000,\"creator\":63,\"debt\":194040.000000,\"defaultNumber\":\"XSDD-42303565-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":194040.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1600,\"lastDebt\":194040.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2400.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303565-1PH-WS79-ADD1\",\"operTime\":1782331200000,\"operTimeStr\":\"2026-06-25 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303565\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":194040.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782676800000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303412-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1565,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303412-1PH-WS79-ADD1\",\"operTime\":1782676800000,\"operTimeStr\":\"2026-06-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303412\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8010, 63, '接口日志', '117.40.82.179/183.158.161.24', '2026-09-24 13:40:16', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8011, 63, '接口日志', '111.4.224.45/183.158.161.24', '2026-09-24 13:40:16', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8012, 63, '接口日志', '111.4.225.185/183.158.161.24', '2026-09-24 13:40:16', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8013, 63, '接口日志', '111.4.224.18/183.158.161.24', '2026-09-24 13:40:16', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8014, 63, '接口日志', '111.4.225.185/183.158.161.24', '2026-09-24 13:40:17', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8015, 63, '接口日志', '111.4.225.151/183.158.161.24', '2026-09-24 13:40:17', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8016, 63, '接口日志', '111.4.225.16/183.158.161.24', '2026-09-24 13:40:17', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-24\\\",\\\"endTime\\\":\\\"2026-09-24\\\",\\\"createTimeRange\\\":[\\\"2026-06-23T16:00:00.000Z\\\",\\\"2026-09-23T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":65,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8017, 63, '接口日志', '111.4.224.148/183.158.161.24', '2026-09-24 13:40:17', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8018, 63, '接口日志', '111.4.225.53/183.158.161.24', '2026-09-24 13:40:17', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8019, 63, '接口日志', '111.4.224.162/183.158.161.24', '2026-09-24 13:40:18', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8020, 63, '接口日志', '111.4.225.151/183.158.161.24', '2026-09-24 13:40:18', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8021, 63, '接口日志', '111.4.225.16/183.158.161.24', '2026-09-24 13:40:21', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8022, 63, '接口日志', '111.4.224.45/183.158.161.24', '2026-09-24 13:40:22', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8023, 63, '接口日志', '111.4.225.53/183.158.161.24', '2026-09-24 13:40:22', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"orderNumber\\\":\\\"\\\",\\\"sourceNumber\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8024, 63, '接口日志', '111.4.224.45/183.158.161.24', '2026-09-24 13:40:23', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8025, 63, '接口日志', '111.4.224.18/183.158.161.24', '2026-09-24 13:40:23', 0, 'ProductionRequisitionController.getList(..)', NULL, 'GET /apis/productionRequisition/list', '{\"search\":\"{\\\"requisitionNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720317000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":9,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"0\"},{\"createTime\":1789719809000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":8,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8026, 63, '接口日志', '111.4.225.53/183.158.161.24', '2026-09-24 13:40:24', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8027, 63, '接口日志', '111.4.224.18/183.158.161.24', '2026-09-24 13:40:27', 0, 'ProductionRequisitionController.confirmIssue(..)', NULL, 'POST /apis/productionRequisition/confirmIssue', '{\"obj\":{\"id\":9}}', '{\"code\":200,\"data\":{\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8028, 63, '接口日志', '111.4.224.18/183.158.161.24', '2026-09-24 13:40:30', 0, 'ProductionRequisitionController.getList(..)', NULL, 'GET /apis/productionRequisition/list', '{\"search\":\"{\\\"requisitionNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1790242827000,\"createTime\":1789720317000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":9,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"1\"},{\"createTime\":1789719809000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":8,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8029, NULL, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-25 11:08:54', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8030, NULL, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-25 11:08:54', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8031, NULL, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-25 11:08:57', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8032, NULL, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-25 11:08:57', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3SRJZmkeN3RljeIRvlVLHBDZHP4j17HNSRFpXMjpJHsLoFJ4YZGGx+HH1P1pshcXSOVmCKQo2AEHOckjPTO3nAI9cE14k0WjXH7UCTLd351EuCbaSyCRDFn18wybugzjy+vHTmgD22O7M+0wxb1DFJcsA0bAgYI7nn16DIzxlHMjXJWO4bY2VYBA3lttyMHsec/MCPpkZgb7TNqLYgdUilVQ5lZVddoPAB5IJPODnAHqVtRiKcGWOYyRuQRskyuQexH05HTjpycgEdr53nyM/nNGyqEZ2AzgcnbgbSST+XbilkuAJESQp9nnG2ORXwdxHC8evJBB9vTPlHxc8QX+u6vZfDTw24GpaiQ95L5yqiRYZvLbqw4Xe3Q7QAA2/Fc9+zQ+z/hJ/lYgtaDKjOP8AXcn2/wA9KBH0CwLKQGKkjGR1H51nWyXhgVXf99HIjENIGAUj5kOBnIBJGc87Tk1buYUeOR/s6zPsIEbHh8cgHPHXoT0ya8dtv2frK9t2vvFviPVtR1aQBppreQEcKBty6uz4wQDxkY+UYoA9mDs5jaPY0TDJbd27Y45/OoDLMl2VRTPExw20qDC2BweRkEHPqPfIx4l8HNf1rTfHmt+Br3Umv9N07zUhkuN26MxSLEoTk7VIx8hOAcYIOd3qPizX7XwtoN14h1K0/dQDyXCASSOjPtACkqDyUbBPQt+IM6RU2u7bmO7Hyk5APt/n+tNjw7GZTJhgBtYEYwTzg8g8/oK+L9L1Pw5rOpajqHju41+4up2RopNM8nnqGDB+AAAgULgADHAAr7OuVlMYMMcTSqcqZSQFOCM8A+vt1PNAEiyxtI8aupdMblB5XPTI7U6qrNLCnmzzhIgAXwuSp3Z+902gcfd6ck1aoAjaFXdmYllZNjRnlWH0P4/XPOcDHgMieZ+1w6bmXcCNynBH+gdR717lI13LcvFbiOBd+JGxl/unD4PGMgDvkf3SDWRP4P0FfF6+KbfS1l18vsa5NzIAn7opyoJUfJgfd7g9aAOmbcFO0AtjgE4BNVboCS3fMoNuSfOPXCAEMowPUYPfk9DinG3VbZRBBGJYEZLfzRnbxgc8nBwPfFEMjJObdogvy7w42gSH+Ihckjkjr6/mAfN/gnXfF3hzW9U8Q6j4B8Ra3rmoExyXjrLGqpkZQIIiOqgegCqAFAOafwK8TahoWtXNhZ+H7nUodUubWCe5hLBbQZcbmwhyMMzckcIefT6hjgihd2jQIXOW28An1x6+/f8ACuZ8NfD/AEHwqlwdItGsnu4kWcRzO43qGAdS5LKRvYDB6HkUAdJJLBaBA2EEkm1QF6sxJ7epzzXgPxN+M1zf6mPDngy9jih3+VPqW9FErn5cRu3CICc+bkcgEEAZb3yceZIkbWzuqlZFkwhAO73Oc45zjpnBzXBw/Bn4b3Ee+LQQwBwf9NuMqfQjzMg+x5oAofCTwp4T8OWwj07XtM1bxC6eZeTWd0khCdCigHIjBYc8bmCk4wqj1AgvIUeMFAFYMecnJ7e2Afx9q5PQvAHgvwhqUt9pOmR2t4IDuJuJJWEeQSQrse6jkDPFdJIi3MJhieJQoUoF+ZShGPmXgYPzDHTv16AHhX7Mv/M0/wDbp/7Wr3aPct3IN5O5jkSEgkAA5UZxgE4OAPfkc4/hvwZ4b8FfaP7DsPsX2wosp86STcV3bfvscfePpnP0rYMEU8UqR+ZEd5+YKVKt3K5HGcnkepPWgCaOPbNK5z85GP3hYYA9Dwvfp161JVO3hlhu2BnVYCpEduMHABHzA4BA56cgZ69BVygBNqlg20bgCAccgH/9QpoijEhkCKHPVsc9u/4D8hRRQA+o1giSVpQg8xjkt36Af+yj8qKKAFeNJNu8ZKsGU5wQf8/oSKfRRQAUySJJVCuMgMG69wQR+oFFFADiilw5UbgCA2OQD1/kPyoCKHLhRuIALY5IGcD9T+dFFAC0UUUAIVVipKglTkEjoen9TS0UUAf/2Q==\",\"uuid\":\"c3f014bc9e8a4d6fa1cdcd2e86958c06\"}}'); +INSERT INTO `tbl_log` VALUES (8033, NULL, '接口日志', '43.168.152.22/23.27.145.58', '2026-09-25 11:49:26', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8034, NULL, '接口日志', '43.168.153.70/23.27.145.58', '2026-09-25 11:49:27', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8035, NULL, '接口日志', '43.168.154.49/23.27.145.58', '2026-09-25 11:49:35', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3xQjyearEnBThzjg88dM5/GosSIIGndXcMVZ0JjXnp8uTnsO/JojhWCUs0vLsQgztHPzEY6E9ecZx1zyT4Jq32r4u/F268Iz39xb+HdEMpeJSFkdoyI2fOGDNvbALdEz0YtuAPd7vzTcwJlxbOGWTYGzuyu3leV789PXqKe92wj+W3kM+A3kFlDFd2CQc4OOvX06ZrwLR3Pwt+K1l4Vt7mW/8K6+sEkcFwBI4aT5EkIIUK3mLzgfcxkFgMe/zXPlGELGztLL5YHTHUk89gFJ9/wAaAFimjncspO5R0zwVPRuOCDjg/UeoqrcLPcq6Q3AUgBnh/jQ46Eqw6/Uc9yOK+aPiJb6Fd/tBalB4lvZ7LSG8r7RPACXTFqhXACt1baOh6/jXp3wm8KeAbXUrvXPB2u6hqMkcZtZkuHC7AxVslPLRudvBOQcHuOAD1SabyQhKFgzhCQVG3Jxk5I746ZPPSneX++80O/3dpXPynng47Hr09ec4GKt7dxWeniS/MAQriYuwWMLjLkluAoUMeewryp/2h/CaF7aey1O7UbkeWG2QRyc4yqvIDtI/vAH1AzgAHrc32lZEaEqyFlDqV5C85I5HPI/AHqeKd5hkZfKKkK5WUNkEDB6e+dv4fhWPo3iHS/EOh2t1p9zK1peI6RXA3LyrGPguA2dwOCR6ZwWANfxjrNp4V0GbxDqCNMlqI1YRW4kO4uAGALKOCx6txng8kMAbV3cXEE0XlRpLGeXUffCjqwGeRyOgJyAMHdlXTTvCr73iVnYiAtnHCZ+b06N+FfGum6r4e1zVNS1Px9c+ILm8uHV45dN8nLHndv38AAbAoXgAEcACvsxFYz+bHIGgkXJBbPPGCvsRnP4epyANhmiN3cQq8ryBgzBlbanyrwDjHTBxnuas0yIgxgKhRVJUKRjgHH5cce1PoAhm2gn5BJIQGEZbqFOcgHjIyOfXGSK+f/DF3D4I/aF1xvEDiyg1aO4lguJyI41WV1nUsz4A4VkOM/OMc9a97O9tQ2ByTGQ5BJACMpGAAfmO5c8jjPFZHibwfofitIY/EGnJfQxSAwbS6PESCD8ysDg8ZA44BOdoIAPHPEEtv44/aJ0BPDrxXNvpi28txcxEPCRHI07sGTIwd4TJx85wfWve1P2JLeFni8ssU3O+05P3Qoxgn249h2rD0Dwl4f8ABttPFpemJYQyzLIWhmlkeVgCFDE849FyRljgZPO9bqWczMnzvGgMmCu4DJ+6eVwSePcc+gBwV3e/CnUdY1e41NtAfUI52hvH1HYJPMRVRlUSfMQAigFRtznBJLV5l4P/ALMi/aUlHhJsaEPNVzaM3k7fJw2T02efjH8Odu3+GvV9X+FnhPxJcy3OpaLbrqDB988MjRMx3sVd0jIVmbkljyen00tA8LaL4atza6FpUFtFMIJWMDOxciQklpWzuA3ZAznGenFAFzxVb2N14f1ePUp3tLQ6bOst1H8zJEynzSFwc4Cg9D14rwGzttT8C6NdXPgv4qeH5tPkt/tkltM8aTu4UnakDh8OVCjqpJwCPlFfSJtmuLaa31D7PcwzIUePycKykEEMCWBBBxiuEu/hJ8PJrxpj4dh/ezEPsvJolDMeiKGC8HPyrjGMAdqAKfwk10eKvhptvba0sIbK4a2ka3ijijkYFJA4QAKmd/zDbgk5GM4HpMLu91PhP3I27X3Z3NyGA54AwB0HOaq2mm2mj6XZ6fZwRW9vCyqsUFuAmc5J2qPlyctnjB5PvZZFgViI/KiQqV8gEluMYKgdMcd+PTFAHg37NPI8UJtYh/sqkqcbRibnOc/lzzXvkUqB1gEZjIjDbcDCjpjjp0/wzg4w/DXgbw/4Pe4bQLJrIXO3z1EzyCTbnbneWIxubpjrzmt1mVgJYlSVg2zII4G4BufbHI9qAEkkdJkUFCHwAGyOmc88gnGMDjoefSaqb27yfLBLJA0cpJfbwwb5jgDAPXGSD0PfmrlADJYo54zHLGsiHqrjIP4U5FCIqDOFGBkkn8z1oooAWiiigBNqlg2BuAIBxyB/kCmLBEknmLEivgjcFAPJyf15oooAkpAqqWKqAWOWIHU4xz+AFFFAC02SNJYyjjKn8PxHofeiigB1NVFQYRQoyTgDHJOSfzoooAdRRRQB/9k=\",\"uuid\":\"e69a2e4f6439459eb756179af7166e73\"}}'); +INSERT INTO `tbl_log` VALUES (8036, NULL, '接口日志', '43.168.153.72/23.27.145.58', '2026-09-25 11:49:35', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8037, NULL, '接口日志', '111.4.225.53/36.27.38.169', '2026-09-28 06:39:04', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8038, NULL, '接口日志', '111.4.224.162/36.27.38.169', '2026-09-28 06:39:04', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8039, NULL, '接口日志', '111.4.224.18/36.27.38.169', '2026-09-28 06:39:08', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8040, NULL, '接口日志', '111.4.225.185/36.27.38.169', '2026-09-28 06:39:08', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3srLmQrIPmHyBlztOPbGR04+vPpDNL5CiW4uFgjZNrd1RvXcRx3HIweOnQymD926xyyRl23bg24g+27IA9q8/8RfF/wALeHvFtx4f1T+0re5tV+a6SINCC0YccBiSeQBlCAfbmgDvIQ+3asryxyJuW43KTk+2MdMYwMHnPvNuCBFkdd7cDtuOM8D8Ca828N/G/wAK+I9Wg0mBryyuJcCOXUUjSOQ5GV3KxwxGcZABPHUgH0a4S2laKOfYW3h4lY87l5yPpQARSrLJvjVyjL9/Pyggn5cE5Ddc8ex6Ui3kTHgtg/cYLkSDaGypHXg/jg+leOeKfhx4QvvFF3ceMfGd1DdTM80AuNTgi2QvIzJHGkgZgi5IzkDIOAKy/gGNc/t7WLW11O9u/CVoHit5mXbE8okBXYj5KblZ2ZV6bhu520Ae7GZLhvIibO6MOXU8BScDBBByQGwR0xn0yPJJE8cMEQkG07i0uCnHy5zknJGM1GtrMJDmRCm8su0MhGXDEEA4bPrx7g5NeXwftC+DHiup5LfVI5EC+XE1qm+UZxgEORxkn5iox0yeoB6ib0QsiTI+4jc5VeIlOcbuT6EZGRkZ4FKZ4xZtdeb58ce+QNEeoGeODg4HH1FZ3hvxPZ+KfC0HiCwgultZ1kZIpUAlOxmUjAJGSVOOfSq3jXxO/hPwRqOutal5rePCR8MokY7ELcqSm4rnHOD0zQB0Dqs8PyyMAwBV42/EEev8jSkO5kR1AjIwpVzuPr6Y/A18oaanhTxLbf238RvG99Jql22Ybe23O0EXmMDvPluqc7mEagALg/xAD3z4e+H9G0jwgseka5capoV27SWjTyfcSQIpj4xzvVzjCkF2BGckgHWswlVooZg88BXcGYrk4B+bbjqPbHscYqzUVvEIYyPLiQljxGMDA4X8doA/CpaAGpGke7YiruO44GMn1r5p1GfSdM/acW41e6gWySSF2uZANgla1UpJ3A/eFWz0XrwBX0qrOZHVo8KMbWBzu/wP/wBbnqB4HqPhO+1D9pB7ifw80ujSfIsl5ZGS0fbZ4AJxtI3LxzwR0yMUAUPjXrOm+JvFnheDwnfW93rSSNEs9lKu7czR+SBMDjht+Pm+U5PGcn6Amja3miMSJ5A4jiWI8SHODkA7VIJye2B6msHQPhp4P8L6oup6PoscF4qFFlaaSUoD1272IBxxkc4JHQmujVUmsnigui2VKrKH3FcjI5HoCMd+hz3oA811Rvg742Frq2qalpc7pCttEZtQkt3VFY4BjLqw5JOSOhznFcb8A55IfHviXTdIubq48MokjxPIh2swlCwsx2ja7R7+MDODx8vHoA+C/gS8WS4uPDn2aabJMcd5LiM5PKgNgdRx0GBxXVaJpumeH9HsbXR7O1srJ2UMI4igkymA5PJLNhOXJJ6E5xQBqyXKII2DIytJ5f3wOckYHqQR09j34r53/Zx0q1ur/wAQam1tDJqNlHClpLLkiIyCTdj0ztAz1xkDqc/RLiSUSRhnh6bZUKk/kQefw6Efhz/hTwd4e8HR3R0XTxZNcsiTnzZWDlSQuPMY4+8enr1NAGmtvAAsBtAnk3IlDQw7ULtlmfHTlmbPUgnJPcc58VNMvNc+GOu6fYJ9ouyqMsUSFmbZIkm0KMkttH4kjpmuvkYSRB1YNAyEsUJyQRwVK8/l68e8UlxHa/vnG2GYhmkbCbDhQM5x27n0x6CgDwj4cf8ACsv+FWL/AG7/AGB/aW6b7d9ux9oxuP8Aq8/Pnytu3y/4unzZq7+zZbXh0XX5pgzac9zCsCs4KCZQS5C54ODFzjnA5OOO71T4U+CdZ1u81PUtCUzXDKzyC4kiWSQ9WARwMkkZ4GTzySTXW2GlafpaCHT9OtLOBFwi28SxgZJJGAAAM8+5JoAX/TVdmijjMZXKpLMc7icnJAOOp7kcDGKuVCpmKqjSQiVSDIACcrk8gZ4zj3xz161NQA2SNJYyjjKn8PxHofenUUUAFMjijhXbFGiLxwqgdAAP0AH4UUUAPooooAKYsMapsCDbuL4PPJO7P580UUAORFRFRFCqowFAwAKWiigBGVXQo6hlYYIIyCKWiigBvlx+b5uxfM27d+OcemfSnUUUAf/Z\",\"uuid\":\"5294cf7822f04a20b869e211ca7bafc4\"}}'); +INSERT INTO `tbl_log` VALUES (8041, NULL, '接口日志', '60.163.165.229/36.27.38.169', '2026-09-28 07:31:57', 1, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"p3r6\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"5294cf7822f04a20b869e211ca7bafc4\"}}', 'com.reallin.smt.exception.BusinessRunTimeException: 验证码已失效'); +INSERT INTO `tbl_log` VALUES (8042, NULL, '接口日志', '60.163.165.229/36.27.38.169', '2026-09-28 07:31:57', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3t4yWZ0YiTbtGSSo99ucf196hcySYKSKJolJeFTuGSvHcfhnAP5EStABKZYztkOAcklSMjPGcZwMZ7fpXA6x8XfCnhjxneeH9TF/bTIUaa58gPACYgwPykucgqv3evtk0Ad6k3lwI10yRORzkgDoT/IE4ycc8nGaYyeQQVll/eTA4KmQc9R7Dv6A+3FeZaL8ZvC3inU7TRYJbyxaT5d+qRxCOXHbcGb5+4zgEjHJIB9MtQ8cUC+dJdKyD998u313epzn36D3JAGSXM0Mts8kbKkoCyLwRExwByOuWIX9eMHMkks0Cl3ieX59qrCBkg4wSD0x06478dvI7z4KQ+Jtdvdc8T65qchvblntoIMlreJncrGxcNjClOwCncOeDWF4LvNU8BfGubwFbarLeaCd2I7xuIU8k3AZeysMkEgANySBxtAPfZHmE0axxKyHO92fG3p0GDk8n8qLi4jtYjLLuCDqVQtj3OBwPekVY51aUA/vV27lfqvOCCD7kgjnmvK5PjZ4F0fxBLYh9Ru2WRYJNTSNZIiBgFgd2So7lV+bbkbuCQD1GaVVQPDIplnXbBuJKM21mHTtgHnv+VOw6zFYy2FQth+jMx4+bkjGDx6EVxHhP4reG/FniO40bR47tWQPMZ7hVjikUMFzGNxbLFlOCq9STzwdrxn4iPhLwbq3iEeZM0MKmCF0G1ZGIRMj5Tt3MpbJzjOPSgDoJJhDCJJQB0BCnPJOOPXk/U+lQ75I7tIVkEu9mdw7KGjXHGAAMjPGTk/Xt89+GPhd/wsfwlceLNc1i7k8Qaq872beaBExT5FEg8skfMrfKp4QDAGCB2vwK8cXPiXw1PpWpyyS32mOqJO4/1sTAlAWzy42uOg+UL1O40AemCWW4NvIFMID52uSvmcMCuDzx94ZHOB07Xags5UmtkZDIVAADSDlhjhvfIwf54ORU9AFXz5JL1EiDGFQfMcAFSeRgH1BU59Mjg5yvgkkVveftbqJY4p4tySKGAZcrYhlYe4IBB7EA1720KWq3N0ZPnIZjI6ghBj0GMjge5wOeBjBg8H+GP+Em/wCEuWwV9aB+a6ieXlinlkiMMV5U+h4OeetAHkPxQgtv+GhfCTRIimdrEzPF8pdhcsmSRzuAULnqNoHavoFI4yJmhbBlY7nU5+YDb3yMjaB+Fc7qvgnQNd8QWniG501ZdVsvLMEzvLHgowdOAwBwSeSD75xiujXa0bSQGPMg3BwMhjjg8deMUAeLfFf4zP4fmPh7wvcq+qRMBd3xVXWAjrGoI2s/97jC8j72dsvwf8M+G9KvF1XUfEWlat4wvt77I7+Od4Mgs4XDEvIRks/PcDjJbqdS+EfgTULy7v8AUNHZr28ke4laO6nJ3sfmKqG6bjnpjnpjik074ZeDvDmtNqem6M1vNZRtKJBdyO4yuPkUuRggSDLDOTweMgA6vxJb3s/hbWYdK3rqM1lMts0T+W3nGMhCGyMHOOcjFeJfAbxL4Z0fwpq9rqep2enXzXfmtLNKkTvHsXYAScvhhIdoyBk5Hzc+6K96bvybi1ikgJUrKjcLjJyQec5C4A6Z68VzOp/C7wdqGtnWpvD1vPfSXCzTZkcI5yMsUDBD/eIKndzkEtmgDyX4KzWl18Z/E8+mCGOzltbp7URxlUWM3EZTC4UgYxxgceleqfFnTb3V/hvqmn2Nu817cJGREhZs+W4kIUAfMx2kAAZP0HHAfDLw7qegfGfxPPJol7a6a6XcNpK1m8cDg3CFArBdoUqMjHGBxxXvC7io3ABscgHIB+tAHifwu+Img6H8H4Yrm9gjvdMacPaSTxJLMNzS5jVnBYEOFHfdng45Z+zdo15aaHrWrzJstb+WKK3yCC/lb9zDIwVy+AQTyrDjFdxrfwq8EatqVxqd54eWe9upN8hjnliDtjk4RgoJwTnjJPJyc10mmac+lo8MEcYgDRoiA7FVFRR8qjIA4wFAGAPTFAF94FadJssrp/dOAwweD6jnPtUtNkYohZY2kI/hXGT+ZAp1ACKqoMKoUZJwBjk8mjaoYttG4gAnHJA//WaKKAFpjxo7RswyY23Lz0OCP5E0UUAPqOS3gmDiWGNw4AbcoO4A5AP0JNFFAElFFFABTXjV9u4Z2ncD6GiigAjjSJAkaKiDoqjAFCRpHu2Iq7jubaMZPqfeiigB1FFFAH//2Q==\",\"uuid\":\"5f3c6aea8a854ad8b98b9a184cfed4e3\"}}'); +INSERT INTO `tbl_log` VALUES (8043, NULL, '接口日志', '112.13.210.158/36.27.38.169', '2026-09-28 07:32:02', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"n2q0\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"5f3c6aea8a854ad8b98b9a184cfed4e3\"}}', '{\"code\":200,\"data\":{\"msgTip\":\"user password error\"}}'); +INSERT INTO `tbl_log` VALUES (8044, NULL, '接口日志', '112.13.210.152/36.27.38.169', '2026-09-28 07:32:03', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3m7uBa2zTEAhSM5cLwSAeTxTY3mJAVkkRVCtJnG5s4bp0xg8epxxio7pR9pgXA8t2YyoEz5nG0Z56cjPB7ZxXiax6bD+08ji4uhqQk2fZFs1ECp9j2giQSFvuYONgGeOBzQB7fBexT3EsCq6vESCHXGee3r2P0YetSWpdrSEyFi5RSxddpJxzkdj7U24SOSSLJYSqQy7Gw2MjP1Xpkf1xSR3OQyur70kETEJkE4BzxnA579O9Ait9mnt0mYOZcLiAB5Cc7iQGyxzzjnjjIOBVxJgIN8rqpRQZckDYcZOeTj868ovvgdD4m17UtW8UeIdSuXnuJDaQ28gxbQmR2VN0gbI2svAChTuHPWuW8GSap4H+N0/gOy1F73SiriFLwbvK/cNOhXB+UguVYrgNuY4BIwDPfrUOsZDs7DJIMn385OQe3B6Y4x+Zl3/vdg2nC5b5uR6ceh5/KqNnPuQJHFLAjAiKOWFv3ZGcg44C9Mc+oHoPKpfjz4Ms74B4tS1B4QPLube2XbyvIUuyOV5xhlznPJ4NAHsb7/l2bevzBu49vf8Az70kztFBJIkZkZVLBB1YgdKwfCvivR/Gmm/2po9xcSQkiORHjZPKkUKxU9t3zrnBIOOCQDUfjWS2h8AeI4T5ojTTZ1cRJuZFaNhkKSMgZPcDgjjFAG1FLLNKjeYsaHDrGVBZ1288hjkZYcjHTuDmnYnjhnMalnDlkV2yCOuAeoz79Ce4Ary/4BwWCeDL3+zrqa6tF1OQq11aLDIH8qIHAWRxjBx1zya9UO1rgB1AdQShDckd/wCnt0/AASMMu+NS+Q27dIMggnOAfzA9MD2zNVe3geFRExLRxnMb7+WznIIAAAGcAcjp0xVigCKSN3cFCqFduHxk43AsuOwIAGff2r5/urqGy/a0e4uH2RJjc2CcZscdvrX0BNOsMkStwJG27iDgenOMZJwBkjOfwrCj8GeGpfFg8XR2KvrJ6Xa3EhB/d+X93ds+7x0/WgDdNxGYpXjbzfKyGWMhjuHVfr7VIFCliM/McnJJ7Y49OlQQLIlxchhKULB1d2BByMEKB0AwOvcmo5lK/azezx/YpEVVDfJsyCGBPvxz70AeN/Fb4xN4dvbjQ/Ck8R1LeDeXgQOIHHBRQ2VZsAA8YXBHLE7D4TeGdC0vVLfVbrxLpWq+LrxmklhW+jnaJXViwQgsXl4JZgemRnBLN2Fz8JPAF/q9y1x4eka5lYzyyfapwrFjnPEmBkluOOh4xjNzR/hh4J8PajBrOl6THbzwKxWZrqWRQrIVPDOVxtY9Qf60AdBrWrNoug6tqTxxztYWst0IVfaXVVLAHg7c7SM89M+w+ddP8aeLvEei395H4t8I+H9MRDbNo9xHGoMSRgYSFo5GZSDjHJOCoGABX055agIANoT7oU4HTHQdvauK/wCFV/D+wv21V/Dtmr7yxErO8IL8f6okoB83A24HGMYoA82/Zl/5mn/t0/8Aa1er+M1KeBfFitcvKw0m4yrjBX9y/TGAQfXHUHk4wE8O+B/D3hV7iTw3pgtftUQbz1unfcQDtB3lsD5s8Ag9SOFq/f6Rbaha3UE2nTSJcwyQvHLN8mJV+fo+V7glcHk4zQB5x+zin/FA6hJub/kKSArng/uoucevX/OMevPHIzhkmK4IypUEEc59+c+vYe4OR4Z8M6T4SsX03RdONnbSObiQCZpF8wgKeXYt0Ue3Fa80yQIGcjJO1VLAF27KMkcmgBuVmID27HZJ/Go+UgZDD/EevbnE1ROWE8R85VQ5UoRy5xkYOeowf1qWgApGVWGGAIyDgjuORRRQAIixoqIoVVGAoGAB6UiRxx7vLRV3MWbaMZJ7n3oooADGpkWQj51BUH2OM/yFNEEIjaMRII2GGXaMEYxyPoMUUUAL5Ufned5aebt279o3beuM+lOZVcYZQRkHBHcciiigBskMU2zzY0fYwddyg7WHQj0NPoooAKa8aOyMwyY23Lz0OCP5E0UUAOooooA//9k=\",\"uuid\":\"71f3b0335882498889cf37b11c5025d4\"}}'); +INSERT INTO `tbl_log` VALUES (8045, NULL, '接口日志', '120.226.169.39/115.220.229.151', '2026-09-28 11:16:52', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8046, NULL, '接口日志', '120.226.169.13/115.220.229.151', '2026-09-28 11:16:53', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8047, NULL, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-28 11:17:44', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8048, NULL, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-28 11:17:45', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8049, NULL, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-28 11:17:45', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3R3a8Zo7adFWGZRIwySSCGZO2OMDPPUjFPup5YPLKRM6bv3hC5wv0HOeewPTnHULJMeY0SQsX8stHtJTIzuOTwB7/AJHIrzzxF8XfC+jeMjoGpefC1sodrx7fzoEZkSRGAVtx4JGQuQSO2TQB6Szqgy7BRkDJOOScAfnVRNUtHabZIWSGMyO6glQASDyO/H4jpmvO/Dnxm8HeKtft9NSG9sLqeQeU11EipO4OEQlWb5uQRnAyBg5xn0XyEhkDQ2SBoyqoUIX5Cfm/LJOOh479ACUzMJ2GA8YKp8nLKxznd7YK/nk8c017eSXzVknYRuylBH8jKBjI3A8g49jya8ft/wBonwnHFvbSNXW4cjzNkUW0884zJ7k49SfUmuy8F/EfSPHdrqH9iW9zaDThF5hvo0VArbum1z0CN6dqAOv81orny5CxWVv3ZwMD5fu9c54Y5x3xTpTJ5kSx7gN2WYAFcehyc89sd/bgwTTxTtHC1sZ7eUHexTKqcgAEEeuc9xjkdx89fAHUbPRtN8WapqF2LS0tfsjyzsflVcy5BGfmJ+6AATlhgZoA+irj7Sls5ttskwyV8z8SBxj2H6893S3McO3ewBaRY1DELuY+mcZ/D0PeuL8DeO9J8bXEk2jaRqFpaWyGJp7m3ijjZyQwjVlcksBuYgDABycZGej16LUbvw7q9rZk295Layx2s8ch+V2UhXyBuBU4JwCfTJ4oA0g7LEGlUKxIBCZccnA7f04qt5kv9qRRO2MRO2FB2sNwA9sj5fXqenGfIh+zzod3b3JvfEup3etNvaa6BTaZGJKs8ZBY9QTl8tycjPEnwC8Za14g03VNP1i6mvhZSxeTcSkvKBIJCQ7k5Kgx8E8jdjOMAAHsFrKk0AKXCXABx5iEHP1xxnGP/rVNVOB3GHt2huLWRyQ0ZAK5JyeOG5J9Dx/EauUAyGSBZIpldBMJDny5eVzgYHTgcZr56Nra3P7VyxC2haJHWRISBtWRLIMvTIBDqDx0Ir6JkkSGMySHCDqcdPc+3vXOP4M8L2nio+Ln09Y9X3c3fnSAZZfLzs3beVOM49+vNAHjfxM+zp+0D4RuI4UR5HsnnMSZLut06EnAyxAQLnGcKPavfHtw0MUkKYYyJI6hdgfLKWLKe4xnnnjHqDi6p4R8O65r2l+IL/SZJtVthGbdzO6NCEbepKBwDtZueD1xzW+AUiWK3JYZI8x28wKQec5bJ7j2oA+Z/iX8Qbvx54m/4RTS7+1tNES6MJup50jjnIbl3kBx5QIyoHUAMcttA9m+FuneHNE8OtpXhzV7XU0i2TXc0U6u7TuOWZVJCAhVAA/unJJBJz5vgp4DhkSV9B3QqzbljurnOD90bQzFjnuCtdD4c8C6L4MjuIfDkAtHvExPJJK8jkrnYwDEj5S5GMDOeTxyAdAsYtYt5DybAVCxjACbuAFHHA9Bk4/CviPTdC1jU/DOsahY7pNP06SCS9hVzn5vMCSbejBfmBPUB/TcR9t+QhjjuLqKM3MaAs8SkkEckL/FjOeO+fesjwt4L8OeEUuH8P6cbMXgQzZllcttzt4diRjcfTrzQBi/DjxP4f17wfaDw9ZxWtpYxiO401fmltpMgg/7YPztv6sRn724Drbu9hhtS1xMUt3ikka7QhY4YwM7mcnC8d+nGeK5nSvAvhPQ9UTxFo9iNLnZ3891uJI02tkNGYy2wDdj5cYGBjBArpr/AEyHUbWawuEBsLmGWK4hX5fMDjBGRyMgtyCDk0AfOXjf4oX3jfxDN4d8M39vpei3h8ia8unS3FyuBl5JGAKR4U4X7zAkHO4IPX/hZovhjw/oL6foF/p+o3ahH1C7tLlJjI53bclTlV4O1SMDnkncTXl+CngEFVj8ODDAjeb24Ow44JHmDI+hz0+o3/DXgrw94KaT+w9MNvJelUndJJJAdoYgnezbRyencjrQB0CwlQwEsnzPv5IOOckDI6Hn6Z4xxiWoYLuC53CGVXKhSwHUBhkce4NTUAFMaNGkSQj50ztOcdeo+nt7D0oooAURoAgCLhPuDH3eMcenHFKFVSSAAWOTgdT0oooAWo/Jj88zbB5hAG4+gzj/ANCP50UUASUUUUARvBDIjo8SMrnLhlBDHjr69B+VSUUUAIyqwwwBGQeR3HIpaKKACiiigD//2Q==\",\"uuid\":\"72464c039a80430aa2acc33d083cc317\"}}'); +INSERT INTO `tbl_log` VALUES (8050, NULL, '接口日志', '120.226.169.39/115.220.229.151', '2026-09-28 11:17:45', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8051, 63, '用户', '117.85.66.39/115.220.229.151', '2026-09-28 11:17:51', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8052, NULL, '接口日志', '117.85.66.39/115.220.229.151', '2026-09-28 11:17:51', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"nzk2\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"72464c039a80430aa2acc33d083cc317\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8053, 63, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-28 11:17:51', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8054, 63, '接口日志', '117.40.82.179/115.220.229.151', '2026-09-28 11:17:54', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8055, 63, '接口日志', '120.226.169.13/115.220.229.151', '2026-09-28 11:17:55', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8056, 63, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-28 11:17:55', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8057, 63, '接口日志', '120.226.169.13/115.220.229.151', '2026-09-28 11:17:55', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8058, 63, '接口日志', '120.226.169.39/115.220.229.151', '2026-09-28 11:17:56', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8059, 63, '接口日志', '120.226.169.39/115.220.229.151', '2026-09-28 11:18:38', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8060, 63, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-28 11:18:38', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8061, 63, '接口日志', '120.226.169.13/115.220.229.151', '2026-09-28 11:18:38', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8062, 63, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-28 11:18:38', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8063, 63, '接口日志', '120.226.169.39/115.220.229.151', '2026-09-28 11:18:38', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8064, 63, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-28 11:18:39', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8065, 63, '接口日志', '120.226.169.13/115.220.229.151', '2026-09-28 11:18:39', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8066, 63, '接口日志', '120.226.169.13/115.220.229.151', '2026-09-28 11:18:39', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-28\\\",\\\"endTime\\\":\\\"2026-09-28\\\",\\\"createTimeRange\\\":[\\\"2026-06-27T16:00:00.000Z\\\",\\\"2026-09-27T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":6,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782676800000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303412-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1565,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303412-1PH-WS79-ADD1\",\"operTime\":1782676800000,\"operTimeStr\":\"2026-06-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303412\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8067, 63, '接口日志', '117.85.64.159/115.220.229.151', '2026-09-28 11:18:40', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8068, 63, '接口日志', '117.85.64.159/115.220.229.151', '2026-09-28 11:19:32', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8069, 63, '接口日志', '60.163.165.157/115.220.229.151', '2026-09-28 12:48:10', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":8,\"rows\":[{\"assetCategory\":\"工装设备\",\"assetCode\":\"FA-TOOL-2025-008\",\"assetName\":\"全自动钢网清洗机\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":8,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"originalValue\":78000.000000,\"purchaseDate\":1739131200000,\"quantity\":1.000000,\"remark\":\"用于钢网水基闭环清洗与烘干\",\"source\":\"DEMO\",\"specification\":\"SAWA SC-A1000\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCategory\":\"物流设备\",\"assetCode\":\"FA-WH-2024-007\",\"assetName\":\"电动平衡重式叉车\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":7,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"originalValue\":145000.000000,\"purchaseDate\":1721592000000,\"quantity\":1.000000,\"remark\":\"额定载荷 2.0 吨,持证人员操作\",\"source\":\"DEMO\",\"specification\":\"Toyota 8FBE20\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetCategory\":\"IT设备\",\"assetCode\":\"FA-IT-2025-006\",\"assetName\":\"MES 数据库服务器\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":6,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03 机柜\",\"originalValue\":168000.000000,\"purchaseDate\":1736884800000,\"quantity\":1.000000,\"remark\":\"双机热备主节点,纳入信息安全资产清单\",\"source\":\"DEMO\",\"specification\":\"Dell PowerEdge R760\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetCategory\":\"动力设备\",\"assetCode\":\"FA-UTIL-2023-005\",\"assetName\":\"螺杆式空气压缩机\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":5,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"originalValue\":186000.000000,\"purchaseDate\":1700424000000,\"quantity\":1.000000,\"remark\":\"为 SMT 车间提供稳定压缩空气\",\"source\":\"DEMO\",\"specification\":\"Atlas Copco GA22 VSD+\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetCategory\":\"检测设备\",\"assetCode\":\"FA-QC-2024-004\",\"assetName\":\"在线 3D SPI 检测系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":4,\"keeper\":\"陈晨\",\"location\":\"一车间 印刷检测区\",\"originalValue\":1120000.000000,\"purchaseDate\":1712347200000,\"quantity\":1.000000,\"remark\":\"用于锡膏体积、高度及偏移检测\",\"source\":\"DEMO\",\"specification\":\"Koh Young KY8030-3\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCategory\":\"检测设备\",\"assetCode\":\"FA-QC-2024-003\",\"assetName\":\"在线 3D AOI 检测系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":3,\"keeper\":\"陈晨\",\"location\":\"一车间 AOI 检测区\",\"originalValue\":1350000.000000,\"purchaseDate\":1712347200000,\"quantity\":1.000000,\"remark\":\"用于焊后外观与三维缺陷检测\",\"source\":\"DEMO\",\"specification\":\"Koh Young Zenith 2\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCategory\":\"生产设备\",\"assetCode\":\"FA-SMT-2024-002\",\"assetName\":\"十温区氮气回流焊系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线\",\"originalValue\":980000.000000,\"purchaseDate\":1710705600000,\"quantity\":1.000000,\"remark\":\"炉温曲线纳入工艺受控文件\",\"source\":\"DEMO\",\"specification\":\"HELLER 1936MK7\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCategory\":\"生产设备\",\"assetCode\":\"FA-SMT-2024-001\",\"assetName\":\"SMT 高速贴片生产线\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":1,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线\",\"originalValue\":2850000.000000,\"purchaseDate\":1710705600000,\"quantity\":1.000000,\"remark\":\"关键设备,按月盘点并执行点检保养\",\"source\":\"DEMO\",\"specification\":\"Panasonic NPM-D3A 双轨配置\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8070, NULL, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-28 12:50:53', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8071, NULL, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-28 12:50:53', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8072, NULL, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-28 12:50:57', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8073, NULL, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-28 12:50:57', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD37cocIWG4gkDPJA6/zH50xkcQ7IXCsAAGcF/z5BP50hlEkjwKWDBfvqAdp9O+DyDg9c9+a+fyHg/a2URq0zbgDufBINl8zZ9gScD0wKAPoBZW+0vEyYAUMrDJz65OMA+2TUE1s7wKJbmb5YSrtDlWY8HcAO/B4564rjNP+Kuha94wm8M6Pb6nqcm7a11aRp5CKMB38zeDsBP3gOT93dlc9n9ledzLcbULIFMcZ3LgE5BJA3Ag4wRxzjrmgB09yIUV2ubZQqtv8w7QxGBwc/KNxAPB60xrmW803zbEMssmVUyL/q2BIO4E9iCO/wBDXJeCfiH4e8U61qGkabY6jp1/ar5k1rewCM/KQjYCsQpUlQQcHkdcHB4Q+JfhXxlruo2ukRXAvLaMyGWS22/aIgwUshGWI+5wwB5HHBwAdlCZX2lpclGZZB5JQN9M8+nOSDz+E0ciyoHQ5U/h+Hsa4vwh8TNH8ca9fWGjQak0VpGWe5ltwsDfNhcNu3AsMkBgCQp6YIrg/wBnlNHhl8RR6Teahd71tzI11ZJAEx5mACsr5JyeuOnfsAe3iVTM0QD7lGSShA/PGDTYpRMRJFJFJbsvDIc8g+vQj+WO+eB502qEkXc7FEONw3AHIOPTafyqje6WNV0PUdIvXlEN3FLbvKjDcVkUhiuc7cbiADnGB1oAsXKnzjiSdQyZbaCV2r1HHIYhuMc/KPTBW7ME9sgN2YBKQsckcgUsSOAD0ORnH5jkA14H4/8Ag54O8GeEL3WP7T1bzkTZbJJPCfMmYgIu3Yu4dScHIVScHFbX7OnhySz8Oahr0zjF/MscCAjIWLcCxIPdnYbSB9wHnINAHskgkaJoE3tIqqRIzbATn1A68ZIxjkdjViq/lyEKThpY2wJG43KcZ6H0+gyM46VYoAjEQjSQRYRmJbkEgMe+M/jxjv618r+PdF1PXPjtquk6JPm/miCIfOK+ZizBdNxJxuAZcE45wSBmvqSV45VO2RUeNhtkZcgNnGBng91ODnkjg1iN4K0IeNE8VLpiHWDnfdm5kBH7vyxhM7D8vHQevWgDy/4CeItEsLa78LT6cdO8Qo7vcPKD5l2UJ+XBG4MgyPL9mbqWr3BJEk3bG3BWKkjpkdf8PrmuZ1r4deFtf1tNavtNP9qIUK3UFxJC+UOVOUYfMMAbuuAOeBjfUrFvnV5DAeVREDKc4O4BRuOST+poA+a/EVxe/C/40a5eQ3slumo2V1cQ3EkaSGRpY3dOADj/AElQOQPu8/KTnL0+O++HMWg60R/Z6a34dvVeb5ZfOlPmtF8vzbetmegHr/HX0Drngnwd44v/AO0NV0z7ddQQpErC4kjPlkF1G1XUc7zyR6+lS6n8PPCPiDT9OsdQ0lZoNMj8m3iFxIphGxBtJVwWO1EGST0FAHB/s66HJp3he81aWOUHVpf3R4KeXCSoPHIJd5Bg/wBzP1w/2a5GT/hJxGqu5+ynYX2kqPOyR6nkeg56ivbdD0LTNF0qysNIge1sLQuYYGycFixJJky/Vm7jr6Vn+HPBWh+EftB8M2EdoLmVBcH7RJKHVNwx85bBBZuBjnqe1AG3DbSQxvB5sxdyZGuQEySW4BznkDA6YwO3Sp2TZL5qR7nfajndghRnB9OCT+GevApkEHkuwWedkHAjkO4DochiNx/M/pxUimkjlu9rQxxvMBAJGwGf+JevcjPGeScgkEUDPB/jHeal4h8Y6Z8PNInku9kiSvG0YGyZlO0EhPupGxYkfKA/I+Svd9G05dE0rS9MRpnS1tI7UNncp8tQATxwcA84APfsKy7TwHoMHi+XxO2nZ1fzGdLw3czsdylSCjMVACnaAMjHQLgAdJIGb5Qp4KnO/aOvPTnt06Hp60CISqXF0yktvgKsrpxjPJQnPPTJHoV+tWqz7RYbT7S25FAmxI0mFZRgEAsPvdQck5+bnmtCgCJreF3LNGpLKVbI+8DjOR36D8qkZVdSrKGVhggjIIoooAFVUUKqhVUYAAwAKWiigBFRVLFVALHLEDqcYyfwA/KloooAZHFHDGI4kVEHRVGAPwpHt4pFIZBgurnHGWUggn8h+VFFAElRtBC+d8UbZOTlQcnG3P5cfSiigAaGNlRSgAjIKY4249Mfl9OKckaxqVQYBJb8Scn9TRRQA6iiigD/2Q==\",\"uuid\":\"f1cf8396ba4a4e3286e5d36b159e6431\"}}'); +INSERT INTO `tbl_log` VALUES (8074, NULL, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-28 12:51:41', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"kwi7\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"f1cf8396ba4a4e3286e5d36b159e6431\"}}', '{\"code\":200,\"data\":{\"msgTip\":\"user password error\"}}'); +INSERT INTO `tbl_log` VALUES (8075, NULL, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-28 12:51:41', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3tHcsVeIrgnDAggjt79/TsfYlkEUtvaCIytPIgIVpDgt6Ake2Bn8aJMfa4Mh+jYKs2M8dQPlPfr+FeXfFfwRH4hsNQ1qXVNQWwstKmuI9OtgFiNzHuYSybjjOGKkbQ2FPzcYoA9OSWWO2hxHPM7uEbzAFZeeS2ABwM9OvGOuacHmknePgLhlLo4Ow8Y4I6kNnuBgeteRfs6CWT4f6nGN0S/2mxWVSCc+VFkYIPoPz9q9hggitohFCgSMEkKOgycn9TQAhQHy0dpGZfm3AkZI9cYHfp0PpQtzE83lK/wC8+b5cHI24z/6EPrnNeP8AxS1vUdT1Sz+Gfhm6lfVdTbzL64kuFCpEVYmJscqNo3kAD5QAA28isT9mX/maf+3T/wBrUAe8RPPJHGxEQO9hIAc4AyOD65x1x34B4CXNyEtxNHNCEA81i2WBjHLEY9j157etO+yQfaBP5YEgOQQSP73b/gbfnXl+q/HfwfouqyWUc9/qcUZJM9lErrv3PuTc7LuUfKQVyMY5NAHqECsVjkDyBGVmMcg+bLEEZ9McjH+FE7TKyCJoRuBAEhILNwQB+Ab1xwcHBFYPhbxnZeNvDw1fQY5SizmCSK6XY8bDBIOCQeCpyCcBu5G2tPXL5dK0i/1WdGaGwtZbnEeCxKqScZHBwMDn+I5FAF6QAPG5EhIOPlJwM9yB1/XH60sSukYV33sP4sYz6Z9/88dK8oj/AGhfBo0lLmSLVTc+YI2tfs6mTG3PmZ3BNueOoOf4cc12Pg3xtovjTRrm/wBCeZ5I3PnWly+JY2OdoIyQFbHBB29e4IAB0E901tuLxFlyoj8s5LEkLznAHLDvzz6VZqrPIUZmFztG5F2Km8gg7mGBySVx9BzVqgCnqVoLq2JERklj+aJfNZBu7HII5/zkVy/xE1rQbXwhrltdarp8GoT6RcfZ4pLlEllVo3C7VJywJyB1BPvXVXbQqm+6DBA4VNhY5JxjIHfPTrzjBya5/X/h14S8W3kF/rOkfaJ44FgjbzpYtsYJIXarAdWPbNAHmv7P/iHSNM8H3Njfatp9tcT6o5jgnuUjkbMcQBCsQWBIIGB1Hft7XEbgT7WYSLn5zs2BflXpzzk5PfqeeMHirD4SfD+xvbK9g0Aw3KOs0PmXM52uuGAILkEj0Oc4PUZrtLWV1ihF1J++mywGCB0zgZAI45weevXBoA+cvBet+MPDOuan4g1P4f8AiPWtd1D5JLyRZogsfynaEERHVR7AKoUKAc53wN8QX2ka5dWNt4fu9UttTmtra5liLeXaqWYb3ARgeCx5K8K34fUUNwJpJkCkeU+3JB54/Tv+GD0Irn/D3gzw/wCDZpI9B0l7VL4r58i3Ej8x5KZ3McDlun0Oc0AWfEtvdvoOo22lJP8A2jNptxFazRyFWEuz92C+eDk5DEjBzzya8I+BOu+EdIt9TGsXFrZ6pvWRZ7hvL3wgrhVcsBwwLFMZb5T823C/RA1KEzQpsl8uaNXSfYfLOTwpPYn0PqO5xXHav4B+H3iK/udUv9GtXZYxJLcQyvCHZmYncsbLl89ScscgdhQB0Wg3+h6hFcyaJqFvcoLhYp57cowlmEaMSXAxIxTYCQTwMcEHEXjv/knniX/sFXX/AKKapvDGi6J4f0r+ztAsltbJXLjZlhIxPLbySWPGMk5wB2xVnU9OtNZtbmwuYQ8MyeVcBkdd8bAgqHBB6MwyDxk+tAHkX7PmlWd/8P8AVlurS3kinv5IZiyfPIvlR4Un+6A78c53t0yc4v7OdvJdWfiyGG4a3kb7HiVc5XBlPYj0xXtHhfw5pXhjR5rHQLKOzQztJLD50kg8zCg/M/zDKqvt0IB7s8O+B/DXg8XB0TTxZ/aWjMpM8j7iuQv32OPvsOOucHNGwG/CsccYhixtiATaDnbgDA/LFSVEm/c37lUzIdx3feGOGHHJ6DBx364GZaACiiigBksSTwvFINyOpVhnGQeDSyRxzRmOVFdD1VhkH8KKKAFVVRAiKFVRgADAApaKKAGRRpDEkUYwiKFUZ6AdKfRRQBGsEUbKyIFKpsG3gbewx7dvTJ9aQ20LCUFP9awZ+TyQAAR6HgdPSiigB7Rqzq5HzLnB+vX8P8B6U2SCOZozIgYxvvTPZsEZ/U0UUASUUUUAf//Z\",\"uuid\":\"77b7b4c9258a432399398d955dbb9a95\"}}'); +INSERT INTO `tbl_log` VALUES (8076, 63, '用户', '43.152.142.64/1.9.116.218', '2026-09-28 12:53:21', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8077, NULL, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-28 12:53:21', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"14cn\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"77b7b4c9258a432399398d955dbb9a95\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8078, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-28 12:53:21', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8079, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-28 12:53:21', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8080, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-28 12:53:21', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8081, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-28 12:53:21', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8082, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-28 12:53:21', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8083, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-28 12:53:21', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8084, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-28 12:53:33', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8085, 63, '接口日志', '43.152.157.63/1.9.116.218', '2026-09-28 12:53:37', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8086, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-28 12:53:37', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8087, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-28 12:53:37', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8088, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-28 12:53:37', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8089, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-28 12:53:37', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8090, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-28 12:53:37', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8091, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-28 12:53:37', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8092, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-28 12:53:37', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-28\\\",\\\"endTime\\\":\\\"2026-09-28\\\",\\\"createTimeRange\\\":[\\\"2026-06-27T16:00:00.000Z\\\",\\\"2026-09-27T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":6,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782676800000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303412-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1565,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303412-1PH-WS79-ADD1\",\"operTime\":1782676800000,\"operTimeStr\":\"2026-06-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303412\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8093, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-28 12:53:37', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8094, 63, '接口日志', '43.152.157.63/1.9.116.218', '2026-09-28 12:53:38', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8095, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-28 12:53:39', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8096, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-28 12:53:39', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8097, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-28 12:53:39', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8098, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-28 12:53:39', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8099, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-28 12:53:39', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8100, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-28 12:53:39', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8101, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-28 12:53:39', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-28\\\",\\\"endTime\\\":\\\"2026-09-28\\\",\\\"createTimeRange\\\":[\\\"2026-06-27T16:00:00.000Z\\\",\\\"2026-09-27T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":61,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8102, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-28 12:53:39', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8103, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-28 12:53:40', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8104, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-28 12:53:41', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8105, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-28 12:53:42', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8106, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-28 12:53:44', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":8,\"rows\":[{\"assetCategory\":\"工装设备\",\"assetCode\":\"FA-TOOL-2025-008\",\"assetName\":\"全自动钢网清洗机\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":8,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"originalValue\":78000.000000,\"purchaseDate\":1739131200000,\"quantity\":1.000000,\"remark\":\"用于钢网水基闭环清洗与烘干\",\"source\":\"DEMO\",\"specification\":\"SAWA SC-A1000\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCategory\":\"物流设备\",\"assetCode\":\"FA-WH-2024-007\",\"assetName\":\"电动平衡重式叉车\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":7,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"originalValue\":145000.000000,\"purchaseDate\":1721592000000,\"quantity\":1.000000,\"remark\":\"额定载荷 2.0 吨,持证人员操作\",\"source\":\"DEMO\",\"specification\":\"Toyota 8FBE20\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetCategory\":\"IT设备\",\"assetCode\":\"FA-IT-2025-006\",\"assetName\":\"MES 数据库服务器\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":6,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03 机柜\",\"originalValue\":168000.000000,\"purchaseDate\":1736884800000,\"quantity\":1.000000,\"remark\":\"双机热备主节点,纳入信息安全资产清单\",\"source\":\"DEMO\",\"specification\":\"Dell PowerEdge R760\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetCategory\":\"动力设备\",\"assetCode\":\"FA-UTIL-2023-005\",\"assetName\":\"螺杆式空气压缩机\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":5,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"originalValue\":186000.000000,\"purchaseDate\":1700424000000,\"quantity\":1.000000,\"remark\":\"为 SMT 车间提供稳定压缩空气\",\"source\":\"DEMO\",\"specification\":\"Atlas Copco GA22 VSD+\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetCategory\":\"检测设备\",\"assetCode\":\"FA-QC-2024-004\",\"assetName\":\"在线 3D SPI 检测系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":4,\"keeper\":\"陈晨\",\"location\":\"一车间 印刷检测区\",\"originalValue\":1120000.000000,\"purchaseDate\":1712347200000,\"quantity\":1.000000,\"remark\":\"用于锡膏体积、高度及偏移检测\",\"source\":\"DEMO\",\"specification\":\"Koh Young KY8030-3\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCategory\":\"检测设备\",\"assetCode\":\"FA-QC-2024-003\",\"assetName\":\"在线 3D AOI 检测系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":3,\"keeper\":\"陈晨\",\"location\":\"一车间 AOI 检测区\",\"originalValue\":1350000.000000,\"purchaseDate\":1712347200000,\"quantity\":1.000000,\"remark\":\"用于焊后外观与三维缺陷检测\",\"source\":\"DEMO\",\"specification\":\"Koh Young Zenith 2\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCategory\":\"生产设备\",\"assetCode\":\"FA-SMT-2024-002\",\"assetName\":\"十温区氮气回流焊系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线\",\"originalValue\":980000.000000,\"purchaseDate\":1710705600000,\"quantity\":1.000000,\"remark\":\"炉温曲线纳入工艺受控文件\",\"source\":\"DEMO\",\"specification\":\"HELLER 1936MK7\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCategory\":\"生产设备\",\"assetCode\":\"FA-SMT-2024-001\",\"assetName\":\"SMT 高速贴片生产线\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":1,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线\",\"originalValue\":2850000.000000,\"purchaseDate\":1710705600000,\"quantity\":1.000000,\"remark\":\"关键设备,按月盘点并执行点检保养\",\"source\":\"DEMO\",\"specification\":\"Panasonic NPM-D3A 双轨配置\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8107, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-28 12:53:54', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetCode\":\"FA-TOOL-2025-008\",\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-WH-2024-007\",\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetCode\":\"FA-IT-2025-006\",\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetCode\":\"FA-UTIL-2023-005\",\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetCode\":\"FA-QC-2024-004\",\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCode\":\"FA-QC-2024-003\",\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCode\":\"FA-SMT-2024-002\",\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8108, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-28 12:54:01', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8109, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-28 12:54:01', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789723142000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8110, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-28 12:54:56', 0, 'AssetController.options()', NULL, 'GET /apis/asset/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"creator\":63,\"purchaseDate\":\"2025-02-10\",\"assetCode\":\"FA-TOOL-2025-008\",\"quantity\":1.000000,\"assetCategory\":\"工装设备\",\"keeper\":\"王磊\",\"originalValue\":78000.000000,\"specification\":\"SAWA SC-A1000\",\"remark\":\"用于钢网水基闭环清洗与烘干\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"全自动钢网清洗机\",\"location\":\"一车间 钢网房\",\"id\":8,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-22\",\"assetCode\":\"FA-WH-2024-007\",\"quantity\":1.000000,\"assetCategory\":\"物流设备\",\"keeper\":\"张伟\",\"originalValue\":145000.000000,\"specification\":\"Toyota 8FBE20\",\"remark\":\"额定载荷 2.0 吨,持证人员操作\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"仓储物流部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"电动平衡重式叉车\",\"location\":\"原材料仓充电区\",\"id\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-01-15\",\"assetCode\":\"FA-IT-2025-006\",\"quantity\":1.000000,\"assetCategory\":\"IT设备\",\"keeper\":\"赵敏\",\"originalValue\":168000.000000,\"specification\":\"Dell PowerEdge R760\",\"remark\":\"双机热备主节点,纳入信息安全资产清单\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"信息技术部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"MES 数据库服务器\",\"location\":\"数据中心 A03 机柜\",\"id\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2023-11-20\",\"assetCode\":\"FA-UTIL-2023-005\",\"quantity\":1.000000,\"assetCategory\":\"动力设备\",\"keeper\":\"陈晨\",\"originalValue\":186000.000000,\"specification\":\"Atlas Copco GA22 VSD+\",\"remark\":\"为 SMT 车间提供稳定压缩空气\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"设备动力部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"螺杆式空气压缩机\",\"location\":\"动力站 1 号机位\",\"id\":5,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-06\",\"assetCode\":\"FA-QC-2024-004\",\"quantity\":1.000000,\"assetCategory\":\"检测设备\",\"keeper\":\"陈晨\",\"originalValue\":1120000.000000,\"specification\":\"Koh Young KY8030-3\",\"remark\":\"用于锡膏体积、高度及偏移检测\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"品质部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"在线 3D SPI 检测系统\",\"location\":\"一车间 印刷检测区\",\"id\":4,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-06\",\"assetCode\":\"FA-QC-2024-003\",\"quantity\":1.000000,\"assetCategory\":\"检测设备\",\"keeper\":\"陈晨\",\"originalValue\":1350000.000000,\"specification\":\"Koh Young Zenith 2\",\"remark\":\"用于焊后外观与三维缺陷检测\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"品质部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"在线 3D AOI 检测系统\",\"location\":\"一车间 AOI 检测区\",\"id\":3,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-18\",\"assetCode\":\"FA-SMT-2024-002\",\"quantity\":1.000000,\"assetCategory\":\"生产设备\",\"keeper\":\"王磊\",\"originalValue\":980000.000000,\"specification\":\"HELLER 1936MK7\",\"remark\":\"炉温曲线纳入工艺受控文件\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"十温区氮气回流焊系统\",\"location\":\"一车间 SMT-01 线\",\"id\":2,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-18\",\"assetCode\":\"FA-SMT-2024-001\",\"quantity\":1.000000,\"assetCategory\":\"生产设备\",\"keeper\":\"王磊\",\"originalValue\":2850000.000000,\"specification\":\"Panasonic NPM-D3A 双轨配置\",\"remark\":\"关键设备,按月盘点并执行点检保养\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"SMT 高速贴片生产线\",\"location\":\"一车间 SMT-01 线\",\"id\":1,\"status\":\"IN_USE\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8111, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-28 12:55:06', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8112, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-28 12:55:09', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8113, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-28 12:55:09', 0, 'MaterialController.getList(..)', NULL, 'GET /apis/material/list', '{\"search\":\"{\\\"materialParam\\\":\\\"\\\",\\\"standard\\\":\\\"\\\",\\\"model\\\":\\\"\\\",\\\"color\\\":\\\"\\\",\\\"brand\\\":\\\"\\\",\\\"mfrs\\\":\\\"\\\",\\\"otherField1\\\":\\\"\\\",\\\"otherField2\\\":\\\"\\\",\\\"otherField3\\\":\\\"\\\",\\\"weight\\\":\\\"\\\",\\\"expiryNum\\\":\\\"\\\",\\\"position\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":24,\"rows\":[{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"commodityDecimal\":200.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":706,\"imgName\":\"\",\"initialStock\":0,\"lowDecimal\":200.000000,\"mBarCode\":\"1002\",\"materialOther\":\"\",\"mfrs\":\"SMT\",\"mnemonic\":\"MD-4G111(VF) 4G\",\"model\":\"MD-4G111(VF) 4G\",\"name\":\"MD-4G111(VF) 4G\",\"purchaseDecimal\":100.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) 4G\",\"stock\":0,\"unit\":\"只\",\"wholesaleDecimal\":200.000000},{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":34,\"categoryName\":\"包装\",\"commodityDecimal\":10.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":705,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":10.000000,\"mBarCode\":\"1001\",\"materialOther\":\"\",\"mnemonic\":\"MD-4G111(VF) bz\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 包装\",\"purchaseDecimal\":10.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"stock\":0.000000,\"unit\":\"件\",\"wholesaleDecimal\":10.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":340.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":340.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"remark\":\"Excel初始化;条码:3PH-APEC3-WC\",\"standard\":\"3PH APEC3-WC\",\"stock\":7223.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":340.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":73.500000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":73.500000,\"mBarCode\":\"1PH-WS79\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"remark\":\"Excel初始化;条码:1PH-WS79\",\"standard\":\"1PH WS79\",\"stock\":52400.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":73.500000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":24.300000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":24.300000,\"mBarCode\":\"C.4.T.0.00722\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"remark\":\"Excel初始化;条码:C.4.T.0.00722\",\"standard\":\"MD-RS178(VA)\",\"stock\":1000.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":24.300000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":142.560000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":142.560000,\"mBarCode\":\"C.4.T.0.0068900002\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"remark\":\"Excel初始化;条码:C.4.T.0.0068900002\",\"standard\":\"MD-RS114(VB)\",\"stock\":100.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":142.560000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":132.840000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":132.840000,\"mBarCode\":\"C.4.T.0.00686\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"remark\":\"Excel初始化;条码:C.4.T.0.00686\",\"standard\":\"TC160(VA)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":132.840000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":0.100000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":0.100000,\"mBarCode\":\"C.4.T.0.00654\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"remark\":\"Excel初始化;条码:C.4.T.0.00654\",\"standard\":\"MD-4G111(VF)\",\"stock\":76970.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":0.100000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":324.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":324.000000,\"mBarCode\":\"C.4.T.0.00562\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"remark\":\"Excel初始化;条码:C.4.T.0.00562\",\"standard\":\"MD-4GVIII(VB)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":324.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":129.600000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":129.600000,\"mBarCode\":\"C.4.T.0.00553\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"remark\":\"Excel初始化;条码:C.4.T.0.00553\",\"standard\":\"MT-P109(VA)\",\"stock\":500.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":129.600000}]}}'); +INSERT INTO `tbl_log` VALUES (8114, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-28 12:55:14', 0, 'SystemConfigController.fileSizeLimit(..)', NULL, 'GET /apis/systemConfig/fileSizeLimit', '{}', '{\"code\":200,\"data\":10485760}'); +INSERT INTO `tbl_log` VALUES (8115, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-28 12:55:14', 0, 'DepotController.getAllList(..)', NULL, 'GET /apis/depot/getAllListWithStock', '{\"mId\":705}', '{\"code\":200,\"data\":[{\"currentStock\":0.000000,\"id\":25,\"initStock\":0.000000,\"name\":\"半成品仓库\"},{\"currentStock\":0.000000,\"id\":26,\"initStock\":0.000000,\"name\":\"成品仓库\"}]}'); +INSERT INTO `tbl_log` VALUES (8116, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-28 12:55:14', 0, 'MaterialAttributeController.getNameList(..)', NULL, 'GET /apis/materialAttribute/getNameList', '{}', '[{\"name\":\"自定义3\",\"value\":\"5\"},{\"name\":\"自定义2\",\"value\":\"4\"},{\"name\":\"自定义1\",\"value\":\"3\"},{\"name\":\"多尺寸\",\"value\":\"2\"},{\"name\":\"多颜色\",\"value\":\"1\"}]'); +INSERT INTO `tbl_log` VALUES (8117, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-28 12:55:14', 0, 'UnitController.getAllList(..)', NULL, 'GET /apis/unit/getAllList', '{}', '{\"code\":200,\"data\":[{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":15,\"name\":\"个/(箱=12个)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":19,\"name\":\"个/(盒=15个)\",\"otherUnit\":\"盒\",\"ratio\":15.000,\"tenantId\":63},{\"basicUnit\":\"盒\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":20,\"name\":\"盒/(箱=8盒)\",\"otherUnit\":\"箱\",\"ratio\":8.000,\"tenantId\":63},{\"basicUnit\":\"瓶\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"瓶/(箱=12瓶)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63}]}'); +INSERT INTO `tbl_log` VALUES (8118, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-28 12:55:14', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8119, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-28 12:55:14', 0, 'MaterialExtendController.getDetailList(..)', NULL, 'GET /apis/materialsExtend/getDetailList', '{\"materialId\":705}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"commodityDecimal\":10.000000,\"lowDecimal\":10.000000,\"wholesaleDecimal\":10.000000,\"commodityUnit\":\"件\",\"id\":125,\"purchaseDecimal\":10.000000,\"barCode\":\"1001\"}]}}'); +INSERT INTO `tbl_log` VALUES (8120, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-28 12:55:46', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8121, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-28 12:55:46', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8122, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-28 12:55:46', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8123, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-28 12:56:59', 0, 'PersonController.getList(..)', NULL, 'GET /apis/person/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":44,\"name\":\"Neezam\",\"type\":\"CEO\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":31,\"name\":\"Arif\",\"sort\":\"1\",\"tenantId\":63,\"type\":\"商务主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":36,\"name\":\"张伟\",\"sort\":\"10\",\"tenantId\":63,\"type\":\"资产管理员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":32,\"name\":\"Hafiz\",\"sort\":\"2\",\"tenantId\":63,\"type\":\"技术主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":37,\"name\":\"陈晨\",\"sort\":\"20\",\"tenantId\":63,\"type\":\"设备工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":33,\"name\":\"Aziman\",\"sort\":\"3\",\"tenantId\":63,\"type\":\"软件工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":38,\"name\":\"王磊\",\"sort\":\"30\",\"tenantId\":63,\"type\":\"生产主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":34,\"name\":\"Lim\",\"sort\":\"4\",\"tenantId\":63,\"type\":\"IT\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":39,\"name\":\"赵敏\",\"sort\":\"40\",\"tenantId\":63,\"type\":\"IT运维工程师\"}]}}'); +INSERT INTO `tbl_log` VALUES (8124, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-28 12:56:59', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8125, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-28 12:56:59', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8126, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-28 12:57:07', 0, 'AccountController.getList(..)', NULL, 'GET /apis/account/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"serialNo\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8127, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-28 12:57:23', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"供应商\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":0.000000,\"allNeedPay\":116500257.436400,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Excel初始化默认供应商\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":89,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"1\",\"supplier\":\"浙江瑞银电子有限公司\",\"taxNum\":\"\",\"taxRate\":0.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"供应商\"}]}}'); +INSERT INTO `tbl_log` VALUES (8128, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-28 12:57:45', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8129, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-28 12:58:37', 0, 'RoleController.getList(..)', NULL, 'GET /apis/role/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"description\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":7,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]}}'); +INSERT INTO `tbl_log` VALUES (8130, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-28 12:58:42', 0, 'AccountController.getStatistics(..)', NULL, 'GET /apis/account/getStatistics', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"allCurrentAmount\":\"4375818.53\",\"allMonthAmount\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8131, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-28 12:58:42', 0, 'AccountController.listWithBalance(..)', NULL, 'GET /apis/account/listWithBalance', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8132, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-28 12:58:44', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8133, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-28 12:58:44', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8134, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-28 12:58:44', 0, 'DepotItemController.retailOut(..)', NULL, 'GET /apis/depotItem/retailOut', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-06-28\",\"endTime\":\"2026-09-28\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"realityPriceTotal\":0.000000,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8135, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-28 12:58:44', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8136, 63, '接口日志', '43.152.157.63/1.9.116.218', '2026-09-28 12:58:44', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (8137, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-28 12:58:52', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8138, NULL, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-28 13:00:18', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8139, NULL, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-28 13:00:18', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8140, 63, '接口日志', '43.152.157.63/1.9.116.218', '2026-09-28 13:00:18', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8141, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-28 13:00:18', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8142, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-28 13:00:19', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8143, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-28 13:00:19', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8144, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-28 13:00:19', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8145, NULL, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-28 13:00:59', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (8146, NULL, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-28 13:01:00', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8147, NULL, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-28 13:01:00', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8148, NULL, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-28 13:01:00', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3iRobWJzJP5Qdj88knQn03cfh0p8QlCnznR2zwUQqMfiTUdxJskiHlKwGXaRzhYwOCc4PODwOOM81w/jH4q+G/BeorbXF7LdXT7HltbVPOaNSMg8lVXIxxuzyp2kMTQB3hniUKXcJufYu/wCXLZxgZ69PxqNg8MsXzuYizbiWHVjwDkdMnAwc9OD24Tw18WNB8Z38dtpF1LbXaLIxsb2La86qAcpt3Bv4uA27gnaQOe7Fs4wv2iUx7SpVjzjnkMMMCOBnPQevNAFeOa5WGYNbz7S7iN0cM/LkdGAAHOR1GBz7zbHKRljPMC6suP3ZUYHLcjIzkkY79OK8Y+NXgFX0TW/Fl1rN7KtqLcadpwOILUFo4pBg5zu4b5dvI5zXUfBMNcfCfRY2aNoY3mJGDu3Cd2A69jg575xjjkYHo4ZvNZSmEABDZ6nnIx7cfnUbMkzGIO4ZWBJUEYxtbGenOR9QTSuGmWaEiWMFdokUgZyOq85BHuK8btv2frK9ga+8WeI9W1HVpAGmmt5ARwoG3Lq7PjBAbjIx8oxQB7JJMoSNlkUB2UK2Mg59x69AfUjr0qWvB/gvrOsWvjXXvA82rSXumackxt5WGWUxSLENmSdqENnbyAQMdW3e4vOtrYtcX0sMKxR755C22NABljk9FHJye1ACyyhbmCIxzNvLEOgO1cD+I++eKb8ysLby53jKnM28fL14zkNn3x6c15lb/tAeB21L7EzanFbqzIL2W33REDOG4YyYOBjK55GQOccp+zL/AMzT/wBun/tagD3cE/ZxG08yy4Uk4UyLk8ZABHqM4xwfrVmqrJFZyPcFpyH4ZQrSc8nsCwHXjoM9OatUAQgvHKQ5aRZZMIAvEY29z6ZB59WAr518PX9roP7Q/iZ/EM1lFJKbtbWe/lUxxFiGjy/IXMXy4yCAxXrxX0VFbiKaWQSO2/HDYO3qcA4zjJPBJx2xXL+JfBHhjxRMDrenR3E0b/uXETxsBsZtm9MM653vjPU/mAeTeJ7+z1/9o7w1N4Uu4LmRfs/2ueykAD7WdpcuMB/3GAcE5A29Rivf5A8l3GhjBiUbw+Tndz0I6duO4Y+hBwfDvgXwr4dgMmh6Pb2zS/OLggySjIHR5MsBwDtzjIzitwrIIIw0CvI0i78YYcEfMc7ewHQcHGAcUAebfGjWtHi+G2vaINTsF1BTb7LIXSmbHmxv/q87hxk4/ugHp0X4La/pS/DjQNITUrF9TLThrL7UgnA86Rs7M5Py/N9Mn673iD4XeDfEesvquqaYJL+4dfMkNzKvm7V242q4H3V7emeecpoXwx8G6DrMepaTozWWoWrExyfapHIVgVJ2s7DDAsORnr0PNAHV/Z1t5EaJJ3XdgIsnypnqcEjjpxzjsOteB/Ev4zX15rTeH/BepRxWxIgm1AMiB3OVIjkbhU+YfvMjlcggDLfQDPBZx/MwRWY4BPLMSTgepJzwK4Fvgt8PvJ8yPw2XOAQpvbhSR+L9cdjj8KAM34VeGPCfhmxMOneJNO1HxDcRf6XcWVxFKUXcvyoOSqA4GSBuJGedgXX+Kiajf/DXxEtnDKk0VssqTI5iLwbg0qnJHAjVgynr6cgVpeGvh/4T8MXcuo6Hor2ty8RiYvNKxZcq2AJGI6qpz1GO3IrfZ2kjnMbR3M8bCRIc+W0fHAPUgkZ69ckdKAPIPhb4l8Faf8IorbU9U063niW6+3Wskiq8xYt1iP8AriY9gHDZxt6jFZH7NMalvE8uwtJGLXbtOCcibI/Hjg8ZA9K9FT4UeBrDW/7RTQbWWWWUkwzMWhjLk9IydgX7wClSM7cYxWx4Z8DaL4RS4bQrIadJcgeeizvOkhXdszvOeNxPG3rzmgDdVTA8KPM6guyouS3mZBPzFsnIwe/b8KtVSnhkgileKd8M+/Dq8pU5XgBSDt4PHv6cVdoAKZJGk0ZRxlT74/EHsfeiigBzKroyOoZWGCCMgimGCM+TkE+ScoSxJBwRnPfgnrRRQAgtbdZBIIIhIGLBggyCepz6nvSi3iExl2DeSCT7gEZ+uDjPXHHaiigB7KrqVZQysMEEZBFLRRQAUUUUARyQQzBhLFG4cAMGUHIByM/jTmjV2RmGSjbl9jgj+RNFFADqKKKAP//Z\",\"uuid\":\"78db244b79d946678338b206d3434bc5\"}}'); +INSERT INTO `tbl_log` VALUES (8149, NULL, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-28 13:01:00', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8150, NULL, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-29 05:07:55', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8151, NULL, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-29 05:07:55', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8152, NULL, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 05:07:58', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3nzC+ZYmLoodTGAMswOOpx6EenNLHNvlKH5WCK5jI5XOepBwenb096SKJY0aOOQ8SFm5BIJbcR+v5Gvlr4q+OE8SeMLTSL031vo2mXHlX9rAEUmYSMJnTkhjt4UsfU4G40AfUV88sdqTBE0kpI2gEgA9s45xnH584GSHWsjmNY5z/AKQEVnX0znHI4J4PT06CvOfguNDbwXdHwq2opZ/bpPNGqqjyed5Uf3TGQNoG3ryeelehQQzLcAvOXRFIIII3OxDE89hwB1xkjPFADxPO0uxbR1UNgvI6gEeowSfwIH4VDNPdBfLjEZl3MCyZITnKBhg9QVz0IySOORyHhD4haD4w1W90Sws9Ss72zUtNZ6jHsBTcEdcAsBtJUbTt64HG7Efhb4heHfHHiS7tdCkulu7PNwftMbLHcoP3e9MMdo5X7yhvmHHDCgDv4ldYkWR97hQGfGNx7nHao7dpG8xZAfkfapYYJGByexycnj9DkVwGlfGTQ9bh1mbTtL1i5g0i2a5uJ44UEbIpwdpZ15I3MAwUlUbjIxWz4S8bWnjnR5dW0SO4ijSdrTyr4KmXCh9w27ieGHGR0P1oA6pH37vlZSpx8w/UeoqjcedG6O9yFaSRRFFu2qGx93djkH5uo7jGCM1yHg/4jaH44u7650nSNWD2KI00kiRgEtlVG1ZCWON/OOAp5HAPazvZpbyX1xOi2ywEySSS4iEeMljk7cY7+nfFCAsReZ5Sebt8zaN+3pnvj2qHyFaIRRyzxmNuH3EnP1bO4c98j8Rx5WPjp4Bu9Ta0mGpxRBnVdQkt8xjGSHGGLjn7vyZG7oBmub/Zl/5mn/t0/wDa1AHvyowkdjIzBsYU4wv04z+eadUMhh+1QCSIGTDeXIVHynjIB7Ej9AfSpqAIbiTydsjqfKQMzuG+7gdSO46/jjjuPAPiZE0X7Qvg/c+/fJZMPvcA3b8ck/pgewr377TsDtNG0Sh9qH724Y4PGcZPAHXp3OK53V/CPhrW/E+n6/qFoZNTsBCYZGeVdo3lo/lBAyHz1B7gjpguBvPDHd2lxtEpFxGUKyMy9iOA33fwHvzR5t80xVbeNYztYO7dBkblIH8WN2COOlTInlzsFOEZchAmADkljn1O4fkfeopGjuSsTLOEbDJJG7BW4/vKeB9cZ7ZoA+Z/Ec+ofC/4x61dpeyxDUbO4uIrjYjGVpUZ0+XnaBcqBg9l5ypOaGmJf/DU+HPEAUacdW0C8PnkLN5k5ErQkL823hrTsBzg/wAde/698NPDniaWC51vTzqF5GnkC4a6mjKR7mYAAMckFzjP4mpNY+H3hPVtO0rTdW0x7iz0q3ZLVnuZVEKAICCysM8KvX+6elAHCfs7aDdaf4XvdakjAi1SYKhMg5ji3KGCgd3Zwckfdzj18p1a71L4Yax4w8K2MrNZalF9mSRgCTFu4YlkG4+WZYztwNzMQflFfU+g6Tp+gadDpGkILS0hTMVm5LtHl2ZzlmLHJY85IHbIrwDxBpPiP4sfEHTb3U/CuoeHtNhgjgu5bslFWJZWLMruijeRJgLg889M4APT/gj4YTw/8OrS6kg8u+1X/S5mO0kof9UAR/DswwBJwXbpnAufFizf/hV+tw6aAl39n3qFkCP5KMGlAJI+URmQbR2JUDnFdwVjhMszOVBGXLOdoAHXBOB+FZ8VopuJZJ3juZoJGkSMHcybjkD5jgcBcY24x9aAPKfhT4q8Hab8I4bPUdT0iCRDcf2ja3JUPMCzE5Q8y5jKAYDZxt6jjE/ZsWJ28RLJB5v7y0KkoGCMBOQ3t0xn1Ir0y2+FPgG21RL4+HrUXcrvIIZ3LJlskqIixjwAeAFwMDHQGtTw34K0PwXLdf8ACPaWbZbwRib/AEh3B2k/3ySMByeOuO3GQDoUCQsIkRgG3PnqAScnn3J/nUlQwpCskxjyX3YcsSTnGcc9ueg4GamoAKKKKAEZVdSrAFSMEEcEUKqooVVCqBgADAAoooAWkVFQYVQoyTgDHJOSfzoooAasUaBAkarsXauBjaOOB6DgflT6KKAI3hjlbMiBvlKYPIKnGRj8BT2VXRkdQysMEEZBFFFADDBEyRq6BxGQV3/MQR0OT396koooAKKKKAP/2Q==\",\"uuid\":\"cde5cd8ab2f844929961e3ccf19dcbb2\"}}'); +INSERT INTO `tbl_log` VALUES (8153, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-29 05:07:58', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8154, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-29 05:08:17', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"fwyd\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"cde5cd8ab2f844929961e3ccf19dcbb2\"}}', '{\"code\":200,\"data\":{\"msgTip\":\"user password error\"}}'); +INSERT INTO `tbl_log` VALUES (8155, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-29 05:08:17', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3sMJXykjAISrLgcn3yM+/41EspMyzNOiwuoQRMBkSZOfmB69iOeRTvOlbaY4DtLsrbztK4OM47ggEj8PUkfL3xZ8bweI/GNnpFydQt9F0ybytQtYlRSZ1lYTSR8kMdvCluhzwMnIB9NzPc/apIN6xo6AwSLw28dV5BHQZ6dM4BwSJ7eV5gJCoWMqMAqwYNk5yCAcdMcV5r8F4vDD+G7tvDMmrGy+2Pvi1XZv80LEdyiP5cAbeuSD6d/TnkWPbvONzBQe2e1AWK0btdG5BjkiXJjWRZQdwGQSME7SDn36fQTAzG5PCiALjkfMW45HPTqOxyK8K+F0Wk3Hxs8T3Fvf3s146XMssZthDEGNyhba4lLMoOMBlGQckDGD7m1w8dtG7xbZX2jyy3AY9i3pnv+WSQKAJJJUiUM5wCwXp3JAH6kVVf7Wse6Pa10Y0Dqc+UDzkj8TzznAHsDIzyWxkbyHeMsDlHLsMjklT0A9Fz7CvKYP2gPBpsLkxQajZfZ2jMMH2VC84LfOFAbYuBnO5h1yMnigD1wAvGvmDa3BIVjwevXjI/nT64nwh8SfD3xBM1vpb3tvdQHcYZgEkC44cBWYFcnHOQCAGA3Lu1PGc0A8Fa5a3kzKH0q5MrwxhmVfKbLBCw98ZIGRjcM0Ab0kbSI6GRlycqycFen58/h2IPdWiVpEkJfKZwA5A59QDg/jXlXwFj08eBtQh0m9vZof7RZjNcWqwOGMceQFDyKRgDnOeTwOCfV8ncBtOCCd3Ye3+fSgBA+ZWj2sNqg7iODnPAPrx+op1QzyJAvnvuwvy4B9SB07np79h1wZqAKk7vaRzXUjmQgYSJAQGyflGOfmycZGM55HArwj4p7Zv2gPBX3grrY+qnBun/EH9a92ls4r5XMkpcbz5bRnaY8YBGR1+Zc89wPQVzOpeFvDmt+IrPW9XsJJbqyjU29/LM8QTy5NyHKMEOWYkcZ47gigDrLco0ZeOR3R2LDcfu+o55HOeD06cYwC4eNE3ySmPywZDg84HXjuOf19cUTt5ZSbaCFJDEIWbaf7oAz12/gKitJme3kcv5zhidqMGAyAQqthcjBHJ9etAHgfw2lkj/aA8aiKKWSR/t6r5ePlP2lTkk8Ace/bivebK2lsoooZLhGAdgODmXI3EnJJ3Z3Hg4xnj0ydH8EaDo3iS+8RWFgbfUb9W+0OZXYku+9+CxUZYL0HGOOtbdysvnROrQiMBhmT+FzgKR69xjI+9QA/7TH9s+yk/vfL8wD1GcH+nX14zg4+fv2arbfd+IrlFgEsa2yeY8W5wjGQsqtkbQdq565wPSveJ0225aaUokTC4lDAuoA5IVuDwRn8uMYFZHhbwL4f8IT3U+iacLM3SoHXzZHbAycEs7DqT0x+NAM8b+EEMOn/HfxRZwxeVFHHeQxx/KNgW4TAwOOAMYH8q9n8fxRy/DzxH5kaPs0y5ZdwzgiJsEe9N0Twb4f0bxDeazZ2Cw63dxlryZJpWD+Y+5sBmKgF1zwOMVo61YW11oU2nXKzSWlwPJlUSHc6McFNxYH5s7c543dhQFjzD9nVIpfh/eLJGrldWkddy5CkRQ857HmvWd1w0Ra3kjkbeDtlUqQpwdpx0PPGR0xkd6yfC/hfQ/DmlxRaDY/YraVzclGkd2JdADyzHsq8ZI+XpnmtaRn+1NGbdzHJGqiWPAOcnIJzkYByD9ec4FAEsoZ3WMxq8Dqwk3Dj6e+eeMfiOhlpjOyyIoidg2cuCML9cnPPsDT6AEVFQYRQoyTgDHJOSfzoVFUsVUAscsQOpxjJ/AD8qKKABVVBhVCjJOAMck5P60nlR+W0exdjZyuODnrx75NFFADqRlVhhlBGQcEdxyKKKAFpNqlw5UbgCAccgHr/IflRRQAtQGytWYloI2OWPzLnG4YbGeme+OvPrRRQBMqhEVRnAGBkkn8z1oZVcYZQwyDgjPIOR+tFFAC0UUUAf/9k=\",\"uuid\":\"853ce654e1f740ec9d44304556d59d7b\"}}'); +INSERT INTO `tbl_log` VALUES (8156, 63, '用户', '43.152.142.43/1.9.116.218', '2026-09-29 05:08:26', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8157, NULL, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-29 05:08:26', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"fini\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"853ce654e1f740ec9d44304556d59d7b\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8158, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 05:08:26', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8159, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-29 05:08:26', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8160, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 05:08:26', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8161, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-29 05:08:27', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8162, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-29 05:08:27', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8163, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-29 05:08:27', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8164, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 05:08:49', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8165, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-29 05:08:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8166, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 05:08:49', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8167, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-29 05:08:49', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8168, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-29 05:08:49', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8169, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-29 05:08:49', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8170, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-29 05:08:49', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8171, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-29 05:08:49', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":6,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782676800000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303412-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1565,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303412-1PH-WS79-ADD1\",\"operTime\":1782676800000,\"operTimeStr\":\"2026-06-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303412\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8172, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 05:08:49', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8173, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 05:08:51', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD00000001726\"}', '{\"code\":200,\"data\":{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0,\"bankName\":\"\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1789718483000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"depotHeadType\":\"销售订单其它\",\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1719,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"phoneNum\":\"\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"totalPrice\":735000.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (8174, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 05:08:52', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSDD00000001726\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8175, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 05:08:52', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8176, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-29 05:08:52', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8177, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 05:08:52', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1719,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":10000.000000,\"depotId\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":10000.000000,\"anotherDepotId\":\"\",\"basicNumber\":10000.000000,\"taxLastMoney\":808500.000000,\"model\":\"1PH WS79\",\"id\":1524,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":73500.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":735000.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":735000.000000,\"finishPurchaseNumber\":0,\"operNumber\":10000.000000,\"taxLastMoney\":808500.000000,\"weight\":0,\"taxMoney\":73500.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8178, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 05:08:52', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1719}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8179, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-29 05:09:00', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":6,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782676800000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303412-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1565,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303412-1PH-WS79-ADD1\",\"operTime\":1782676800000,\"operTimeStr\":\"2026-06-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303412\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8180, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 05:09:13', 0, 'RoleController.getList(..)', NULL, 'GET /apis/role/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"description\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":7,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]}}'); +INSERT INTO `tbl_log` VALUES (8181, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-29 05:09:22', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8182, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-29 05:09:22', 0, 'UserController.getList(..)', NULL, 'GET /apis/user/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"isystem\":1,\"leaderFlag\":\"0\",\"leaderFlagStr\":\"否\",\"loginName\":\"admin\",\"orgAbr\":\"测试部门\",\"orgaId\":12,\"orgaUserRelId\":11,\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"roleId\":21,\"roleName\":\"admin\",\"status\":0,\"tenantId\":63,\"userBlngOrgaDsplSeq\":\"15\",\"userType\":\"系统管理员\",\"username\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8183, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-29 05:09:24', 0, 'OrganizationController.getOrganizationTree(..)', NULL, 'GET /apis/organization/getOrganizationTree', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8184, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 05:09:27', 0, 'MaterialPropertyController.getList(..)', NULL, 'GET /apis/materialProperty/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}}'); +INSERT INTO `tbl_log` VALUES (8185, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-29 05:09:28', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8186, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-29 05:09:33', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8187, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-29 05:09:35', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8188, NULL, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-29 05:09:45', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (8189, NULL, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-29 05:09:45', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8190, NULL, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-29 05:09:45', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8191, NULL, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 05:09:47', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8192, NULL, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 05:09:47', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3wiTzMhl2ccbee+ec/Tt2PrwkKLHuVZGbBAIZ9xXgcc89MHn1zRsLCVXJ2scDDYIGB0IwR37/AI+nz8Nr/tY/8/CNH/snzB/Z/wCA5/KgD35IwsoRblyULOyEg5DE4zxkAcgYx074qevPdI+K3h3VfFn/AAjui2Gq6jchgkl3bxpJCqg8u0hfJRSxG7kH+HORnvnlWNgHBUEgBj0JOePb8fUCgCBtQiNstxDiSIuqlywRVBxk5Ppnt349cSzTPbwq3kyTtkKREBnJ74J6fjXm3ir42+HfDHiKbSXF1dy2zKszWaJIgOfnQlmXDrjtkc4PIIHn+ia3p3iP9qWDVtJuPtFjPu8uXYybttkVPDAEcgjkUAfRrvs2/KzAsBlRnHufb/PSq0kxaZViuox5hKLG3DHaSHK+pHB6EfL75FhhKT8roBuB5Qn5e469ff8ASvKLn47eErDXTp63WozQrOVluRAksI3EZ2sHDFV+YZAbPO3cNuQD1SVG86ORWl4+UqhGMEg5IP0x68mqzNIL3yh5wjRw5YMCct04yTs4YHI4JGOBkcT4R+J3h7xZ4kfR9Hh1W6uIfMmN3cKqo0e4KWHzZCklcKVXtxkAVqfFG81XTPhrrt5o81wl6kalXgXLxoXUSFcDIwm87uq8nIwMAHYOodGU5wwwcEg/mOlRIZRceUXR0WNSST8+7J5IAxg49uQfw+WvC3hHwL4i8HXeueJfG8lrrjvO8qSTJuRhkglGBeYn72VI3bto+YE16F+ztea3f6Bqj6jczXOnW8kVvYmaQOYiF/eIufmChfJ4+76d6APYYlnaDLsySF8kHawUA8gEAZBA4J55554qxVOK0dXjLlSI5WkBJJLEggHjaFPJyMH8+auUAVvNjkcxyvGwMwWMISTlRuwfQgqT9MV8v/EPRNS1z49atpGhMIr2aFUiUSeWGUWSlo89BuUMuDgHODgZr6ldoZGa3cozMmTGSCSvTp6Vz48F+GJ/FzeKhYJJrSPg3Inc7WCeX9zdtyFwOnv15oA8z+AWvaFZ2d14Wlsv7N8SrK7XHnAh7vaTxzyGjGQY+2Cw6vj2m5njS3mPnrGyqRu+8VO3PTuQOcVzWo+AvCPibV4/EF3pbNqKlQt1FNNbyBkOATsZTuBGAx54HOAK3XnKatFA1srmTLLKqnKKq8ZOOuWYdeMj1oA+ffgtrVj4a8YeJ7bxTe2tnrEjhHur+VS29JG85PNJxljgk7uSoPzYp2i32l6l+1ULvRpIJbGSWUrJAuEdxaMJGHrlwx3D72c5Oc1634j+G/gzxFPJqmoaNby3YjEXmrLJEvy/KN4jYA46EnkAYzgDE1l8O/Cel+LItes9LtbPUVJMH2ctEo/dlGHlhtnQ9lHryeaANPxNFql34P1S30+T7Pq01rKlr5MuD5u07QrnbgnHXjHXtmvGvgJ4j8N6V4X1S01LUNLsbyS93TG9kSIywGMBQGYjdhg/HONx/vc++nayosoTcxGFJyNw549cYz+FfPXiK3hsfGuqXN/8G7zVbkag0qXsE84t5wXzG2xUZCWG0sCTli2QM7QAV/gpLZ3Pxk8SzaOEisZLW5e0BjICxG4jKDbxj5ccV658S9Q1PSfh5rd5piXBvjahswlyIPmVXdWXDAqrFgenyEkdc8T8HvAGv6XrmreK9XtYNHfUIHjt7CKMDyxIyybtmf3argKEPPUHGBn2VAwupcz7lKqREQPk68+uD7+hoA+avB+mfDDVPAk2peKtR87xBNJO95JNfOlxGx3ENGpIEhwA3IbLMRycLXXfs8+INXvdD1DT9Q+0z2ME8cdncSlmCHyzuiDMcbVVEIVRxu56iusvvg14Dnea5Tw3EZnk8xkS5mjU5bLBVVwq8ZwBgDjoK6q00Sz0fTbTTNJSSxtIlWKOODlUAO7Jz3ODljncW+bdQBdFmiJGExujclHZQxQE5Kj0GPl9hirNVftDwO4nSVgdzho0LKBkALgc5wQenr2HFqgBvlr5vmY+fbtz6j3/AM9z606iigAooooArRWFrECFgXHmCUBvmwwAAIz0wAAMdO1WaKKAGiONVRQigJ9wAfd4xx6cUwW8IhWLy1KKnlgMM/L6c9uBRRQA9o0aRHI+ZM4P16j6e3sPSl2qHLhRuIAJxyQOn8z+dFFACRxrEpVBgFi34k5P6mkiiSGMRxjag6DPT2Ht7dqKKAH0UUUAf//Z\",\"uuid\":\"27516665f6c34b9e9d5cb95cedcf19ca\"}}'); +INSERT INTO `tbl_log` VALUES (8193, NULL, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-29 05:26:48', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8194, NULL, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 05:26:48', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8195, NULL, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-29 05:26:49', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8196, NULL, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-29 05:26:49', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3e4f7HaTz72KpmUgjdhRyQOR74yeM+nFTbwUZk+fGRhSOSO31zxSSRJLt3jJRgynOCD/nj6Eivn8uW/a4LQ7HIJHLYGRY4PIB96APfXLy+WqKfLcEuxypAx0HQg5I/I9DioBC9sPND7URmLCWdnBQ4yct0IxnuOo75FxgWUgMVJGAw6j35qk0f7q2Q2zhXctLGGBUFgdwb1GWJ9OPoCAXWYKVBz8xwMAntnn06VAiyxTQxmQGER7Mu2Xd+MdvQE9e/SvOPFPxo8LeFvE7ac32y7lg3Ld/YokZA5wNpJdcuu0A8HGSM5BAt6H8X/DXiXxYnhrT2vbqW6LiG6jt/Ki2iMuRlnD5ABGdo56cc0Ad3ePLHGjRZHz/ADEIXwMHqo5POOmPXoDUzpvaNtzDY27APDcEYPtzn6gVHCpktx5qzKzJtYO4DcZ5+U4BPXI/pXif7Plto6f8JG2j397cSYtg7XdikGz/AFuANsr7gcc9Og/AA9n8i8S63JcgwF92xhyo7juTznHIxnuMClkuDbySoEMsu0zFVbkrnGAuSc4HoAT6ZpWliW/Je4kQpCx8thiPGQS2cckcDrxn60Mz2zCKC1Z1O5yQ2OScnr35PpyR2yVLiHB3lKKyNFMvzkYLLjODyMA5GcZ56EjjFK86sfKjbc7cfu2Xcgzgtg+h+v0r5i+Juv33j7+05NGlb/hFvC6RI5klXFxK8nlLKFUck5OM8BVJ+UvtPr3wVYr8ItD8iNHYtcCT5tuD5shBP/jo+hoGd8qThkaQlyW5CthVAB5A6nPHBJwT7VYoooApzCH7QVkh82UgSRF0BAIOAAQCRgtnJ6biR3x4JHaov7WTWz/PG24HtkNYng9889ep6173NBcSPJIPs/mRnNsWVjt+XB3c98kcdODzWNH4J8O/8JiPFcWmR/2oy7heLcSckps+5nZgoev49eaANWSOa2tbiVrjHltJMrsWPHUAjsoGRgA9iMGrqqFkfCEbsMWzwTjH8gKjuVSRBDNF5kMnysME89uAOB154xgU9oUe3aBgTGybDljkjGOvX8aAPnD4N6hp2i+J/FVn4s1OHT9YZ1V7q7mjDFkkfzl818jJco3BySuc8ZpvhzULHVP2oYr3T/sxt5ZJSWtf9W0gtGEjA4AOXDEkZBJJBOcnc+I1pBJ43vUvPhXe+ICqQ+RqFlcXEZki2LxJ5asGYMHXccHaFHYGovh74J124+Ip8cXmgR+GtMhSQ2tgkBLZKGFV8sYcYHzMxA3HkDDZAB7pJCfnit3hTdlpEkQuDn23DAOD9Tn3rwn9mX/maf8At0/9rV6b458Ra74d0O2vdI0K51XVC5ha3ghaRFDI37w7VJKhlU7QVJBGSK474BeDtZ8OaXqOpapBNZ/2g6oLS4i2SAR52uQeRku4wQPug8hhQB7BKkLfNKqHI2ZcDoxAx+PHHfiuS+JN3rcPgbXE8P8A2htVEUPkCzjZpgryBW2gA87Q53DkdeMAnrPOw8qBdzoocIp5IOcdcDOQR17Uxlaa2zJI4Qqrfu1ZHyOT7jPAx160AfLl5quq6H8H77wq3gDWdPt53jmu9UuzJtMvmRksVMQCg7FUDPHHJOSfRPgR4g1G90Cy8P3Hhy4i0y0t5Z4NVdWMU0nnklVyu3PzkcMT8h/D1bWdC03xDos2karbm5sZgokiMjKW2sGHzAhuqg9ap6d4csPDNhBb6HaJBb20TxrGWklYKXMhAy3JLE9T368YIBtxM7RI0ibHKgsmc7T6Z706oCpjURLLJvdmZXZS4HOcHsB27cdKnoAa0aNIjkfMmcH69R9Pb2HpTqKKAGRRJBCkUY2oihVGc4A4FPoooAKKKKACiiigBskUc0ZjlRXQ9VYZB/CnUUUAFNaNGdXZFLpnaxHIz1xRRQAu1Q5cKNxABOOSB0/mfzpaKKAP/9k=\",\"uuid\":\"53a1d1f996b84a1aa37232cbe35147f1\"}}'); +INSERT INTO `tbl_log` VALUES (8197, NULL, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:27:08', 1, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"Igj4\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"53a1d1f996b84a1aa37232cbe35147f1\"}}', 'com.reallin.smt.exception.BusinessRunTimeException: 验证码错误'); +INSERT INTO `tbl_log` VALUES (8198, NULL, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-29 05:27:08', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3kFYpypaVjM24ZUsq4UDGcYUcZ56kmmLFNFLLM0zzLgmOIAAjOOOwPTjOMZOSaHhuDemRbjZDsUbNueQ2SfbI4/H2rzr4teM7rQ9OtPC3h8SJr+sutvaGGVEMKFlXcMnK7iSin5cYYgjaMgHpCzO7IVhfy2/ibgjgEHaecdRzgg9sc0jzb0KxOI5N+xTLGcEjk4Bxu4B5Br5y+BGny6L8XNc0q5eNp7SyuLZyhJVnSeMHbkAkcHt0r6GkMkeZY1W5jSUuB95l4IYD3znHXrt4HIALEDTtuM0ap6AHJHY/UdweODyBim27tPifewXbt8sYKE9dytjJBHQ5x7A5r5K8a+ONM8d/EKO91WbWF8MRKEht4VjE8S+WN21SSmWkHJJJxj0AH0R8L10ef4a2EOjRXw0dvOSD7eyec6mR9xbZwPmLAY7AUAdg83lOfMXbH8gV85yzHGMflz7+1RzXR8lvs6M85j3xxsNpP/fWOnGR1H4ikt5JZFkufNjmiZR5ccJBAIznDHGSePQDH418k3Vn4a1D4q+LE8ValcaZZi8vHieJCzGbzjtU7VfAwWJOO3WgD62nikuvLaG7McDIwbywCXDDghu2OuRUk/mbkMTjzACREzBQ44HJwTxntXnXwt8O+EtF8PajqnhLXJ7m3v8AbHLPcurCCSPcAMFEIOXzhhyNp6HntNV1i00nR7jWL++FpYxRtumwGRBnCvjG5ieAAM5JGM9aAuaNnj7HCQCNyBsGQyYzz949frQhMomAkcfMVB2bSvAHGRzzznkV5BaftE+FlJhksNVUEgLKYI1BJ+8zhXOPmyeAevTPX1ezng1bTLXUrOcOtxbB4LgIQCrqGDbW5GflODzQBYiMzFMyQyIAwdkBHzAgDAyf9rPPXFTVl2jO9zCbXzlt8M9wkwwysQoUEkEk8HjPTHONoOpQBF5ubryh2TceM9+Oc8dD1HPboa+dri98W6X8XtX8TXfg3xBrs1rdSwaY6xyRwxQBnQbQsRDAoeCCBlix3E5r6DnYuZUjglEgH+sXC5xg8N3+8cA8Egg8ZqedFlgeN0Lo42MoOODwf0NAHyd4G8Vajo/xK1zVtP8ACN5qc9ys+7TIS5e2DTo/JCMTtKhclRyR06V9YGcCQoFc7WAYlG79McYPOM+neue0Twj4c0vxFeeINL0x4dQvhJ9oujLIQ5aTc42M3B3LnhR0/CujaaJJEjaRFkkzsUsAWx1wO9AHgHmL/wANceYDuTbuBX5sj7B2x1r3wln8+NJHV8cMU4UkcY4wfXvXOyeD/Di+M18Ty6aV1xpAI7lbmTLARhM7A23G35Tx7n1rehgYl1kuPNCSl1CllZSSW2sQ3IwRx0xjigBbIS+SDIFTIB8vZhlb+LJ6Nk55AFee2V58I9Ttpb8T+EpZLqaWYyX8cSzF2dixcTHf94nrgYxjAxXoiwvH9nCOXCDY7SMSWXHXjgtkLyff1rjr74P+AdQvJLqbw5Akj4yIJZIUGABwiMFHTsOevWgDy34HpE/xS8UHQxL/AGCsUxtm2uYl/fAQFt3O7YXxu+bG/wB69W+IkGiXfw21KHXNUlsdPuljLXiRvLscurIQnJ27gvyjHGRkda3LTRrDwzoL2WgadFaxIvyx28Y3E4C7zn774A5JJbHJqe9tre/t3sNTs4by2kdBMlzEpiIxkEKcg/Oo4OSCc9MUBY+btSbXfAXhq7tNB+JPh7VdDTKrYLJFPLKJNodRCyuAuSSRuxjcerEH3L4aawmt+A9K1MWdnp6XSsq2tsu1FZGZG25PQ7CQv8I4ycZrNi+DPgKy1CK7XQoDGjJiOa5mZQ4PBIZyGBO0bSMH9D2lra29kqWaxBYgAIUChYlVT8qIo4XaAOgHTPY4AuWnjYo/lyFHY5DH5gDx2PbjoMd+h5qSoVHnQtHKyl1O1/KcjB6jpyMjBx796moAKKKKACmvGjsjMMlG3L7HBH8iaKKAHUm1Q5cKNxABOOSB0/mfzoooASONIlKoMAsW/EnJ/U06iigBnlR+d53lp5u3bvx82OuM+lOZVcYZQwyDgjPIOR+tFFAA6LIjI6hlYYKkZBHpTHgidmZ0DFk2Nnoy+hHfv+Z9TRRQAS28UysHQHcACRweDkc9eDyPQ1JRRQB//9k=\",\"uuid\":\"8cb33cc92bda47bdac708b5c3252d8b4\"}}'); +INSERT INTO `tbl_log` VALUES (8199, 63, '用户', '43.152.157.98/1.9.116.218', '2026-09-29 05:27:15', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8200, NULL, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:27:15', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"4f5s\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"8cb33cc92bda47bdac708b5c3252d8b4\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8201, 63, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:27:15', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8202, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 05:27:15', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8203, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-29 05:27:16', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8204, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 05:27:16', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8205, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 05:27:16', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8206, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 05:27:16', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8207, 63, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:27:51', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8208, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 05:27:51', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8209, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-29 05:27:51', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8210, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 05:27:51', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8211, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-29 05:27:51', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8212, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 05:27:51', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8213, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-29 05:27:51', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":6,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782676800000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303412-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1565,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303412-1PH-WS79-ADD1\",\"operTime\":1782676800000,\"operTimeStr\":\"2026-06-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303412\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8214, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 05:27:51', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8215, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-29 05:27:51', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8216, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-29 05:27:54', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD00000001726\"}', '{\"code\":200,\"data\":{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0,\"bankName\":\"\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1789718483000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"depotHeadType\":\"销售订单其它\",\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1719,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"phoneNum\":\"\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"totalPrice\":735000.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (8217, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 05:27:54', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8218, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 05:27:54', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSDD00000001726\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8219, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-29 05:27:54', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1719}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8220, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-29 05:27:54', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1719,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":10000.000000,\"depotId\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":10000.000000,\"anotherDepotId\":\"\",\"basicNumber\":10000.000000,\"taxLastMoney\":808500.000000,\"model\":\"1PH WS79\",\"id\":1524,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":73500.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":735000.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":735000.000000,\"finishPurchaseNumber\":0,\"operNumber\":10000.000000,\"taxLastMoney\":808500.000000,\"weight\":0,\"taxMoney\":73500.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8221, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 05:27:54', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8222, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 05:28:12', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":6,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782676800000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303412-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1565,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303412-1PH-WS79-ADD1\",\"operTime\":1782676800000,\"operTimeStr\":\"2026-06-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303412\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8223, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 05:28:41', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD00000001726\"}', '{\"code\":200,\"data\":{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0,\"bankName\":\"\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1789718483000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"depotHeadType\":\"销售订单其它\",\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1719,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"phoneNum\":\"\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"totalPrice\":735000.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (8224, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-29 05:28:41', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1719}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8225, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 05:28:41', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8226, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-29 05:28:41', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1719,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":10000.000000,\"depotId\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":10000.000000,\"anotherDepotId\":\"\",\"basicNumber\":10000.000000,\"taxLastMoney\":808500.000000,\"model\":\"1PH WS79\",\"id\":1524,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":73500.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":735000.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":735000.000000,\"finishPurchaseNumber\":0,\"operNumber\":10000.000000,\"taxLastMoney\":808500.000000,\"weight\":0,\"taxMoney\":73500.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8227, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 05:28:41', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSDD00000001726\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8228, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-29 05:28:41', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8229, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 05:28:45', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":6,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782676800000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303412-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1565,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303412-1PH-WS79-ADD1\",\"operTime\":1782676800000,\"operTimeStr\":\"2026-06-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303412\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8230, 63, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:28:53', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8231, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-29 05:28:53', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8232, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-29 05:28:53', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8233, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 05:28:53', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8234, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-29 05:28:53', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8235, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-29 05:28:53', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8236, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 05:28:53', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8237, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-29 05:28:53', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8238, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-29 05:28:53', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8239, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-29 05:28:56', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-INV_2159-86\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1786305600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (8240, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-29 05:28:56', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8241, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 05:28:56', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1670,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":1000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":1000.000000,\"anotherDepotId\":\"\",\"basicNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"model\":\"1PH WS79\",\"id\":1475,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":7350.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":73500.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":73500.000000,\"finishPurchaseNumber\":0,\"operNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"weight\":0,\"taxMoney\":7350.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8242, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 05:28:56', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSCK-INV_2159-86\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8243, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 05:28:56', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1670}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8244, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 05:28:56', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8245, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-29 05:28:58', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8246, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-29 05:29:06', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":3234.000000,\"defaultNumber\":\"XSCK-do_2145-55\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":3234.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1649,\"lastDebt\":3234.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"materialCount\":40.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2145-55\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2145\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":3234.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-54\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1648,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-54\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-do_2144-53\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1647,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2144-53\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2144\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-do_2143-52\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1646,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2143-52\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2143\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-51\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1645,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-51\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2139-50\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1644,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2139-50\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2139\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2138-49\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1643,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2138-49\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2138\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783972800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2132-48\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1642,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2132-48\",\"operTime\":1783972800000,\"operTimeStr\":\"2026-07-14 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2132\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783886400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2131-47\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1641,\"lastDebt\":0.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2131-47\",\"operTime\":1783886400000,\"operTimeStr\":\"2026-07-13 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2131\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783540800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-46\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1640,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-46\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8247, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-29 05:29:07', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783540800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-45\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1639,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-45\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783540800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2130-44\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1638,\"lastDebt\":-161700.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2130-44\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2130\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-43\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1637,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-43\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":74382.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-42\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":74382.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1636,\"lastDebt\":74382.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":920.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-42\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":74382.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":6468.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-41\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":6468.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1634,\"lastDebt\":6468.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":80.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-41\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":6468.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2127-40\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1633,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2127-40\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2127\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-39\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1632,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-39\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-38\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1631,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-38\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2126-37\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1630,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2126-37\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2126\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-36\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1629,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303437-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-36\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8248, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-29 05:29:10', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-1PH-WS79-ADD1-45\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1783540800000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-45\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1639,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-45\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (8249, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-29 05:29:11', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8250, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-29 05:29:11', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSCK-1PH-WS79-ADD1-45\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8251, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-29 05:29:11', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1639,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":1000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":1000.000000,\"anotherDepotId\":\"\",\"basicNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"model\":\"1PH WS79\",\"id\":1444,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":7350.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":73500.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":73500.000000,\"finishPurchaseNumber\":0,\"operNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"weight\":0,\"taxMoney\":7350.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8252, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 05:29:11', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8253, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-29 05:29:11', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1639}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8254, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-29 05:29:13', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD-42303447-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1785355200000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售订单其它\",\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1574,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (8255, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-29 05:29:13', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD-42303447-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1785355200000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售订单其它\",\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1574,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (8256, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 05:29:13', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSDD-42303447-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8257, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 05:29:13', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1574,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":4000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":4000.000000,\"anotherDepotId\":\"\",\"basicNumber\":4000.000000,\"taxLastMoney\":323400.000000,\"model\":\"1PH WS79\",\"id\":1379,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":29400.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":294000.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":294000.000000,\"finishPurchaseNumber\":0,\"operNumber\":4000.000000,\"taxLastMoney\":323400.000000,\"weight\":0,\"taxMoney\":29400.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8258, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 05:29:13', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8259, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-29 05:29:13', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8260, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-29 05:29:13', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1574}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8261, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 05:29:16', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783540800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-45\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1639,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-45\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783540800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2130-44\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1638,\"lastDebt\":-161700.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2130-44\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2130\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-43\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1637,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-43\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":74382.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-42\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":74382.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1636,\"lastDebt\":74382.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":920.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-42\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":74382.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":6468.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-41\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":6468.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1634,\"lastDebt\":6468.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":80.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-41\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":6468.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2127-40\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1633,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2127-40\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2127\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-39\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1632,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-39\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-38\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1631,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-38\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2126-37\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1630,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2126-37\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2126\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-36\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1629,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303437-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-36\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8262, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 05:29:21', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-1PH-WS79-ADD1-43\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1782849600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-43\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1637,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-43\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (8263, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-29 05:29:21', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1637}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8264, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 05:29:21', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8265, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 05:29:21', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSCK-1PH-WS79-ADD1-43\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8266, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 05:29:21', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1637,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":1000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":1000.000000,\"anotherDepotId\":\"\",\"basicNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"model\":\"1PH WS79\",\"id\":1442,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":7350.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":73500.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":73500.000000,\"finishPurchaseNumber\":0,\"operNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"weight\":0,\"taxMoney\":7350.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8267, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-29 05:29:21', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8268, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 05:29:23', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783540800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-45\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1639,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-45\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783540800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2130-44\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1638,\"lastDebt\":-161700.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2130-44\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2130\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-43\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1637,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-43\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":74382.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-42\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":74382.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1636,\"lastDebt\":74382.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":920.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-42\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":74382.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":6468.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-41\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":6468.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1634,\"lastDebt\":6468.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":80.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-41\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":6468.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2127-40\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1633,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303443-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2127-40\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2127\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-39\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1632,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-39\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-38\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1631,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-38\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2126-37\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1630,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303440-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2126-37\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2126\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-36\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1629,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303437-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-36\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8269, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-29 05:29:25', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8270, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-29 05:29:43', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8271, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-29 05:29:45', 0, 'SaleShipmentController.getDetail(..)', NULL, 'GET /apis/saleShipment/detail', '{\"id\":17}', '{\"code\":200,\"data\":{\"rows\":[{\"actualQuantity\":10000.000000,\"barCode\":\"1PH-WS79\",\"deleteFlag\":\"0\",\"deliveryPlanItemId\":6,\"depotId\":25,\"differenceQuantity\":0.000000,\"id\":15,\"materialExtendId\":123,\"materialId\":703,\"materialName\":\"1PH WS79\",\"model\":\"1PH WS79\",\"planQuantity\":10000.000000,\"saleOutItemId\":1525,\"shipmentId\":17,\"shippedQuantity\":0.000000,\"standard\":\"1PH WS79\",\"unit\":\"件\"}],\"info\":{\"approveBy\":63,\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"id\":17,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"}}}'); +INSERT INTO `tbl_log` VALUES (8272, 63, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:29:55', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8273, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-29 05:29:55', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8274, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-29 05:29:55', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8275, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 05:29:55', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8276, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-29 05:29:55', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"销售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8277, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-29 05:29:55', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8278, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-29 05:29:55', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8279, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-29 05:29:55', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8280, 63, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:29:58', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (8281, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-29 05:29:58', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8282, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-29 05:29:58', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8283, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-29 05:29:58', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8284, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 05:29:58', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8285, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-29 05:29:58', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"零售\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8286, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 05:29:58', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8287, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 05:29:58', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8288, 63, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:30:27', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (8289, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 05:30:27', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8290, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 05:30:27', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8291, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-29 05:30:27', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8292, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-29 05:30:27', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8293, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 05:30:27', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8294, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-29 05:30:27', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"零售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8295, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-29 05:30:32', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8296, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-29 05:30:32', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8297, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 05:30:32', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8298, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-29 05:30:32', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8299, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-29 05:30:32', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8300, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-29 05:30:35', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"QGD00000001738\"}', '{\"code\":200,\"data\":{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"depotHeadType\":\"请购单其它\",\"discountLastMoney\":0,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1722,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (8301, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 05:30:36', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"QGD00000001738\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8302, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-29 05:30:36', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1722,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"MD-4G111(VF) packing\",\"materialExtendId\":125,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"preNumber\":10000.000000,\"depotId\":\"\",\"purchaseDecimal\":10.000000,\"imgName\":\"\",\"operNumber\":10000.000000,\"anotherDepotId\":\"\",\"basicNumber\":10000.000000,\"model\":\"MD-4G111(VF)\",\"id\":1527,\"enableSerialNumber\":\"0\",\"stock\":0.000000,\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"op\":1,\"depotName\":\"\",\"weight\":0,\"imgSmall\":\"\",\"barCode\":\"1001\",\"unit\":\"件\",\"name\":\"MD-4G111(VF) 包装\",\"imgLarge\":\"\"},{\"allPrice\":0,\"finishPurchaseNumber\":0,\"operNumber\":10000.000000,\"taxLastMoney\":0,\"weight\":0,\"taxMoney\":0,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8303, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 05:30:36', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8304, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 05:30:36', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8305, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-29 05:30:36', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1722}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8306, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-29 05:30:38', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8307, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-29 05:30:44', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8308, 63, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 05:30:47', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8309, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 05:30:47', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8310, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-29 05:30:47', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8311, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 05:30:47', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8312, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 05:30:47', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8313, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-29 05:30:47', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8314, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 05:30:47', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"采购订单\\\",\\\"linkApply\\\":\\\"\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720113000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGDD00000001739\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1723,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001738\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGDD00000001739\",\"operTime\":1789734505000,\"operTimeStr\":\"2026-09-18 16:28:25\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":100000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717459000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGDD00000001720\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1716,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001719\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGDD00000001720\",\"operTime\":1789717452000,\"operTimeStr\":\"2026-09-18 11:44:12\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":0.700000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8315, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 05:30:55', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8316, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-29 05:30:57', 0, 'PackBomController.getPackBomDetail(..)', NULL, 'GET /apis/packBom/getPackBomDetail', '{\"id\":18}', '{\"code\":200,\"data\":{\"bom\":{\"creator\":63,\"productMaterialExtendId\":123,\"outputBarCode\":\"1PH-WS79\",\"outputMaterialId\":703,\"version\":\"v1.0\",\"enabled\":true,\"bomNumber\":\"BOM00000001735\",\"deleteFlag\":\"0\",\"productMaterialId\":703,\"outputNumber\":1.000000,\"createTime\":1789719259000,\"outputMaterialExtendId\":123,\"bomName\":\"v1.0\",\"id\":18},\"rows\":[{\"deleteFlag\":\"0\",\"materialExtendId\":125,\"bomId\":18,\"unit\":\"件\",\"quantity\":1.000000,\"name\":\"MD-4G111(VF) 包装\",\"remark\":\"\",\"id\":26,\"materialId\":705,\"materialSku\":\"\",\"barCode\":\"1001\"}]}}'); +INSERT INTO `tbl_log` VALUES (8317, NULL, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-29 07:32:42', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (8318, NULL, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-29 07:32:42', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8319, NULL, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-29 07:32:42', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8320, NULL, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 07:32:43', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8321, NULL, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-29 07:32:43', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD315Ej273VdzBV3HGT6D3oeRIwN7YzwB3JwTgDucA/lSEBGeUs5G0fKOcYz0A78/oK8n1j48eE9N8QXFjcadqkzWUstu7pDGyl1cDK5kGVyhOSM9PegD1WAJDaxjzdwwPnLk7ifcknknjk1GZJIpZ0i/fMsfmCJmwQTnABPGCQfpj0Ixxfg34saB481eXS9MsdSSaKD7Sxuoo1XaHVeMOeQWB/A12U73LzNFEJIgUKrIVVlLHGG6k8AHggAnjPSgBUnhaOASCaEFY2TzWKkk5wpOeW45Bz+NTIfME0bCX5WK7m+XIIB+UjsM4z7V5RrPx48I6Vf3Gn2Z1O5W33RiayiiaJ24PyM7fdHK5249MjBrufCXiXSfGOjnVdEvbp4DP+9SVSGik2KWiO4HgbhnaSMk4NAG4jGS8kBEiiIYHXY+7B9OSMds9ffAr75GM0sxubUOY40zsOOcDABYZJbBJHTHpmqviTUJNJ8OanqKl2msLSe7RVBVW2oxCkkEen4jOK8H+H3gBfi7Y3/iXxZr+qTzrdNaxrE6gqABIcFgwC5kOEUADn1wAD6RqBhctcBkKrGpIKMM+YDj5gexHPHf8AUeM/B/xDqFl4i8QeCL6/ur9dFaQWrlM7oYXaJkALHby0ZUDOACM4Ar1PxDBd6t4Zv4NMuZbWaezc291G7IVkKnZ90FhzgnAz0xnkUAa7Rq0iOS2UzgBiBz6jofxpqzYkEci7GZiE5yGA54Prjt7HqBmvGv8AhnbR72xa4u/Eup3WqT75HvcIY5HbJDlTljyVJ+f5ueRniT4AeLta8QaTrdnq13Lf/YHieGWZy8x8zflSzHkAoMZ6ZPOMYAPX1kihWRfMaQoxZgMuy7jkDA5xzx7Cp6qBsWyWyzSxTFNqPKu47gAeT0Y+uDzg46HFugCuYIop3upJMY+bJwoQYweQASCAM5J6D0FfPXxf+ItxeavN4S0PbavJtg1K5N0oV3YKGhD7tqIMBXY4yVIOFB3fRKyK08iCVGKAZQfeUnPXnuMdq4W++EvgnU76+1C78PRzXk9w8spS/nBdmO4kjcApOSdvTpzigDA+Eel+GdA0i8sdN1yz1DU5oxLqLwXRBO0gJ5e05ES72BYgH5snAIUerSO6BZiWAbahiZlABLAZz689M81zeg/Dnwx4Uup73w9p32C9lgaDzvPllwpIP3XYjqqn8K6co4mDq3BwGVjwAM8j3yR+AoA+ZNG0pvDGdS8B/FDRYYrxCLhNQkSAqFfCgxyBizD5juManH3c7sV6H8CPGV34o0vWbe/tLRLu2uFnlureFIjctNuyzqgALjZjd3GM8gk7GqfCn4fyXt7f3vh0ICIziKVoIem0BFRlUZIGc45OT1zXV6PouieH7CCDTLCGwhhwnlQ8EMwRfnwTuYgJlmyeAc96AL2ptANPlS5t1uLeXbDLE6bg6uQpBXB3DB6Y56V8/t4R8Kac97qvhf4vx6FptyguPscE5MqoFLBSFlV2Iy2FK7hnHJyT9CB7gzSr5SiNR8jFv9Ycf+OgdOh61w138HPAM7SXbeGlWSR/MdI7iZQuTlgESQKO/C8DsD0oA84/Z/0aJ/FfiHWrD7dHpaI1lZvPECzB3Djcw+XeqxrkAEZcdOAffLi8+zW88kzJCtvH5kk82EiCgZJLZ4HDfTGTxjKWNjY6Wi2VhbxWkCJmO2gjEcajcSSqgAcluceo9aS9s7HUbe8027/ex3kDRzwGUgtGwKnAByoIJGRigD5w8ffFvUfGmsyeHfD+oRaboE5Nu9zOfK89Tjc7seUTg/KMMVJBBJ2j1v4d6J4Q0DRhpXhvV7LULwSRSXl7byLK8r/MRkqSFG1ZAq54GepJLQr8Gfh9JNGE8NsIypJL3Vyv5Zfg+xAyDkHg1veE/A2geEJ7mXRLSSyku40+0W/2lpVGM4+8SeCW59zQB0MsEFyW5AkVlBdDh1xzjI5HDH8GPrViqrWtvdXHnSQ4kTMbb0Hzr1wfUZwR6H05FWqACo/IiJkPlJmQYkO0fOOmD60UUASVXmsreeXzZI8yY27gxBxye3uc/UA9QMFFAFikCqpYhQCxyxA6nGOfyFFFAC0UUUAFRW9tDaQiKBNkY6LkkD/P88nqaKKAJajEEKpIqxRhZCS4CjDE9SfXNFFACtFG8iSNGrOmdjEZK564Pan0UUAf/9k=\",\"uuid\":\"ec12c77c64ba44deaf4a0a9ce172ad53\"}}'); +INSERT INTO `tbl_log` VALUES (8322, NULL, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 10:29:26', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8323, NULL, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 10:29:26', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8324, NULL, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 10:29:28', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8325, NULL, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-29 10:29:28', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3ohbmN43WVAG2nDFDxzkEHp06H2PcUXTSJayPE8SOqkhpfuDHr7e9PQON29lbn5dq4wPQ8nJ964+T4l6JF8Qz4KkhvE1EdZ2VBAP3Xm/e3Z+7x93r+dAHV+ZJPAzwDawz5ZcgrJxweM/LyD2PFONzCtyLcviUruAIPPXv0zweOvBrkPE3xC0bQvFumeFb20vZr7UTA8DRKvlBnlKpuYsCMMuTgHj16V17R+d5bPuUDDGNgpBPUZ68g88HrQBC0s+x5k37BJgxtFltoJDYwRwcZHU+xyAJpHly6RRHd5ZKyMRs3dgec/pXkOqfAw+JNb1PVde8Q3kzzzzPaQxN8ttGZWZE3OGyNrdAFCknG7rXO+BLzUPAfxrufAsGpTz6CzSfu7wY8oCFplZecKexIwGByQONoB9AJK5mMbRMMDdvByvUgDPXOBnpx604+Z5y42+VtO7PXPGMe3X9KxtY1L/hGvD11qEMJu7fTo3luIYgiybQu4kcqowDkjqR0ycAxeEPGemeNtAbWNIS48pJGheGZAkiuoB2nkryCpBBI56g5AAN7zV88Q5G8qWxkZAzjp1//VTLmVY413yPHvdUDKucEnA7ED0yfWuO8D/EXTvG2raraaTb3klpZNua8mCqjbmIQKpbfg7WIyOMc7cha6++uYrO0knnl8mBFJknJAEK4OXYngAdz0HU8ZoAljZ2Ul49h3MMZzwCQD+IwfxpoX7PGiRpLIN2OX3EA9yWOSPzry6L4/eCJtaEDyapDApkj+1PbjyGHUNtUl+duB8uRu5A5xyH7NxjFt4tEyu0ZW0VlRWYkHzh0Xn8qAPfiLklU3RqAFLSL1JBGRtPQEZ5zkZqeqixLZZlNwFjJJlaU9STxjkKvJ5wOfrVugCAkwSrl/3Tk/eySGOMAH069e5AHYV87ajqFlov7VL3msXcUdqkyhppVwib7QKmfQAso3HgYyccmvooW0KlyqYLbskEgjdjOD2zgHjvz1rm9d8AaB4tuYZvEmlwXsttEIorhZJIpGHVt2wrxnkDnGTjGTQB4r4+1jS/EHx/8Lvp+oW2o2sc1jA7Q4eMHzyxTcOH4YEkZ646g19FRRLa26Qo06JvCoPvlQD0zz8px1PQHqOMci3wt8FQX9pew+G7eCax8vypxK6ouwZV2UOA5BAyWGT3JrsY5DMItsy7l+ZwoB3qQQCOTgE8j6fWgDxr4s/GdtBuH0DwtPGdTjfF3e7Vdbcg8xqCCGfsxIIXp97O1fhD4c8OaVe/2jf+I9K1Xxnfq8gVL1LgwbgSwBDHfIRkuwPTIHGWbq7n4T+Btavr7U59CWW4uJmlctdXEbNIx3MWG4bck9AOnPfAn0f4ZeEvD2uW2raJpdvbXUL7YpGup5Dkh1kABcjO0nHB6H6gA66SyiuIPslzb2s1oYjG0TRDbyCpG05G0qSMenHOePmTTfEFz8M5/iF4ZhnuFREcWO+9VGDFxErrheZNkqSHbtOIueny/UkhIXCuqu2QhYZGcemRmuM1z4b+F/FuryXWtWUlzcQQC3RjI0RALM+8BCAeXPJHUHOaAMn4KeG18OfD2xu5IBHdasftM7tsJ2t/qcMP4dmCFOSGkPTkVr/FqG+n+FfiBNOMgnFuHbZJsPlK6tLzkceWHyO4yOc4ro8pdXH2qO280JEjRMQUL5Y5HPBxgEA9yDkZzVq2gjgMgjgWIbgAR/EMcfQDJAHYDjigSZ458KPFXg3TfhLBZ6lqekW7qbn+0rW5KiSYEsf9WeZcoYxwGyBt6jAwv2b50i/4SVH+7K1ohIbBUHzgCMc/eKjjpuzXp9l8JfAtvfDUB4YthcbmYxyyPLFk5B/dsxQjngbeOOARxc8NeCND8EwXbaPZR2TTJEJbkSySmTbnllcnaMk5weh6jAwDN5wY7mC3h2/uoi0cTZAOML97aegPbB9cg8Xqoie58szOYyI22ARvgSnO05DL8pz0GeTxnvV6gBAqqSQACxycDqelCqqIqIoVVGAAMACiigBajigihLGNApYkk9zkk9fqx/OiigB+1Q5cKNxABOOSB0/mfzoZVcYZQwyDgjPIOR+tFFAAVViCQCVORkdD0o2qHLBRuIAJxyQOn8z+dFFAEVvaw2qMsEYRWYuQOmT/ACqUqrEEgEqcjI6HpRRQAMiuMMoYZBwRnkHIP50kcccMYSJFRB0VRgCiigBWVXGGUEZBwR3HIpaKKAP/2Q==\",\"uuid\":\"f0e659749a9441bd9b6a35f16e027bcf\"}}'); +INSERT INTO `tbl_log` VALUES (8326, 63, '用户', '43.152.157.98/1.9.116.218', '2026-09-29 10:29:48', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8327, NULL, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 10:29:48', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"u2vd\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"f0e659749a9441bd9b6a35f16e027bcf\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8328, 63, '接口日志', '43.152.157.98/1.9.116.218', '2026-09-29 10:29:48', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8329, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-29 10:29:48', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8330, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 10:29:48', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8331, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 10:29:48', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8332, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-29 10:29:48', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8333, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-29 10:29:48', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8334, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-29 10:29:56', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789723142000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8335, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 10:29:56', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8336, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 10:30:00', 0, 'AssetInventoryController.details(..)', NULL, 'GET /apis/assetInventory/details', '{\"inventoryId\":1,\"keyword\":\"\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"actualQuantity\":0.000000,\"bookDepartment\":\"品质部\",\"bookLocation\":\"一车间 印刷检测区\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":1,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"KY8030-3\",\"targetCode\":\"QC-SPI-01\",\"targetId\":6,\"targetName\":\"在线 3D SPI\",\"targetType\":\"DEVICE\",\"updateTime\":1789722750000},{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线 A 工位\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":2,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"Panasonic NPM-D3A\",\"targetCode\":\"SMT-L01-MOUNTER-A\",\"targetId\":2,\"targetName\":\"高速模块贴片机 A\",\"targetType\":\"DEVICE\",\"updateTime\":1789722750000},{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线 B 工位\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":3,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"Panasonic NPM-W2S\",\"targetCode\":\"SMT-L01-MOUNTER-B\",\"targetId\":3,\"targetName\":\"多功能贴片机 B\",\"targetType\":\"DEVICE\",\"updateTime\":1789722750000}]}}'); +INSERT INTO `tbl_log` VALUES (8337, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-29 10:30:15', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetCode\":\"FA-TOOL-2025-008\",\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-WH-2024-007\",\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetCode\":\"FA-IT-2025-006\",\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetCode\":\"FA-UTIL-2023-005\",\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetCode\":\"FA-QC-2024-004\",\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCode\":\"FA-QC-2024-003\",\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCode\":\"FA-SMT-2024-002\",\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8338, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-29 10:30:18', 0, 'AssetController.options()', NULL, 'GET /apis/asset/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"creator\":63,\"purchaseDate\":\"2025-02-10\",\"assetCode\":\"FA-TOOL-2025-008\",\"quantity\":1.000000,\"assetCategory\":\"工装设备\",\"keeper\":\"王磊\",\"originalValue\":78000.000000,\"specification\":\"SAWA SC-A1000\",\"remark\":\"用于钢网水基闭环清洗与烘干\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"全自动钢网清洗机\",\"location\":\"一车间 钢网房\",\"id\":8,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-22\",\"assetCode\":\"FA-WH-2024-007\",\"quantity\":1.000000,\"assetCategory\":\"物流设备\",\"keeper\":\"张伟\",\"originalValue\":145000.000000,\"specification\":\"Toyota 8FBE20\",\"remark\":\"额定载荷 2.0 吨,持证人员操作\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"仓储物流部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"电动平衡重式叉车\",\"location\":\"原材料仓充电区\",\"id\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-01-15\",\"assetCode\":\"FA-IT-2025-006\",\"quantity\":1.000000,\"assetCategory\":\"IT设备\",\"keeper\":\"赵敏\",\"originalValue\":168000.000000,\"specification\":\"Dell PowerEdge R760\",\"remark\":\"双机热备主节点,纳入信息安全资产清单\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"信息技术部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"MES 数据库服务器\",\"location\":\"数据中心 A03 机柜\",\"id\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2023-11-20\",\"assetCode\":\"FA-UTIL-2023-005\",\"quantity\":1.000000,\"assetCategory\":\"动力设备\",\"keeper\":\"陈晨\",\"originalValue\":186000.000000,\"specification\":\"Atlas Copco GA22 VSD+\",\"remark\":\"为 SMT 车间提供稳定压缩空气\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"设备动力部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"螺杆式空气压缩机\",\"location\":\"动力站 1 号机位\",\"id\":5,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-06\",\"assetCode\":\"FA-QC-2024-004\",\"quantity\":1.000000,\"assetCategory\":\"检测设备\",\"keeper\":\"陈晨\",\"originalValue\":1120000.000000,\"specification\":\"Koh Young KY8030-3\",\"remark\":\"用于锡膏体积、高度及偏移检测\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"品质部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"在线 3D SPI 检测系统\",\"location\":\"一车间 印刷检测区\",\"id\":4,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-06\",\"assetCode\":\"FA-QC-2024-003\",\"quantity\":1.000000,\"assetCategory\":\"检测设备\",\"keeper\":\"陈晨\",\"originalValue\":1350000.000000,\"specification\":\"Koh Young Zenith 2\",\"remark\":\"用于焊后外观与三维缺陷检测\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"品质部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"在线 3D AOI 检测系统\",\"location\":\"一车间 AOI 检测区\",\"id\":3,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-18\",\"assetCode\":\"FA-SMT-2024-002\",\"quantity\":1.000000,\"assetCategory\":\"生产设备\",\"keeper\":\"王磊\",\"originalValue\":980000.000000,\"specification\":\"HELLER 1936MK7\",\"remark\":\"炉温曲线纳入工艺受控文件\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"十温区氮气回流焊系统\",\"location\":\"一车间 SMT-01 线\",\"id\":2,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-18\",\"assetCode\":\"FA-SMT-2024-001\",\"quantity\":1.000000,\"assetCategory\":\"生产设备\",\"keeper\":\"王磊\",\"originalValue\":2850000.000000,\"specification\":\"Panasonic NPM-D3A 双轨配置\",\"remark\":\"关键设备,按月盘点并执行点检保养\",\"updateTime\":1789718123000,\"source\":\"DEMO\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"unit\":\"台\",\"createTime\":1789718123000,\"assetName\":\"SMT 高速贴片生产线\",\"location\":\"一车间 SMT-01 线\",\"id\":1,\"status\":\"IN_USE\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8339, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 10:30:45', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetCode\":\"FA-TOOL-2025-008\",\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-WH-2024-007\",\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetCode\":\"FA-IT-2025-006\",\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetCode\":\"FA-UTIL-2023-005\",\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetCode\":\"FA-QC-2024-004\",\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCode\":\"FA-QC-2024-003\",\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCode\":\"FA-SMT-2024-002\",\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCode\":\"FA-SMT-2024-001\",\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8340, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-29 10:30:52', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":8,\"rows\":[{\"assetCategory\":\"工装设备\",\"assetCode\":\"FA-TOOL-2025-008\",\"assetName\":\"全自动钢网清洗机\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":8,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"originalValue\":78000.000000,\"purchaseDate\":1739131200000,\"quantity\":1.000000,\"remark\":\"用于钢网水基闭环清洗与烘干\",\"source\":\"DEMO\",\"specification\":\"SAWA SC-A1000\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCategory\":\"物流设备\",\"assetCode\":\"FA-WH-2024-007\",\"assetName\":\"电动平衡重式叉车\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":7,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"originalValue\":145000.000000,\"purchaseDate\":1721592000000,\"quantity\":1.000000,\"remark\":\"额定载荷 2.0 吨,持证人员操作\",\"source\":\"DEMO\",\"specification\":\"Toyota 8FBE20\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetCategory\":\"IT设备\",\"assetCode\":\"FA-IT-2025-006\",\"assetName\":\"MES 数据库服务器\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":6,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03 机柜\",\"originalValue\":168000.000000,\"purchaseDate\":1736884800000,\"quantity\":1.000000,\"remark\":\"双机热备主节点,纳入信息安全资产清单\",\"source\":\"DEMO\",\"specification\":\"Dell PowerEdge R760\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetCategory\":\"动力设备\",\"assetCode\":\"FA-UTIL-2023-005\",\"assetName\":\"螺杆式空气压缩机\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":5,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"originalValue\":186000.000000,\"purchaseDate\":1700424000000,\"quantity\":1.000000,\"remark\":\"为 SMT 车间提供稳定压缩空气\",\"source\":\"DEMO\",\"specification\":\"Atlas Copco GA22 VSD+\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetCategory\":\"检测设备\",\"assetCode\":\"FA-QC-2024-004\",\"assetName\":\"在线 3D SPI 检测系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":4,\"keeper\":\"陈晨\",\"location\":\"一车间 印刷检测区\",\"originalValue\":1120000.000000,\"purchaseDate\":1712347200000,\"quantity\":1.000000,\"remark\":\"用于锡膏体积、高度及偏移检测\",\"source\":\"DEMO\",\"specification\":\"Koh Young KY8030-3\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCategory\":\"检测设备\",\"assetCode\":\"FA-QC-2024-003\",\"assetName\":\"在线 3D AOI 检测系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":3,\"keeper\":\"陈晨\",\"location\":\"一车间 AOI 检测区\",\"originalValue\":1350000.000000,\"purchaseDate\":1712347200000,\"quantity\":1.000000,\"remark\":\"用于焊后外观与三维缺陷检测\",\"source\":\"DEMO\",\"specification\":\"Koh Young Zenith 2\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"品质部\"},{\"assetCategory\":\"生产设备\",\"assetCode\":\"FA-SMT-2024-002\",\"assetName\":\"十温区氮气回流焊系统\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线\",\"originalValue\":980000.000000,\"purchaseDate\":1710705600000,\"quantity\":1.000000,\"remark\":\"炉温曲线纳入工艺受控文件\",\"source\":\"DEMO\",\"specification\":\"HELLER 1936MK7\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetCategory\":\"生产设备\",\"assetCode\":\"FA-SMT-2024-001\",\"assetName\":\"SMT 高速贴片生产线\",\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"id\":1,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线\",\"originalValue\":2850000.000000,\"purchaseDate\":1710705600000,\"quantity\":1.000000,\"remark\":\"关键设备,按月盘点并执行点检保养\",\"source\":\"DEMO\",\"specification\":\"Panasonic NPM-D3A 双轨配置\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8341, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-29 10:31:43', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8342, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 10:31:52', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8343, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-29 10:31:59', 0, 'AccountController.getStatistics(..)', NULL, 'GET /apis/account/getStatistics', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"allCurrentAmount\":\"4375818.53\",\"allMonthAmount\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8344, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 10:31:59', 0, 'AccountController.listWithBalance(..)', NULL, 'GET /apis/account/listWithBalance', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8345, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-29 10:32:12', 0, 'AccountController.findAccountInOutList(..)', NULL, 'GET /apis/account/findAccountInOutList', '{\"currentPage\":1,\"pageSize\":10,\"accountId\":17,\"initialAmount\":100,\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\"}', '{\"code\":200,\"data\":{\"total\":100,\"rows\":[{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":-236946.640000,\"fromType\":\"financial\",\"number\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":-947751.900000,\"fromType\":\"financial\",\"number\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":-947751.900000,\"fromType\":\"financial\",\"number\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":80850.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2133-65\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":-236946.640000,\"fromType\":\"financial\",\"number\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":80850.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2133-65\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":6583315.612800,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2129-11\",\"operTime\":\"2026-08-13 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":6583315.612800,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2129-11\",\"operTime\":\"2026-08-13 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4339315.612800,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2130-44\",\"operTime\":\"2026-08-07 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4339315.612800,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2130-44\",\"operTime\":\"2026-08-07 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"supplierName\":\"TNB\",\"type\":\"收款\"}]}}'); +INSERT INTO `tbl_log` VALUES (8346, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 10:32:16', 0, 'AccountController.findAccountInOutList(..)', NULL, 'GET /apis/account/findAccountInOutList', '{\"currentPage\":2,\"pageSize\":10,\"accountId\":17,\"initialAmount\":100,\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\"}', '{\"code\":200,\"data\":{\"total\":100,\"rows\":[{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":3854215.612800,\"changeAmount\":-954860.058400,\"fromType\":\"financial\",\"number\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"operTime\":\"2026-08-03 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":3854215.612800,\"changeAmount\":-954860.058400,\"fromType\":\"financial\",\"number\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"operTime\":\"2026-08-03 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":5763935.729600,\"changeAmount\":161700.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2122-26\",\"operTime\":\"2026-07-31 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":5763935.729600,\"changeAmount\":161700.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2122-26\",\"operTime\":\"2026-07-31 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":5440535.729600,\"changeAmount\":161700.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2113-15\",\"operTime\":\"2026-07-28 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":5440535.729600,\"changeAmount\":161700.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2113-15\",\"operTime\":\"2026-07-28 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":5117135.729600,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2111-11\",\"operTime\":\"2026-07-27 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2111\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":5117135.729600,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2111-11\",\"operTime\":\"2026-07-27 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2111\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4632035.729600,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2110-25\",\"operTime\":\"2026-07-24 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4632035.729600,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2110-25\",\"operTime\":\"2026-07-24 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"supplierName\":\"TNB\",\"type\":\"收款\"}]}}'); +INSERT INTO `tbl_log` VALUES (8347, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 10:32:16', 0, 'AccountController.findAccountInOutList(..)', NULL, 'GET /apis/account/findAccountInOutList', '{\"currentPage\":3,\"pageSize\":10,\"accountId\":17,\"initialAmount\":100,\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\"}', '{\"code\":200,\"data\":{\"total\":100,\"rows\":[{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":2388035.729600,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2108-18\",\"operTime\":\"2026-07-16 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":2388035.729600,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2108-18\",\"operTime\":\"2026-07-16 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":144035.729600,\"changeAmount\":80850.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2131-47\",\"operTime\":\"2026-07-13 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":144035.729600,\"changeAmount\":80850.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2131-47\",\"operTime\":\"2026-07-13 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":-17664.270400,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2107-14\",\"operTime\":\"2026-07-06 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":-17664.270400,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2107-14\",\"operTime\":\"2026-07-06 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":-2261664.270400,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2102-11\",\"operTime\":\"2026-06-30 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2102\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":-2261664.270400,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2102-11\",\"operTime\":\"2026-06-30 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2102\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":-4505664.270400,\"changeAmount\":-514105.959600,\"fromType\":\"financial\",\"number\":\"FK-PV-007510-1PH-WS79-55\",\"operTime\":\"2025-10-15 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 007510\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":-4505664.270400,\"changeAmount\":-514105.959600,\"fromType\":\"financial\",\"number\":\"FK-PV-007510-1PH-WS79-55\",\"operTime\":\"2025-10-15 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 007510\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"}]}}'); +INSERT INTO `tbl_log` VALUES (8348, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-29 10:32:26', 0, 'AccountController.findAccountInOutList(..)', NULL, 'GET /apis/account/findAccountInOutList', '{\"currentPage\":10,\"pageSize\":10,\"accountId\":17,\"initialAmount\":100,\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\"}', '{\"code\":200,\"data\":{\"total\":100,\"rows\":[{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":1647118.890000,\"changeAmount\":-490440.555000,\"fromType\":\"financial\",\"number\":\"FK-PV-7297-1PH-WS79-11\",\"operTime\":\"2025-07-11 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 7297\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":1647118.890000,\"changeAmount\":-490440.555000,\"fromType\":\"financial\",\"number\":\"FK-PV-7297-1PH-WS79-11\",\"operTime\":\"2025-07-11 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 7297\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":2628000.000000,\"changeAmount\":80850.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_1707-11\",\"operTime\":\"2025-07-09 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_1707\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":2628000.000000,\"changeAmount\":80850.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_1707-11\",\"operTime\":\"2025-07-09 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_1707\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":2466300.000000,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_1717-22\",\"operTime\":\"2025-06-15 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_1717\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":2466300.000000,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_1717-22\",\"operTime\":\"2025-06-15 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_1717\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":1981200.000000,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_1716-19\",\"operTime\":\"2025-01-20 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_1716\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":1981200.000000,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_1716-19\",\"operTime\":\"2025-01-20 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_1716\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":1496100.000000,\"changeAmount\":748000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_1723-13\",\"operTime\":\"2025-01-14 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_1723\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":1496100.000000,\"changeAmount\":748000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_1723-13\",\"operTime\":\"2025-01-14 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_1723\",\"supplierName\":\"TNB\",\"type\":\"收款\"}]}}'); +INSERT INTO `tbl_log` VALUES (8349, NULL, '接口日志', '117.40.82.179/115.220.229.151', '2026-09-29 12:48:48', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8350, NULL, '接口日志', '60.163.165.168/115.220.229.151', '2026-09-29 12:48:48', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8351, NULL, '接口日志', '60.163.165.75/115.220.229.151', '2026-09-29 12:49:46', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8352, NULL, '接口日志', '117.44.77.227/115.220.229.151', '2026-09-29 12:49:47', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8353, NULL, '接口日志', '112.13.210.19/115.220.229.151', '2026-09-29 12:50:29', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8354, NULL, '接口日志', '112.13.210.17/115.220.229.151', '2026-09-29 12:50:30', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8355, NULL, '接口日志', '112.13.210.17/115.220.229.151', '2026-09-29 12:51:11', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8356, NULL, '接口日志', '112.13.210.152/115.220.229.151', '2026-09-29 12:51:12', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8357, NULL, '接口日志', '112.13.210.33/115.220.229.151', '2026-09-29 12:51:13', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8358, NULL, '接口日志', '112.13.210.47/115.220.229.151', '2026-09-29 12:51:14', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3i63bEVZZImZwN0ce/wDPg4Hv2pyzFo0cQy5ZsFSACnqTk9B7Zz2zUCm3W7LQgiWWUiXaOTtXHzZ5A6Yx6jsefALwS/Fj4z6t4d1nVL+00XTnlWGzt33BmhbysjjaGJZnLFSQMrnGCAD6DmuI4S6G4RZWxsVhnbkhR8owSNxH59akjaYtiSJVG0ElXyM+g4Hv+nqceCaW9x8Hvi1ZeFbK8nu9C1pY2FvOQzJK7NEjbgFAO9BuIH3DjDFVNe5MlyZI4XmlbOSzJGFQg9QTnII7YIPI+9gmgCZ5ZGnWOERnaw80OSCFI4I45+vTgj6OmIG1mZo0TLmQMAox2OexBP5djivmTwz4r0zwT8ZfG2palMyRhr6KFdjSNLJ9pVggI6EhSNzHAPU16/4T+L3hbxtqT6TbJd21wyZSK+jRROM4KrtZsnnJHpk9AcAHeZuB0WJvn67ivyevQ8+3frkdKaZnaKCRI2AcruV15UH19CPx/DqGMXmuQnlTIiDJl34GQwIGM85A6+nHUkDzfVfj54O0m9a0H2zUHTIeXT41eIMGIwGdk3dM5AKkEYJoA9ISb7Puibe0MEQLTs4Y5A5DDrnGD05zTjeRCOOX5vJdPMEm07QOOvp1z9AfSsLwh4v0PxrZf2jo9750sSLHcwlDG8bMAwDqc9PmAIJX7wBODWlrWq2mk6bc39/eQ2lhajdcTs53JxwAAOuSmBzuzjByMgGkjB0VxkBhkZBB/I8iozIY5gJJF2yNtiUIc5wScnPPQ9hXj0H7QfhI3SQRWmrWkMsmXnlhRxGWOSxAkJ2juFGTk4wRz63ZanZ6hZWd3a3CvDexLNbk5UyIVDAgHB6EHpxQBIkyTBSGLK7ZTajDbjqGPY5B4OPTHWp6KKAIXtw9zHPvkBQEbc/Kc+x7+4wfwrxXxr4P8LX3jm61PTvGtn4Q1y2m2XQM6xtIzxo3mqN6FSVkIJGQx9DuJ9qaVZYv3avIrOY2KHaVwSCeSDwQenPpXKa58OPBXifVhf6roqS300eS6ySwlwMcsEZcn5gMnnoO3AB4R4d0O21v44aPb6b4gv8AXTZypdX2rzxFhI8JLfLliQmFiiDMT8xyMgqD9SNGzS5Mh8vA+Qccg5BBH6jnPHvnC0XwXoXhuBbfRtOhtYvMWQ7QC2V3EZYgs/LEfMTgHjGBWxa+dLatHdBhKCyMQSMjsQRjqMHIxz6dAAeA/DK1S4/aC8XmXaZoWvnjlEakxv8AaVUsu7OCQzD6MR3pun26W37WRRIfJDyySlNqjDPZs5J2kjJLE575zXseheBNF0DX77XrW2H9qXwf7Rcb3+cuwd/lLFRlgDwODnHBwEh8FaCnigeLrmzH9vMRm5MrqFJjEQUJvK/d478n6UAWvFVvPd+E9UFokiajNYTW9qA+1hJIuFXOcA7tvOcD1xXj3wA8SeHNG8NapBqWqaXYXr3m9jdSrC7x7FCYZsBwD5nAPykn+9XvBREuHuHWJQsYHmEYYDJJBPp0P51xmtfCvwRrV4uqXWhRyMQWf7K7x+bubduIRhuPzE56ngc4AoGeZfBiWKX4s+Kb/S3SLQJXljiCL5cZ3zFoFCcbfkR8ccAEcFhXqHj1dF1L4aala63qNxp2nvDFm7aMyODujKPtUEuN5QNj3GR1rV0nwtoeiQPZaNo8FvbPA0btHJgMeFKscliTt5Y88dSa07nSbLUYJotStIbuKcKJILhRLHxg4CsMYyAenUA9hgEfNGqprHg3wrd2Wi/EXw3q+gwSBo7EtDNPIWYKwWF1fC5LEgNgjccfMRXvPw81weKPAGk6rFa22nyPGImgtlHloInKbVH8KkKcL/CG6nGTjW/wg8A2lvBfjw7bSyxBZjm8maJsYJ4dyrL7Nweh4rvVg+yWkUFjBBHHCoSOEDYioBgKMD5QBjHHbFAD7a3S1h8qPOzczAemWJwPbmpahjuonjVjJGCQuRu6EnAHOD1BHIHIqagAooooAKKKKAIhbwrM0ojXzC27cRk5wBx6cAflUjKroyOoZWGCpGQRRRQA14o5dvmRq+1gy7hnBHQj3p9FFABSMqupVlDKRggjIIoooAiS1gjjkjWJBHJ95MfKRtC4x0xgAYqaiigBHRZEZHUMjDDKwyCPQ0tFFAH/2Q==\",\"uuid\":\"b2553bf0a24f46a7a5858279bb4a4107\"}}'); +INSERT INTO `tbl_log` VALUES (8359, NULL, '接口日志', '117.44.77.212/115.220.229.151', '2026-09-29 12:51:23', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"9hos\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"b2553bf0a24f46a7a5858279bb4a4107\"}}', '{\"code\":200,\"data\":{\"msgTip\":\"user password error\"}}'); +INSERT INTO `tbl_log` VALUES (8360, NULL, '接口日志', '112.13.210.44/115.220.229.151', '2026-09-29 12:51:24', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3cSzCZxsSRBIFHlt8yDCn5gfqTx2xwac8gWZd7tEoO1dxXbIT2HfP5fjR5bPHOrKIjISN0TfMRjAbOBg/n0HNeJxWmhw/tQgxXd5HqA6WiWKCAf6F/wA9PNz93n/V9ePegD2r7SJIQInRLh1OyOU4IbbnBHXjIyKeiyRwHHzScthn4yTnGcdO3TpSWv2f7OptTG0RAAZDkHAx179MfhSxRi2tUijDOIkCqMjLYH4DNADWllaPMEaNICA6SSbdnGcEgHnkfnT4DK0KtMoWQjJUfw+3vjpnv7V594n+M/g7wpqsunSPc3t4kjLcrYRKwicADDMzKCe3BOCpBwRitbwZ8RPD3jjzP7HupBdIu+eyuhsliXJXcByGBIXO1iBuGcE4IB09q0yxiO7dDcfMx2A7cbjjGfQYH/66kWeF3VElRmZN4AYElfX6e9V7jdHbPM0M1w0cnmKgIDAA4+XHtnjqQcHrivCPEPwt8DW4nl1r4izJq0VqpuDe3EbzbhGMHyj+8xt24jyWxgAnigD3SeOdpJYY7oiV1DIWyNgDdQBwxGTn6KCDnJsKJJPs8q3AKgZcIo2ygjqOpHOCOfzrxz9n+XxHdeHr2XUpryXTkaNdKNy7FMKCsir32ACMDOVBDbRkNXrV/qJ0XQL3U9QHmLZQS3Eot15ZEBb5QT12joT170AWp94hk+dBuIC7iV64GMg5yT0I6ZHBxzHK7SywfZp0DjDkNkrJGeDjtnoc9uOzV5Wn7QPg9tPFzMmpO/m7TZG1Uyg/eEgbeE2A/KOd2QDjvXoum339taPYalpm62hvLRJEhm2ho0cAo+0bhkDPHQ55PFAGlHdxy3BhTJIUndkdm2kYznqOuMe9T1Wti0k80puI3GFjMcZyI2XO4E55OT6DoKs0AVbxZZGgjjn8kM/LAZLYBOB6dCcn0wQQSK8CgEcH7WoVJJJVDldxYyHJssYzyeDxz0xz0r2zxBqFzpul3bWuktfMsMsq20TYacBCSoxyGLYHAPUdzivG/h5oPibxF8ZrjxlrWi3mj29ujMqXFsYw+Y/JjjG4LkhOSwXGV6LuFAHuytFFemFA+WUMVVfkXJY59ix3c+3PJGVjmma5eJ4VVVyQwkByONpx1Gfm/wC+T1pzE28UXz5jTAkeTJOMYzn1zjJ9M0sbiNY4ZZ1eYKAx4BY4POPfBP4H0oA+efgjq2m+HPFXiuHxZqFpZ60XVGnv5lDFldxMPNJwSW2Ejd82M84yJfCsyap+07qF74euI59MAlkuZbUiOORPKCsSBjePOK8jO44fnrXrPif4f+EfEl1HeaxotpNds23zvNaB5CVAAZkILn5VAznAzj0N3QfC2geFke08PaZa2cm1PNOGLshdj8znLMfv4yTjgdAKAL13e2OnaXcyahM629hGJZZZclisa79/HLfdJ4HJU8V5r4jsfg14pF5r+patppu7q3Ej3EepMs6gRgKRDu++FA+UoTkYKk8V6heWZvbGaCeC0n8xZEMc8e+N1OcKwPY/Lnr0NefT/B74eWszpJ4elIJVg/n3JRVJwQWEmBjBJJxjPfpQBzP7ON7qU+j6rbXVxcHTbaaNbJX/ANXvYO0qKT16IxUdM543HPpnjmSRPht4gBWSd/7LuUdgoXkROCxBI447Z9s1t2tlpumQW9jZ21paQoWMFvDGsaqeSxVRjH3iTj1PrVPUtLtdQ0eTTp4C1usTQyWolb95CQUIODkkqCQeoIHPWgDyf9nLSLM+GtT1U2kLXUl09o87csYwkbBMEcDLEnB54yDgY9kiRbG0trawswLaILAka/IIkUhRgH+EAHp6DHXIzNB8L6N4U0+TSdFsmsrWeczbUklky21QxLE5UkKBjOOPqK2LZYCgngyVlVTuJPzDHBOe+Mc9eBnpQA550igE037peM78fKTxg446n6VLVaNmdh9ohEbME2gyBgTjOAPUEHoOgBz2FmgBjxpJt3DJVgynOCD/AJ/QkU+iigBCisVLKCVOVJHQ4xx+BNDKrjDKCMg4I7jkUUUALRRRQAiqqKFVQqgYAAwAKWiigAooooAKKKKAI5oIp1USoGCOHXPZgcg1JRRQB//Z\",\"uuid\":\"804946d9eed94b3b80a44c3166ed74b8\"}}'); +INSERT INTO `tbl_log` VALUES (8361, NULL, '接口日志', '112.13.210.158/60.176.66.231', '2026-09-29 12:51:35', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8362, NULL, '接口日志', '112.13.210.47/60.176.66.231', '2026-09-29 12:51:35', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8363, NULL, '接口日志', '112.13.210.19/60.176.66.231', '2026-09-29 12:51:38', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8364, NULL, '接口日志', '112.13.210.19/60.176.66.231', '2026-09-29 12:51:38', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3S+uJIF3QZeVUZ/JCZMigjOOmDyPz6GnRvJKTG8gjljYMyx91IyB8w6dRkdcduQHMjpM86xq7bQF2ttJHcHsSOSPqRxyT5b438CeGte1uTUvGnim901J3zYWs2oQwxRIERXCK+75iy7mK4HzL3zQB6q8ReCSIyyDeGG9Thlz6Eenb6VDMv2W1WUCed4EIVQzEyHGOQOpPqRx1r57+FVte2HxdvNJ8Lave6l4Qtnke5lBKwkFPkJHAL+YqruUAuEJHyZFfQdrFcxynzJSYPLQIshBcEDkkgf1P1HSgAmv1jjMyqXhRzG5AbduzgBRj5stx1Ap0l06QRSrbvtYBn3sqeWvGS2T2GemelfPmg2Mnx78Z6xfa3e3VvommIEsra2cI8XmMdnBVlJKoxc9SduOAANH4f6jdeBPifrHw6mlmutOYvLYmIB5YyE85Bu+XrHnK4I39BgsSAe6zGZZYWjBZN22ReOhHXn0OPwJ4PFAZLqOOS3uf3e7O6IqwcDqM4PH0596p6hfTaLo15fSW91qAtlMgitlQzOgAzgEqpI+Y4HJA4yeDxegfFrw34ksb/UU1MafDpqNLPFfR7HCEqFcKrt5gyWXg53Mvy5K5APQlDRQ4LPMygnJ2hm9uMCktnle2jaePy5io3rxwe+ME8Vyngj4iWHj37TJpWlarDa2/D3V3FGkZfj5AQ5JbBzwOBjJGRm94wltpvBfiSOeWeOL+zLlZCIcsqiNtzIG27zg/3sdORnNAG3M7MkixO0bx4JYxFhjrgD+LI449aHn3QB4Sv7xMxyPwmTjaD35J/wA8V5h8BBpsXgbUI9IvLi7Qai7Mbq3W3YMYo+NqvJ8vHXPrxxz6ELG2F7JH5ClsKy+YxI8voVT+6Ac5UZGGAPBwAC5F9oW6YTSK6NGuwJGQAR94k89cjAz29iasUxow8iO3OzJAIHB6Z9c4yPxNPoAiPnecThdgwFG/72cZJ+XgjnGDznn2858R3nwx8YXzweJbzTpZ9LuZLT9/eNatG+QHG3erMAVA3YK9wfvY9HKu0ytvKoo+6MfMT68duOhri774T+BNcv59Su9BWWe4YO8yXUqiUkD58K4GT3OMk5JznJAPJvh8bXTvj7e6R4QuprnwxOJBcKpMsTRrETySOVWU7VfuCBuO47voeVFBuAN4LhTy5RS3QYYcgnCg/hxyc5mh+GNF8K2ZtfDmm2tqvmKs+0bncZJ+dydxIDkjcTgHA4rYncDajwvJHIdrEKGAzxyOuD9D74FAHzz8F9RtPAHizxPoHie6j025xEN9w6xxMY2YfebBORIrLjgrk9MVZ8Myx+Lf2m9Q13S3VtPst+6VjlZNsHkDYVyDubLDkZUE9sV6t4p8F+GvFd/by69oQuXt1Ki6MzRbY8FjlkYEgNjAbpuYj+KtLw94d0TwvYR2Wi20FtZsxaJVO5mZhljvJLNkKOpJwo7AAAFtJ5IpEaSzMcs8vlsFkBBwDhh68DuAcL7KD8p/EKOLXfHXie88GwSS6VDCjX8lmw8mQLtLsAoGV3qGP3slGkzjlfqjXNPstY06XSdRtZ7iyukPnCJ2QbVwcEoQ3PTA68jpmsjw/wCB9C8M6LqNno2n2v2e/JeRGQyiVCMBGLsd64JABOPmPHJyAVvhzd6He+BNIn0EBYEtUtXWMIz28gGXDkKpLbjknbgkhsYOa0fG6uvw38RrI+9xpFyGbGNx8lucdqp+HPAXhrwdPNcaHp7w3JUJKRNLJuTOc7GcgnGfmAz94DqVrI+MGu65pvhiTS9F8O3WqHVbaeCeeGN5FtUwoJZVU8lXbGSMFc88igDn/wBnWFn8AX7rPLH/AMTSVSFwQf3MWDgg8jPb8c167GqoZrZJSH5kyByocnnng8hv0/HgPgr4av8Awx8O4EvYylzf3DXrwyDaYUZVVRxnJKorYOCN2DgivQZJ2S4iiELsHPL4+VRgn+YA5x14zg0AODSL5aspckfM6gBQcehOefxqSqqrFHcxLJcSvOFONzkbhz1UYXPXHGeD6VaoAKRUVBhVCjJOAMck5J/OiigACKpYqoBY5YgdTjGT+AFI8aOyMwyUbcvscEfyJoooAdTBFGAgCKBH9wY+7xjj04JFFFAA0SPIkhX50ztYHHXqPp049h6Ckkt4pZYpXQGSIko3dcjB/SiigB+1Q5cKNxABOOSB0/mfzoVVQYVQoyTgDHJOT+tFFAEYtbdfNxBEPN/1mEHz/X16n86loooAKKKKAP/Z\",\"uuid\":\"c455851336f54ac3809aa5485d011d99\"}}'); +INSERT INTO `tbl_log` VALUES (8365, NULL, '接口日志', '112.13.210.158/60.176.66.231', '2026-09-29 12:51:40', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD34sFKg5+Y4GAT2zz6dKYwWODZ5hQYCBy2SCeByc5Ocdc0qybpnj2kFQDkkcg/jnseuK4i0+Jul6h4+uPBi2+o2epoZYka4tVCM6AtuU7ySpUblyoyMHPIFAHahJldP3qtGFw25PmY+uQQB+VNn8yG0lMC7pQGKBiWG4+vfGew7cDsK5Cz+J3h7V/HFz4NtZr2PUonkjE/kjy3kjGXRScnIw3JUA7TgnIytj8S9E1nx1c+DrK11Oe8gaSOe5jhAhjKA78tuDABvkzjG4jB5BoA7ETRGYwhx5oG4oeuPXHp71DO0xMaqzQsMMSsfmK3bb9MkHPHH44+cPBfh/8A4XXr2uXmu6pqFvYWDq1pYwyhhAJWb5VLDAAWPBwoLHDHoQel8B31z4M+K998Mm1C5vNFO57LeuHhcxifG4EFRt3A44LDIVdzUAe2wqdskBbci/KG8wl+RnB4GCARg5J70rzeSETDzPlVbbgsATjcRxxx29/SmySQrKZJi8Qg6OzlUYNxnrg+nPI/EE+VwfH/AMDm0vbhYdVtpl27YTbrvmJJBKYYoCOpLEZ4+9jFAHqokM8kkXlyCLBUvyhz3HY9+GGe/TAzCgktDbRPPPMWLb3MW4MSc84+7yeOwAI9COX8FfE7w943e5XT554Z4mXNrdxqkm08bxtJBUnA65DEA/eXOn4t1+z8H+HpNZv7a8u7SGTbN5AjdlWRsch2XK7iowOfu9gaAN5vO89doj8nHzZJ3Z9v0+ue2OY5ZZ1t5XCRRtG3WR/kKA5JyOnGeo4PqOTz+n+NLHUvh1L4usYblbOO0nnSO4UeZiLeCCAxBJKH+L8ab4N8dWfjzS7rUNHsLyKCCUQ7r3ZGHfAJA2M54BU8gfeGM84AOllmELLvaJQ7KqF327iTyBx1x09fapaiEbvMXl2lUYmIAeoAyc9/vDjsaloAy7y4Z5Wa3uGjeA+W6CFWZi5AXGSMc8++AemM+FfEkv4M+OHh/wAXLO62t6IZLi5Cq6ELiKZUXk48rb6nL8Hpj6CdoIJd7KFZgxMmzgAAZLNjA4A6nsPSuf17wd4W8ZpZR6zaQ3wtFc2yxTvGEViAcBGGR8qj8O1AHzpoT6josvhn4jX6tB9s16c32pYVhJDJtVgIxnB+W7+6oI4/2K7P4BaXfavqfiXxjdyy/arhjbpMpRVkkdhLLldpwciPnGMOcA9vUn+HHhG78M2vh+XTfO0u1k3RRfaZOHBkySwYEnMknGe/sMXtA8GaF4Z0+40/SrFYbKZzIYmd3IZgobDMScEInHqM/QA8d1vwP4Ti8S3upeGPiPa+GZmmaC4slnSFonWXEgX95GVQFchcEfKCpwVxh/CzQYNb+L93faXqWo3lhp8TyvqM6Mj3Mrr5bMWzlCzPJIobJITB53Eexap8KPA2papJe6hoiS3Ny5eWY3cke48DO1WALEkc4yTkkknnoNJ0/SfDtlBo2k2tpprsNywRpu3FQAXYjBYkL95jk4554oAuqNscdqttcQI5OHQIBGclhnafb0IOQDnJr50/Z81vw9o2pa42sX9lY3UkUP2aW6kEWUBfzFDnA6mM7c84BwduR9IzTvFdQKUzDJuVn/utxtzz0PI+uK8A+DPw4i1Cz8RWvjHwvOkb/Zvs5vrZ4XGDIW8tyAw6LnaeeAeKAHeF5otV/ae1C+8NzpLpYWWS6ktmCRyL5IVjgYDgzlTkZycNz96vb9d0v+29BuNKuZhELyN7d2jcqSGRlJX3wS205HGPeqPh3wh4d8LCex0PTzp4lbzZNsjlpxt2/fYliq7jxkbSc4G7Js63d3J8PXt3Z2n2sRQSSrbhcyyNHkhFXawJYqFwRlT2J4BYD5J1LVdf8JaLrvw9uiEha/WScbMAlO6llDFX2xMDxwgxwxz9T/D3wsvhPwTpOmiNoLhYhLeJ8hLzuAX3Mo+baflBB6KoycV5F4f8L+IPHvxo/wCEu1bw9faFYW8sF06XIZGLxoojVCyDflowTwMLkZBK599VHCvPHO05aIeX0IPHXAIU54PbvzjGABLy3muXhWOVoo8nzWSQq2McADGOuOewB9TVuqIjmSW2litxErktcRpjO5gOTyAcHqeTwMdTV6gAooooAj8mPzBIEAfJO4cE8Y59eAPyHoKeqqgwqgDJOAO55NFFACPGkm3eittIYbhnBHQ/WnUUUANWNVdnUYZ8bvfHf6/4D0p1FFABRRRQAUiqqDCqFGScAY5JyaKKAGxxJFu2DAZixGeMnr9PX65Pen0UUAf/2Q==\",\"uuid\":\"29d13318982041b390966a42a893f110\"}}'); +INSERT INTO `tbl_log` VALUES (8366, 63, '用户', '117.40.82.32/115.220.229.151', '2026-09-29 12:51:45', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8367, NULL, '接口日志', '117.40.82.32/115.220.229.151', '2026-09-29 12:51:45', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"jo3r\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"804946d9eed94b3b80a44c3166ed74b8\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8368, 63, '接口日志', '112.13.210.19/115.220.229.151', '2026-09-29 12:51:45', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8369, 63, '接口日志', '183.131.72.165/115.220.229.151', '2026-09-29 12:51:45', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8370, 63, '接口日志', '112.13.210.19/115.220.229.151', '2026-09-29 12:51:46', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8371, 63, '接口日志', '112.13.210.44/115.220.229.151', '2026-09-29 12:51:46', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8372, 63, '接口日志', '112.13.210.152/115.220.229.151', '2026-09-29 12:51:46', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8373, 63, '接口日志', '112.13.210.152/115.220.229.151', '2026-09-29 12:51:46', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8374, NULL, '接口日志', '112.13.210.19/60.176.66.231', '2026-09-29 12:51:53', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3mXzwkpjZCcZRdmT7j7wzn8Kb5rQo8sxkKuwKosZYxjaOPlznkE598VPtUMWwNxGCcckf5Jrjl+Imjr8SX8EeRqB1NjnzSieQP3AlwDu3Y2j+71J+tAHUSyyQTSyvFIYlChfKJctk8nbjII9s5B9sCRWa4hJXzYM/dYgBseuDnH0Iz7VyGvfETRvDvjOy8LXKajJf6o0XlSQqjRxGRvLUHLAjldxGD1zznFdR5F1Nct9pMRt+SnlllZTnjB6/dJyc+2OuQCZ7hlgWUR7V3ASCQlSgzgngHOPy75xzSsssbPIrPLuZQIyVAQZwSDjPTnknpxXnvif41eCtAvvsEz3OpToSJUs4VcQnA4YuVGcMRgE4wwODxWx4F8f6L48trh9EW5txYMscttcQqhCsDsI2kjHysBz2ORyDQB1JuBI3lxZEgbGJEZQQCNxGRzweD0pyxzIjL5287flZ0Gc88nGAR04AHTrzSRwmOeaQlT5hBGEAIwMYJ7//AF65PwT8Q9F+IqagmmWt9Etl5fm/akRM7923btZuRsPpjigDrYlkOySR2BKANHgAZ7nuc/iRQ8ybVCSLvkYohxuG4A9cemD6dK5Hw98S9F8SeM9S8M2cV2t1YiXdJKiCNzHIEbawck5yCOBwCa1/Ednqd34XvbbT7n7HqVxA6C4gyAkhjKhsgFsZ28j5hwe1AGnEZo5liePKMjOZPMLbW3fd6Djng+3SpmlVXKkPkLu4QkY+uOvt1rw+1/Z+0jUbOS41DxLqFzqlyHL3HyjE5y3zo25mIzlhvB4PTPE/wI8Van4l03VbLXb2a7+wPEtvcyyP52Ji5KtJnJGY1wTzzjOMAAHr1rvBkmmvUfdIvyxsNg+UAAZyRuyGxnuOvJa9UD70njPmMVkfG0lQFwp6cZPT1/TNT0AN8yPzfK3r5m3dszzj1x6V86atqtnov7Vcl9f3cVpbIyIZ5QdiM9kEUt6DcwyeAOpIHNfRUcqSlwhOUba2QRg/j9RXL+Jfh74f8X6pb3muWMV35EbRqMvG+Dg43oykgEEgHONzetAHivxB1zS9Y+O/ha40q/t71bd7KKae0ZShkE5Y7WJ2nhl5yQOhPBr6RDmKJTO6lshSyqQCScDjJ9RXID4U+DItT0zUbXRYba504xmBomdQSjAqWAYb2/2myT33dK66d/LVZGk2Ro2X+XORgjn0GSDn29KAPmn4O6novh34g60njKSODXg7xxXt7KGWKUFxOGkLYDtx8x64Ybvmw3vdjqmg6/qV3LoWqWdzfwRQiee1k81QhaTYrFTtbpLxnI3Z4yCafib4b+F/Fl4l3qek20lyM75lDxyScADcyMpYAKB82cDgYqXQ/B+ieFLea10XSI7KyuWY3bmcs7gKwG4tk7e4AYY3E4GWyAb0009vFv8AKa4JkChYlwVUnGTk849f5da+df2evEmi6HceIINW1S0sHuUt3hN1KI1cIZA2GbAz868ZyecdDj6FmlnVGktrm3kSN8OsgPB3cgsv3cA91OMc1yl58KPA15qzXt1oEIupXDK6zSBXKgclM7CeCSCDuwSc5NAHlvwiu4NV+OninUbFkmgnS7uIJHUjKNdRncARkEqx6+vNfQV9NbQW/m3ksMVuh8ySSaTYqBAX3Z9tuTnHAJ7Vg+HfAXhrw3qc2raVpCWV/cI0czJK5UqWDEBM7FBKgjCjA4wOlbl9pttqdhc2N+huLa5R45EY4+R1KsAVwRwSM9eetAHzZ47+Jd1488SjQfDl5b6Xo8xMEl5cyrbi5GMM8jtgqgUEBfvEEggltg9e+Gmi+GtC8N3OneFtTsb+/j2Ne3kMySmaUrld20nEf3lA7ANj5ssa8XwQ8BkqzaHmMdAbq4DOu0ct84w27PTjHb03dI8E6R4Miun8MWYsBOoa5AaSdpdgbYFDucH5m6d8daAOmiLTRRyTQeXIOdjEMVPTgj8fwNS1SiFvPJErzLcXMC4aROMNxuzjhSSOn1HTNXaAIWtYHd3MYDP98jgtjGCcdxgYPUdqkljSaJ4pBlHUqwz1B60UUAQvY2r7N0CfIAEwMbcdMY6Edj2ycdalEaCZpQPnZQpOewzj+ZoooAfTZI0lQpIiuh6qwyDRRQACOMBAEXCfcGPu8Y49ODinUUUANSNY92wY3MWI7ZPX6UeWnmeZsXzMbd2OcemaKKAHUUUUAFFFFAH/2Q==\",\"uuid\":\"fd2a92f5c293406a97737ea3088a0c7a\"}}'); +INSERT INTO `tbl_log` VALUES (8375, 63, '接口日志', '112.13.210.17/115.220.229.151', '2026-09-29 12:51:54', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-09-29\"}}'); +INSERT INTO `tbl_log` VALUES (8376, 63, '接口日志', '112.13.210.152/115.220.229.151', '2026-09-29 12:51:58', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8377, 63, '接口日志', '112.13.210.152/115.220.229.151', '2026-09-29 12:51:59', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (8378, 63, '接口日志', '112.13.210.152/115.220.229.151', '2026-09-29 12:52:00', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8379, 63, '接口日志', '112.13.210.17/115.220.229.151', '2026-09-29 12:52:01', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8380, 63, '接口日志', '112.13.210.47/115.220.229.151', '2026-09-29 12:52:01', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8381, 63, '接口日志', '117.40.82.179/115.220.229.151', '2026-09-29 12:53:55', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607786\",\"assetName\":\"SIM卡 896019210381607786\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"11\",\"externalSource\":\"SIM\",\"id\":260,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070013;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.208.37 / KM08-LTE Modem / 21070013\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702562\",\"assetName\":\"SIM卡 896019210381702562\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"12\",\"externalSource\":\"SIM\",\"id\":259,\"keeper\":\"SMT\",\"location\":\"Loan to Hanif/Adha (22-May-2026); \",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.144.61\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607780\",\"assetName\":\"SIM卡 896019210381607780\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"14\",\"externalSource\":\"SIM\",\"id\":258,\"keeper\":\"SMT\",\"location\":\"POC AEON\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.208.37\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500577\",\"assetName\":\"SIM卡 896019190221500577\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"15\",\"externalSource\":\"SIM\",\"id\":257,\"keeper\":\"SMT\",\"location\":\"Kompleks Pertama\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.144.61\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607779\",\"assetName\":\"SIM卡 896019210381607779\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"13\",\"externalSource\":\"SIM\",\"id\":256,\"keeper\":\"SMT\",\"location\":\"POC AEON\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702569\",\"assetName\":\"SIM卡 896019210381702569\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"18\",\"externalSource\":\"SIM\",\"id\":255,\"keeper\":\"SMT\",\"location\":\"With Amir\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.200\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702570\",\"assetName\":\"SIM卡 896019210381702570\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"19\",\"externalSource\":\"SIM\",\"id\":254,\"keeper\":\"SMT\",\"location\":\"With Amir\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.214.141\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702571\",\"assetName\":\"SIM卡 896019210381702571\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"23\",\"externalSource\":\"SIM\",\"id\":253,\"keeper\":\"SMT\",\"location\":\"R&D room, SMT\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.9.45\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702568\",\"assetName\":\"SIM卡 896019210381702568\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"24\",\"externalSource\":\"SIM\",\"id\":252,\"keeper\":\"SMT\",\"location\":\"Molnlycke Health Care\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.214.217 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702567\",\"assetName\":\"SIM卡 896019210381702567\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"25\",\"externalSource\":\"SIM\",\"id\":251,\"keeper\":\"SMT\",\"location\":\"Molnlycke Health Care\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.143 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702566\",\"assetName\":\"SIM卡 896019210381702566\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"26\",\"externalSource\":\"SIM\",\"id\":250,\"keeper\":\"SMT\",\"location\":\"GT3.1 (Nur)\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.123 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702565\",\"assetName\":\"SIM卡 896019210381702565\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"27\",\"externalSource\":\"SIM\",\"id\":249,\"keeper\":\"SMT\",\"location\":\"Menicon Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.136 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702564\",\"assetName\":\"SIM卡 896019210381702564\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"28\",\"externalSource\":\"SIM\",\"id\":248,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.10.11 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702563\",\"assetName\":\"SIM卡 896019210381702563\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"29\",\"externalSource\":\"SIM\",\"id\":247,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.141 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-2\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SOFTWARE\",\"id\":246,\"originalValue\":8700.000000,\"purchaseDate\":1694980800000,\"quantity\":15.000000,\"remark\":\"供应商: Amimo;发票号: INV230902\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-3\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SOFTWARE\",\"id\":245,\"originalValue\":1160.000000,\"purchaseDate\":1704916800000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-4\",\"assetName\":\"MS Office 2019 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SOFTWARE\",\"id\":244,\"originalValue\":0.000000,\"purchaseDate\":1727380800000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-5\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SOFTWARE\",\"id\":243,\"originalValue\":580.000000,\"purchaseDate\":1712088000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240402\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-6\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SOFTWARE\",\"id\":242,\"originalValue\":2320.000000,\"purchaseDate\":1736798400000,\"quantity\":4.000000,\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-7\",\"assetName\":\"MS Office 2021 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SOFTWARE\",\"id\":241,\"originalValue\":750.000000,\"purchaseDate\":1707768000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240201\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-8\",\"assetName\":\"MS Office 2021 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SOFTWARE\",\"id\":240,\"originalValue\":0.000000,\"purchaseDate\":1712088000000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240401;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-9\",\"assetName\":\"MS Office 2021 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SOFTWARE\",\"id\":239,\"originalValue\":0.000000,\"purchaseDate\":1718913600000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240601;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"HR\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-10\",\"assetName\":\"MS Office Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SOFTWARE\",\"id\":238,\"originalValue\":0.000000,\"purchaseDate\":1768939200000,\"quantity\":10.000000,\"remark\":\"供应商: Amimo;许可证: Smt@123;发票号: INV260101;原备注: Bundled with 10 unit of PC purchase for Lab.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-11\",\"assetName\":\"MS Office Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"11\",\"externalSource\":\"SOFTWARE\",\"id\":237,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;原备注: Bundled with 1 unit of Laptop\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"Tech & Technology\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-12\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"12\",\"externalSource\":\"SOFTWARE\",\"id\":236,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: BX27V-J9QMG-3VVWY-7JTYT-94CXB\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-13\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"13\",\"externalSource\":\"SOFTWARE\",\"id\":235,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: GTTC2-XH8PW-3WJFH-76VFQ-PHYX9\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-14\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"14\",\"externalSource\":\"SOFTWARE\",\"id\":234,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: WY8KV-GQ39X-2WQF2-V8R93-RY6CT\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-15\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"15\",\"externalSource\":\"SOFTWARE\",\"id\":233,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: YBDDT-C4QPP-J6T63-DQMB8-9XB29;原备注: Written: Burnny / Asus\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-16\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"16\",\"externalSource\":\"SOFTWARE\",\"id\":232,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: XG2WV-YRDV4-VQWQ2-XQQ26-XJ3FF;原备注: Written: SGH109RCWK\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-1\",\"assetName\":\"Linux 6.8.0-45\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SOFTWARE\",\"id\":231,\"originalValue\":0.000000,\"purchaseDate\":1728849600000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240902;原备注: For server\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-33\",\"assetName\":\"Ubuntu 24.04.1 LTS\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,...[已截断]'); +INSERT INTO `tbl_log` VALUES (8382, 63, '接口日志', '112.13.210.152/115.220.229.151', '2026-09-29 13:06:39', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/036PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"231\",\"externalSource\":\"HARDWARE\",\"id\":70,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/035CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"230\",\"externalSource\":\"HARDWARE\",\"id\":69,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/035PC\",\"assetName\":\"LG\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"229\",\"externalSource\":\"HARDWARE\",\"id\":68,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / LG\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/034CPU\",\"assetName\":\"HP OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"228\",\"externalSource\":\"HARDWARE\",\"id\":67,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5P8RRK2;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/034PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"227\",\"externalSource\":\"HARDWARE\",\"id\":66,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/033CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"226\",\"externalSource\":\"HARDWARE\",\"id\":65,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BFJC;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/033PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"225\",\"externalSource\":\"HARDWARE\",\"id\":64,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/032PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"224\",\"externalSource\":\"HARDWARE\",\"id\":63,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/032CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"223\",\"externalSource\":\"HARDWARE\",\"id\":62,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BFJJ;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/031CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"222\",\"externalSource\":\"HARDWARE\",\"id\":61,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDQP;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/031PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"221\",\"externalSource\":\"HARDWARE\",\"id\":60,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU020\",\"assetName\":\"HP HP Pro 3330 MT\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"220\",\"externalSource\":\"HARDWARE\",\"id\":59,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: SGH221S6SH;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / HP Pro 3330 MT / Win 10 Pro / Core i7-2600 / 8G / 220G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/030PC\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"219\",\"externalSource\":\"HARDWARE\",\"id\":58,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDPN;用途: Testing / Lab;原备注: Windows License Key : QRWJ7-2N8MF-TM9WY-HKB42-VFR9C\\n\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"218\",\"externalSource\":\"HARDWARE\",\"id\":57,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMSP;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"217\",\"externalSource\":\"HARDWARE\",\"id\":56,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP19/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"216\",\"externalSource\":\"HARDWARE\",\"id\":55,\"keeper\":\"Hasmah\",\"location\":\"Not Specified\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified;原备注: RETURN TO SUPPLIER DUE THE PROBLEM\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"REPAIR\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP18/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"215\",\"externalSource\":\"HARDWARE\",\"id\":54,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP17/11112024\",\"assetName\":\"HP Pro Book 440\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"214\",\"externalSource\":\"HARDWARE\",\"id\":53,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Pro Book 440\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP16/11112024\",\"assetName\":\"HP Radeon Intel Core i5\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"213\",\"externalSource\":\"HARDWARE\",\"id\":52,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Radeon Intel Core i5\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-212\",\"assetName\":\"HP All-in-One 24-dp0209d\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"212\",\"externalSource\":\"HARDWARE\",\"id\":51,\"keeper\":\"Hasmah\",\"location\":\"HR Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8CC10109F6\",\"source\":\"SAS\",\"specification\":\"All-In-One / HP / All-in-One 24-dp0209d / Win 10 Home / AMD Ryzen 5 4500U / 24G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP3/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"211\",\"externalSource\":\"HARDWARE\",\"id\":50,\"keeper\":\"Hasmah\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1Q9H0C;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-8650U / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU003\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"210\",\"externalSource\":\"HARDWARE\",\"id\":49,\"keeper\":\"Sharida\",\"location\":\"HR Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMV5\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Finance\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-209\",\"assetName\":\"HP All-in-One 24-dp0209d\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"209\",\"externalSource\":\"HARDWARE\",\"id\":48,\"keeper\":\"Juwairiah\",\"location\":\"Finance Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8CC10114RG\",\"source\":\"SAS\",\"specification\":\"All-In-One / HP / All-in-One 24-dp0209d / Win 11 Home / AMD Ryzen 5 4500U / 24G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Finance\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP2/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"208\",\"externalSource\":\"HARDWARE\",\"id\":47,\"keeper\":\"Juwairiah\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1VB7AE;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 10 Pro / Core i7-10510U / 16G / 256G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Finance\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-207\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"207\",\"externalSource\":\"HARDWARE\",\"id\":46,\"keeper\":\"Adha\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BFJM\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/047\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"206\",\"externalSource\":\"HARDWARE\",\"id\":45,\"keeper\":\"Ilham\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BNS9\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 10 Pro / Core i5-10500 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP20/112004\",\"assetName\":\"HP HP 14s-cf3022tx\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"205\",\"externalSource\":\"HARDWARE\",\"id\":44,\"keeper\":\"Adha\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5CG03082JK\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / HP 14s-cf3022tx / Win 10 Home / Core i5-1035G1 / 8G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP5/112004\",\"assetName\":\"Lenovo ThinkPad X1\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"204\",\"externalSource\":\"HARDWARE\",\"id\":43,\"keeper\":\"Amir\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1V7QXT\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 / Win 10 Pro / Core i7-10510U / 16G / 256G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/CPU/053,SMT/N02/CPU046\",\"assetName\":\"Dell Vostro 230\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"203\",\"externalSource\":\"HARDWARE\",\"id\":42,\"keeper\":\"Halimaton\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 2VBK92S\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / Vostro 230 / Win 7 Pro / Pentium Dual Core E6700 / 4G / 320G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production 2\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP13/112004\",\"assetName\":\"HP HP 14s-cf2036tx\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"202\",\"externalSource\":\"HARDWARE\",\"id\":41,\"keeper\":\"Fitri/Hanif\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5CG011D1XR;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / HP 14s-cf2036tx / Win 10 Home / Core i7-1051U / 8G / 500GB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/047CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"201\",\"externalSource\":\"HARDWARE\",\"id\":40,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/047PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"200\",\"externalSource\":\"HARDWARE\",\"id\":39,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/046CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"199\",\"externalSource\":\"HARDWARE\",\"id\":38,\"keeper\":\"Ariffin\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: LH5TTC3;用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Core i3-10100\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/046PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"198\",\"externalSource\":\"HARDWARE\",\"id\":37,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/045CPU\",\"assetName\":\"Cooto\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"197\",\"externalSource\":\"HARDWARE\",\"id\":36,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / Cooto\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/045PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"196\",\"externalSource\":\"HARDWARE\",\"id\":35,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/044CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"195\",\"externalSource\":\"HARDWARE\",\"id\":34,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BFHW;用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 240G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/044PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"194\",\"externalSource\":\"HARDWARE\",\"id\":33,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/043CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"193\",\"exte...[已截断]'); +INSERT INTO `tbl_log` VALUES (8383, 63, '接口日志', '120.226.176.204/115.220.229.151', '2026-09-29 13:06:43', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-33\",\"assetName\":\"Ubuntu 24.04.1 LTS\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"33\",\"externalSource\":\"SOFTWARE\",\"id\":230,\"originalValue\":0.000000,\"purchaseDate\":1728849600000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240902;原备注: For server\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-32\",\"assetName\":\"MS Windows 2000 Server Client Access License\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"32\",\"externalSource\":\"SOFTWARE\",\"id\":229,\"originalValue\":0.000000,\"quantity\":5.000000,\"remark\":\"许可证: 13925763;原备注: Authorization Number: 13880917ZZS0307\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-31\",\"assetName\":\"MS Windows 2000 Server\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"31\",\"externalSource\":\"SOFTWARE\",\"id\":228,\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-30\",\"assetName\":\"MS SQL Server 2017 Standard\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"30\",\"externalSource\":\"SOFTWARE\",\"id\":227,\"originalValue\":3750.000000,\"purchaseDate\":1634846400000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;许可证: PHDV4-3VJWD-N7JVP-FGPKY-XBV89;发票号: INV211001;原备注: 4 Core License Key: 4TQHY-D7R86-VGBFG-PW7GV-8G2FY\",\"source\":\"SAS\",\"specification\":\"Amimo / CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-29\",\"assetName\":\"MS Office Home & Student 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"29\",\"externalSource\":\"SOFTWARE\",\"id\":226,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: GRQJ3-2TM6Q-BRFY4-DFJYQ-2BQKM\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-28\",\"assetName\":\"MS Office Home & Student 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"28\",\"externalSource\":\"SOFTWARE\",\"id\":225,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: TQ8C3-67C72-7B33C-BM4GF-33VB2\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-27\",\"assetName\":\"MS Office Home & Student\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"27\",\"externalSource\":\"SOFTWARE\",\"id\":224,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"原备注: Bundled with HP Laptop 14s-cf3022TX (SN 5CG03082BJ)\",\"source\":\"SAS\",\"specification\":\"Sticker\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-17\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"17\",\"externalSource\":\"SOFTWARE\",\"id\":223,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: H7F93-PMMX8-8MHMT-4CY7W-W9QHM;原备注: Written: Khairul Bariyyah PC14\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-25\",\"assetName\":\"MS Office Home & Student\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"25\",\"externalSource\":\"SOFTWARE\",\"id\":222,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"原备注: Bundled with HP Laptop - 14s-cf3022tx (5CG03082JK) {Adha}\",\"source\":\"SAS\",\"specification\":\"Sticker\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-24\",\"assetName\":\"MS Office Home & Student\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"24\",\"externalSource\":\"SOFTWARE\",\"id\":221,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"原备注: Bundled with HP Laptop 14s-cf2036TX (SN 5CG011D1W7); written off - spoilt\",\"source\":\"SAS\",\"specification\":\"Sticker\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000,\"useDepartment\":\"Account\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-23\",\"assetName\":\"MS Office Home & Student\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"23\",\"externalSource\":\"SOFTWARE\",\"id\":220,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"原备注: Bundled with HP Laptop 14s-cf3022TX (SN 5CG03082JY)\",\"source\":\"SAS\",\"specification\":\"Sticker\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-22\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"22\",\"externalSource\":\"SOFTWARE\",\"id\":219,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: KBFDQ-4JGT4-VDWCT-C83WF-2RKWD;原备注: Written: Rosfi PC18\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-21\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"21\",\"externalSource\":\"SOFTWARE\",\"id\":218,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: VTVDJ-8GCYX-4HC26-GPGQP-DRMY4;原备注: Written: Sharifah PC20\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-20\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"20\",\"externalSource\":\"SOFTWARE\",\"id\":217,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: VK32X-YGC4D-423VR-2XC4K-D4C4R;原备注: Written: PTC8125D-02\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-19\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"19\",\"externalSource\":\"SOFTWARE\",\"id\":216,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: Q69G3-62HB3-H9VYY-VBGM8-6YCYP;原备注: Written: PC-2 Habsah-Admin & PC31\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-18\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"18\",\"externalSource\":\"SOFTWARE\",\"id\":215,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: 23MQ8-Q739G-DT3MW-43B9K-PRGDV;原备注: Written: PTC8125D-01\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-26\",\"assetName\":\"MS Office Home & Student\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"26\",\"externalSource\":\"SOFTWARE\",\"id\":214,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"原备注: Check Laptop with Herman\",\"source\":\"SAS\",\"specification\":\"Sticker\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-374\",\"assetName\":\"N/A Server\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"374\",\"externalSource\":\"HARDWARE\",\"id\":213,\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: N/A\",\"source\":\"SAS\",\"specification\":\"Server / N/A / Server / Ubuntu 24.04.1 LTS / 8TB,1TB M2,512MB M2\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-373\",\"assetName\":\"N/A Server\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"373\",\"externalSource\":\"HARDWARE\",\"id\":212,\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: N/A;用途: Seafile\",\"source\":\"SAS\",\"specification\":\"Server / N/A / Server / Linux CentOS / 8TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-372\",\"assetName\":\"Hisense Hisense S02BDS7AA21E\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"372\",\"externalSource\":\"HARDWARE\",\"id\":211,\"location\":\"Meeting Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 3TB86B2303620 194VK21652\",\"source\":\"SAS\",\"specification\":\"Smartboard / Hisense / Hisense S02BDS7AA21E / Win 11 Pro / Core i7-10700 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8384, 63, '接口日志', '111.2.129.148/115.220.229.151', '2026-09-29 13:08:03', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8385, 63, '接口日志', '111.2.129.163/115.220.229.151', '2026-09-29 13:08:10', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8386, 63, '接口日志', '111.2.129.148/115.220.229.151', '2026-09-29 13:08:10', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8387, 63, '接口日志', '111.2.129.142/115.220.229.151', '2026-09-29 13:08:10', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8388, 63, '接口日志', '111.2.129.167/115.220.229.151', '2026-09-29 13:08:11', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8389, 63, '接口日志', '111.2.129.137/115.220.229.151', '2026-09-29 13:08:11', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8390, 63, '接口日志', '111.2.129.173/115.220.229.151', '2026-09-29 13:08:11', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8391, 63, '接口日志', '111.2.129.155/115.220.229.151', '2026-09-29 13:08:11', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8392, 63, '接口日志', '111.2.129.172/115.220.229.151', '2026-09-29 13:08:11', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8393, 63, '接口日志', '117.44.77.25/115.220.229.151', '2026-09-29 13:08:11', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8394, 63, '接口日志', '111.2.129.141/115.220.229.151', '2026-09-29 13:08:31', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8395, 63, '接口日志', '111.2.129.157/115.220.229.151', '2026-09-29 13:08:31', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8396, 63, '接口日志', '111.2.129.171/115.220.229.151', '2026-09-29 13:08:31', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8397, 63, '接口日志', '111.2.129.154/115.220.229.151', '2026-09-29 13:08:31', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8398, 63, '接口日志', '111.2.129.136/115.220.229.151', '2026-09-29 13:08:31', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8399, 63, '接口日志', '111.2.129.165/115.220.229.151', '2026-09-29 13:08:31', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8400, 63, '接口日志', '111.2.129.168/115.220.229.151', '2026-09-29 13:08:31', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-29\\\",\\\"endTime\\\":\\\"2026-09-29\\\",\\\"createTimeRange\\\":[\\\"2026-06-28T16:00:00.000Z\\\",\\\"2026-09-28T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2107-14\",\"billTime\":1783281600000,\"billTimeStr\":\"2026-07-06 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":102,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2107-14\",\"sourceTime\":\"2026-06-06 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2102-11\",\"billTime\":1782763200000,\"billTimeStr\":\"2026-06-30 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":101,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2102\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2102-11\",\"sourceTime\":\"2026-05-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8401, 63, '接口日志', '112.13.210.158/115.220.229.151', '2026-09-29 13:08:31', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8402, 63, '接口日志', '112.13.210.47/115.220.229.151', '2026-09-29 13:08:31', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8403, 63, '接口日志', '111.2.129.162/115.220.229.151', '2026-09-29 13:08:31', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (8404, NULL, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-29 13:11:46', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8405, NULL, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 13:11:46', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8406, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-29 13:11:47', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8407, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-29 13:11:47', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8408, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-29 13:11:48', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8409, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 13:11:48', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8410, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-29 13:11:48', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8411, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-29 13:11:56', 0, 'PlatformConfigController.getList(..)', NULL, 'GET /apis/platformConfig/list', '{\"search\":\"{\\\"platformKey\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":21,\"rows\":[{\"id\":1,\"platformKey\":\"platform_name\",\"platformKeyInfo\":\"平台名称\",\"platformValue\":\"SMT\"},{\"id\":3,\"platformKey\":\"platform_url\",\"platformKeyInfo\":\"官方网站\",\"platformValue\":\"http://www.gyjerp.com/\"},{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"},{\"id\":5,\"platformKey\":\"bill_print_url\",\"platformKeyInfo\":\"三联打印地址\",\"platformValue\":\"\"},{\"id\":6,\"platformKey\":\"pay_fee_url\",\"platformKeyInfo\":\"租户续费地址\",\"platformValue\":\"\"},{\"id\":7,\"platformKey\":\"register_flag\",\"platformKeyInfo\":\"注册启用标记\",\"platformValue\":\"0\"},{\"id\":9,\"platformKey\":\"send_workflow_url\",\"platformKeyInfo\":\"发起流程地址\",\"platformValue\":\"\"},{\"id\":10,\"platformKey\":\"weixinUrl\",\"platformKeyInfo\":\"微信url\",\"platformValue\":\"\"},{\"id\":11,\"platformKey\":\"weixinAppid\",\"platformKeyInfo\":\"微信appid\",\"platformValue\":\"\"},{\"id\":12,\"platformKey\":\"weixinSecret\",\"platformKeyInfo\":\"微信secret\",\"platformValue\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (8412, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-29 13:11:58', 0, 'SysDictTypeController.list(..)', NULL, 'GET /apis/dict/type/list', '{\"search\":\"{\\\"dictName\\\":\\\"\\\",\\\"dictType\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createBy\":\"admin\",\"createTime\":1639589778000,\"dictId\":1,\"dictName\":\"用户性别\",\"dictType\":\"sys_user_sex\",\"params\":{},\"remark\":\"用户性别列表\",\"status\":\"0\",\"updateBy\":\"admin\",\"updateTime\":1775132441000},{\"createBy\":\"admin\",\"createTime\":1775241057000,\"dictId\":12,\"dictName\":\"系统开关\",\"dictType\":\"sys_normal_disable\",\"params\":{},\"remark\":\"系统开关列表\",\"status\":\"0\",\"updateBy\":\"admin\",\"updateTime\":1775324469000}]}}'); +INSERT INTO `tbl_log` VALUES (8413, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 13:11:58', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8414, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-29 13:11:58', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8415, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-29 13:11:58', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8416, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-29 13:12:00', 0, 'PluginController.getPluginInfo(..)', NULL, 'GET /apis/plugin/list', '{\"currentPage\":1,\"pageSize\":10}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8417, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-29 13:12:04', 0, 'FunctionController.getList(..)', NULL, 'GET /apis/function/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"nameEn\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":79,\"rows\":[{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"shopping-cart\",\"id\":38,\"name\":\"销售管理\",\"nameEn\":\"Sales Management\",\"number\":\"0603\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0001\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/billB\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"retweet\",\"id\":32,\"name\":\"采购管理\",\"nameEn\":\"Purchase Management\",\"number\":\"0502\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0002\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/bill\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"cluster\",\"id\":262,\"name\":\"生产管理\",\"nameEn\":\"Production Management\",\"number\":\"0901\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0003\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/production\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"hdd\",\"id\":239,\"name\":\"仓库管理\",\"nameEn\":\"Warehouse Management\",\"number\":\"0801\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0004\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/billD\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"money-collect\",\"id\":44,\"name\":\"财务管理\",\"nameEn\":\"Finance Management\",\"number\":\"0704\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0005\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/financial\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"bank\",\"id\":272,\"name\":\"资产管理\",\"nameEn\":\"Asset Management\",\"number\":\"0902\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0006\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/assetManagement\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"shopping\",\"id\":21,\"name\":\"商品管理\",\"nameEn\":\"Product Management\",\"number\":\"0101\",\"parentNumber\":\"0\",\"sort\":\"0007\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/material\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"pie-chart\",\"id\":198,\"name\":\"报表查询\",\"nameEn\":\"Reports\",\"number\":\"0301\",\"parentNumber\":\"0\",\"sort\":\"0008\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/report\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"appstore\",\"id\":24,\"name\":\"基础资料\",\"nameEn\":\"Master Data\",\"number\":\"0102\",\"parentNumber\":\"0\",\"sort\":\"0009\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/systemA\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"setting\",\"id\":1,\"name\":\"系统管理\",\"nameEn\":\"System Management\",\"number\":\"0001\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0010\",\"state\":true,\"type\":\"电脑版\",\"url\":\"/system\"}]}}'); +INSERT INTO `tbl_log` VALUES (8418, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-29 13:12:06', 0, 'PluginController.checkByTag(..)', NULL, 'GET /apis/plugin/checkByPluginId', '{\"pluginIds\":\"workflow\"}', '{\"code\":200,\"data\":false}'); +INSERT INTO `tbl_log` VALUES (8419, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-29 13:12:06', 0, 'PluginController.checkByTag(..)', NULL, 'GET /apis/plugin/checkByPluginId', '{\"pluginIds\":\"stock-check\"}', '{\"code\":200,\"data\":false}'); +INSERT INTO `tbl_log` VALUES (8420, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 13:12:06', 0, 'SystemConfigController.getList(..)', NULL, 'GET /apis/systemConfig/list', '{\"search\":\"{\\\"companyName\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8421, 63, '系统配置', '43.152.157.63/1.9.116.218', '2026-09-29 13:12:10', 0, '修改公司test', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8422, 63, '接口日志', '43.152.157.63/1.9.116.218', '2026-09-29 13:12:10', 0, 'SystemConfigController.updateResource(..)', NULL, 'PUT /apis/systemConfig/update', '{\"obj\":{\"materialPriceTaxFlag\":\"0\",\"companyName\":\"公司test\",\"updateUnitPriceFlag\":\"1\",\"customerStaticPriceFlag\":\"0\",\"customerFlag\":\"0\",\"deleteFlag\":\"0\",\"zeroChangeAmountFlag\":\"0\",\"minusStockFlag\":\"0\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"id\":11,\"moveAvgPriceFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"purchaseBySaleFlag\":\"0\",\"companyTel\":\"12345678\",\"overLinkBillFlag\":\"1\",\"auditPrintFlag\":\"1\",\"companyContacts\":\"小李\",\"multiAccountFlag\":\"1\",\"companyAddress\":\"地址1\",\"inOutManageFlag\":\"0\",\"tenantId\":63,\"depotFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\"}}', '{\"code\":200,\"data\":{\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8423, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 13:12:10', 0, 'SystemConfigController.getList(..)', NULL, 'GET /apis/systemConfig/list', '{\"search\":\"{\\\"companyName\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"1\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8424, 63, '系统配置', '43.152.157.63/1.9.116.218', '2026-09-29 13:12:11', 0, '修改公司test', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8425, 63, '接口日志', '43.152.157.63/1.9.116.218', '2026-09-29 13:12:11', 0, 'SystemConfigController.updateResource(..)', NULL, 'PUT /apis/systemConfig/update', '{\"obj\":{\"materialPriceTaxFlag\":\"0\",\"companyName\":\"公司test\",\"updateUnitPriceFlag\":\"1\",\"customerStaticPriceFlag\":\"0\",\"customerFlag\":\"0\",\"deleteFlag\":\"0\",\"zeroChangeAmountFlag\":\"0\",\"minusStockFlag\":\"0\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"id\":11,\"moveAvgPriceFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"purchaseBySaleFlag\":\"0\",\"companyTel\":\"12345678\",\"overLinkBillFlag\":\"0\",\"auditPrintFlag\":\"1\",\"companyContacts\":\"小李\",\"multiAccountFlag\":\"1\",\"companyAddress\":\"地址1\",\"inOutManageFlag\":\"0\",\"tenantId\":63,\"depotFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\"}}', '{\"code\":200,\"data\":{\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8426, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-29 13:12:11', 0, 'SystemConfigController.getList(..)', NULL, 'GET /apis/systemConfig/list', '{\"search\":\"{\\\"companyName\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8427, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-29 13:12:19', 0, 'MaterialPropertyController.getList(..)', NULL, 'GET /apis/materialProperty/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}}'); +INSERT INTO `tbl_log` VALUES (8428, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 13:12:24', 0, 'OrganizationController.getOrganizationTree(..)', NULL, 'GET /apis/organization/getOrganizationTree', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8429, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 13:12:32', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8430, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-29 13:12:32', 0, 'UserController.getList(..)', NULL, 'GET /apis/user/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"isystem\":1,\"leaderFlag\":\"0\",\"leaderFlagStr\":\"否\",\"loginName\":\"admin\",\"orgAbr\":\"测试部门\",\"orgaId\":12,\"orgaUserRelId\":11,\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"roleId\":21,\"roleName\":\"admin\",\"status\":0,\"tenantId\":63,\"userBlngOrgaDsplSeq\":\"15\",\"userType\":\"系统管理员\",\"username\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8431, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-29 13:12:35', 0, 'RoleController.allList(..)', NULL, 'GET /apis/role/allList', '{}', '[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]'); +INSERT INTO `tbl_log` VALUES (8432, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 13:12:43', 0, 'RoleController.getList(..)', NULL, 'GET /apis/role/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"description\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":7,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]}}'); +INSERT INTO `tbl_log` VALUES (8433, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-29 13:12:50', 0, 'FunctionController.findRoleFunction(..)', NULL, 'GET /apis/function/findRoleFunction', '{\"type\":\"RoleFunctions\",\"keyId\":\"10\"}', '[{\"children\":[{\"titleEn\":\"Sales Management\",\"children\":[{\"titleEn\":\"Sales Orders\",\"checked\":true,\"attributes\":\"销售订单\",\"id\":242,\"title\":\"销售订单\",\"value\":242,\"key\":242},{\"titleEn\":\"Sales Shipments\",\"checked\":true,\"attributes\":\"销售出库\",\"id\":41,\"title\":\"销售出库\",\"value\":41,\"key\":41},{\"titleEn\":\"Delivery Plans\",\"checked\":false,\"attributes\":\"交货计划管理\",\"id\":271,\"title\":\"交货计划管理\",\"value\":271,\"key\":271},{\"titleEn\":\"Shipment Management\",\"checked\":false,\"attributes\":\"发货管理\",\"id\":268,\"title\":\"发货管理\",\"value\":268,\"key\":268},{\"titleEn\":\"Sales Returns\",\"checked\":true,\"attributes\":\"销售退货\",\"id\":200,\"title\":\"销售退货\",\"value\":200,\"key\":200},{\"titleEn\":\"Retail Shipments\",\"checked\":true,\"attributes\":\"零售出库\",\"id\":210,\"title\":\"零售出库\",\"value\":210,\"key\":210},{\"titleEn\":\"Retail Returns\",\"checked\":true,\"attributes\":\"零售退货\",\"id\":211,\"title\":\"零售退货\",\"value\":211,\"key\":211}],\"attributes\":\"销售管理\",\"id\":38,\"title\":\"销售管理\",\"value\":38,\"key\":38},{\"titleEn\":\"Purchase Management\",\"children\":[{\"titleEn\":\"Purchase Requisitions\",\"checked\":true,\"attributes\":\"请购单\",\"id\":261,\"title\":\"请购单\",\"value\":261,\"key\":261},{\"titleEn\":\"Purchase Orders\",\"checked\":true,\"attributes\":\"采购订单\",\"id\":241,\"title\":\"采购订单\",\"value\":241,\"key\":241},{\"titleEn\":\"Purchase Receipts\",\"checked\":true,\"attributes\":\"采购入库\",\"id\":33,\"title\":\"采购入库\",\"value\":33,\"key\":33},{\"titleEn\":\"Purchase Returns\",\"checked\":true,\"attributes\":\"采购退货\",\"id\":199,\"title\":\"采购退货\",\"value\":199,\"key\":199}],\"attributes\":\"采购管理\",\"id\":32,\"title\":\"采购管理\",\"value\":32,\"key\":32},{\"titleEn\":\"Production Management\",\"children\":[{\"titleEn\":\"Production BOMs\",\"checked\":true,\"attributes\":\"生产方案\",\"id\":263,\"title\":\"生产方案\",\"value\":263,\"key\":263},{\"titleEn\":\"Production Orders\",\"checked\":true,\"attributes\":\"生产工单\",\"id\":264,\"title\":\"生产工单\",\"value\":264,\"key\":264},{\"titleEn\":\"Material Requisitions\",\"checked\":true,\"attributes\":\"领料管理\",\"id\":265,\"title\":\"领料管理\",\"value\":265,\"key\":265},{\"titleEn\":\"Production Reports\",\"checked\":true,\"attributes\":\"完工报工\",\"id\":266,\"title\":\"完工报工\",\"value\":266,\"key\":266}],\"attributes\":\"生产管理\",\"id\":262,\"title\":\"生产管理\",\"value\":262,\"key\":262},{\"titleEn\":\"Warehouse Management\",\"children\":[{\"titleEn\":\"Product Inventory\",\"checked\":true,\"attributes\":\"商品库存\",\"id\":246,\"title\":\"商品库存\",\"value\":246,\"key\":246},{\"titleEn\":\"Other Receipts\",\"checked\":true,\"attributes\":\"其它入库\",\"id\":201,\"title\":\"其它入库\",\"value\":201,\"key\":201},{\"titleEn\":\"Other Shipments\",\"checked\":true,\"attributes\":\"其它出库\",\"id\":202,\"title\":\"其它出库\",\"value\":202,\"key\":202},{\"titleEn\":\"Stock Transfers\",\"checked\":true,\"attributes\":\"调拨出库\",\"id\":40,\"title\":\"调拨出库\",\"value\":40,\"key\":40},{\"titleEn\":\"Assembly Orders\",\"checked\":true,\"attributes\":\"组装单\",\"id\":232,\"title\":\"组装单\",\"value\":232,\"key\":232},{\"titleEn\":\"Headquarters Receipts\",\"checked\":false,\"attributes\":\"总部入库\",\"id\":270,\"title\":\"总部入库\",\"value\":270,\"key\":270},{\"titleEn\":\"Disassembly Orders\",\"checked\":true,\"attributes\":\"拆卸单\",\"id\":233,\"title\":\"拆卸单\",\"value\":233,\"key\":233}],\"attributes\":\"仓库管理\",\"id\":239,\"title\":\"仓库管理\",\"value\":239,\"key\":239},{\"titleEn\":\"Finance Management\",\"children\":[{\"titleEn\":\"Income Vouchers\",\"checked\":true,\"attributes\":\"收入单\",\"id\":197,\"title\":\"收入单\",\"value\":197,\"key\":197},{\"titleEn\":\"Expense Vouchers\",\"checked\":true,\"attributes\":\"支出单\",\"id\":203,\"title\":\"支出单\",\"value\":203,\"key\":203},{\"titleEn\":\"Receipt Vouchers\",\"checked\":true,\"attributes\":\"收款单\",\"id\":204,\"title\":\"收款单\",\"value\":204,\"key\":204},{\"titleEn\":\"Payment Vouchers\",\"checked\":true,\"attributes\":\"付款单\",\"id\":205,\"title\":\"付款单\",\"value\":205,\"key\":205},{\"titleEn\":\"Transfer Vouchers\",\"checked\":true,\"attributes\":\"转账单\",\"id\":206,\"title\":\"转账单\",\"value\":206,\"key\":206},{\"titleEn\":\"Advance Receipts\",\"checked\":true,\"attributes\":\"收预付款\",\"id\":212,\"title\":\"收预付款\",\"value\":212,\"key\":212}],\"attributes\":\"财务管理\",\"id\":44,\"title\":\"财务管理\",\"value\":44,\"key\":44},{\"titleEn\":\"Asset Management\",\"children\":[{\"titleEn\":\"Asset Overview\",\"checked\":false,\"attributes\":\"资产汇总\",\"id\":276,\"title\":\"资产汇总\",\"value\":276,\"key\":276},{\"titleEn\":\"Asset Ledger\",\"checked\":false,\"attributes\":\"资产台账\",\"id\":273,\"title\":\"资产台账\",\"value\":273,\"key\":273},{\"titleEn\":\"Device Ledger\",\"checked\":false,\"attributes\":\"设备台账\",\"id\":274,\"title\":\"设备台账\",\"value\":274,\"key\":274},{\"titleEn\":\"Asset Inventory\",\"checked\":false,\"attributes\":\"资产盘点\",\"id\":275,\"title\":\"资产盘点\",\"value\":275,\"key\":275}],\"attributes\":\"资产管理\",\"id\":272,\"title\":\"资产管理\",\"value\":272,\"key\":272},{\"titleEn\":\"Product Management\",\"children\":[{\"titleEn\":\"Product Categories\",\"checked\":true,\"attributes\":\"商品类别\",\"id\":22,\"title\":\"商品类别\",\"value\":22,\"key\":22},{\"titleEn\":\"Product Information\",\"checked\":true,\"attributes\":\"商品信息\",\"id\":23,\"title\":\"商品信息\",\"value\":23,\"key\":23},{\"titleEn\":\"Multiple Units\",\"checked\":true,\"attributes\":\"多单位\",\"id\":220,\"title\":\"多单位\",\"value\":220,\"key\":220},{\"titleEn\":\"Product Attributes\",\"checked\":true,\"attributes\":\"多属性\",\"id\":247,\"title\":\"多属性\",\"value\":247,\"key\":247}],\"attributes\":\"商品管理\",\"id\":21,\"title\":\"商品管理\",\"value\":21,\"key\":21},{\"titleEn\":\"Reports\",\"children\":[{\"titleEn\":\"Account Summary\",\"checked\":true,\"attributes\":\"账户统计\",\"id\":207,\"title\":\"账户统计\",\"value\":207,\"key\":207},{\"titleEn\":\"Retail Summary\",\"checked\":true,\"attributes\":\"零售统计\",\"id\":259,\"title\":\"零售统计\",\"value\":259,\"key\":259},{\"titleEn\":\"Purchase Summary\",\"checked\":true,\"attributes\":\"采购统计\",\"id\":208,\"title\":\"采购统计\",\"value\":208,\"key\":208},{\"titleEn\":\"Sales Summary\",\"checked\":true,\"attributes\":\"销售统计\",\"id\":209,\"title\":\"销售统计\",\"value\":209,\"key\":209},{\"titleEn\":\"Inbound Details\",\"checked\":true,\"attributes\":\"入库明细\",\"id\":226,\"title\":\"入库明细\",\"value\":226,\"key\":226},{\"titleEn\":\"Outbound Details\",\"checked\":true,\"attributes\":\"出库明细\",\"id\":227,\"title\":\"出库明细\",\"value\":227,\"key\":227},{\"titleEn\":\"Transfer Details\",\"checked\":true,\"attributes\":\"调拨明细\",\"id\":248,\"title\":\"调拨明细\",\"value\":248,\"key\":248},{\"titleEn\":\"Inbound Summary\",\"checked\":true,\"attributes\":\"入库汇总\",\"id\":228,\"title\":\"入库汇总\",\"value\":228,\"key\":228},{\"titleEn\":\"Outbound Summary\",\"checked\":true,\"attributes\":\"出库汇总\",\"id\":229,\"title\":\"出库汇总\",\"value\":229,\"key\":229},{\"titleEn\":\"Inventory Transaction Summary\",\"checked\":true,\"attributes\":\"进销存统计\",\"id\":59,\"title\":\"进销存统计\",\"value\":59,\"key\":59},{\"titleEn\":\"Customer Reconciliation\",\"checked\":true,\"attributes\":\"客户对账\",\"id\":235,\"title\":\"客户对账\",\"value\":235,\"key\":235},{\"titleEn\":\"Supplier Reconciliation\",\"checked\":true,\"attributes\":\"供应商对账\",\"id\":237,\"title\":\"供应商对账\",\"value\":237,\"key\":237},{\"titleEn\":\"Stock Alerts\",\"checked\":true,\"attributes\":\"库存预警\",\"id\":244,\"title\":\"库存预警\",\"value\":244,\"key\":244}],\"attributes\":\"报表查询\",\"id\":198,\"title\":\"报表查询\",\"value\":198,\"key\":198},{\"titleEn\":\"Master Data\",\"children\":[{\"titleEn\":\"Suppliers\",\"checked\":true,\"attributes\":\"供应商信息\",\"id\":25,\"title\":\"供应商信息\",\"value\":25,\"key\":25},{\"titleEn\":\"Customers\",\"checked\":true,\"attributes\":\"客户信息\",\"id\":217,\"title\":\"客户信息\",\"value\":217,\"key\":217},{\"titleEn\":\"Members\",\"checked\":true,\"attributes\":\"会员信息\",\"id\":218,\"title\":\"会员信息\",\"value\":218,\"key\":218},{\"titleEn\":\"Customer Categories\",\"checked\":true,\"attributes\":\"客户分类\",\"id\":267,\"title\":\"客户分类\",\"value\":267,\"key\":267},{\"titleEn\":\"Warehouses\",\"checked\":true,\"attributes\":\"仓库信息\",\"id\":26,\"title\":\"仓库信息\",\"value\":26,\"key\":26},{\"titleEn\":\"Income and Expense Items\",\"checked\":true,\"attributes\":\"收支项目\",\"id\":194,\"title\":\"收支项目\",\"value\":194,\"key\":194},{\"titleEn\":\"Settlement Accounts\",\"checked\":true,\"attributes\":\"结算账户\",\"id\":195,\"title\":\"结算账户\",\"value\":195,\"key\":195},{\"titleEn\":\"Operators\",\"checked\":true,\"attributes\":\"操作人员管理\",\"id\":31,\"title\":\"操作人员管理\",\"value\":31,\"key\":31}],\"attributes\":\"基础资料\",\"id\":24,\"title\":\"基础资料\",\"value\":24,\"key\":24},{\"titleEn\":\"System Management\",\"children\":[{\"titleEn\":\"Role Management\",\"checked\":true,\"attributes\":\"角色管理\",\"id\":13,\"title\":\"角色管理\",\"value\":13,\"key\":13},{\"titleEn\":\"User Management\",\"checked\":true,\"attributes\":\"用户管理\",\"id\":14,\"title\":\"用户管理\",\"value\":14,\"key\":14},{\"titleEn\":\"Department Management\",\"checked\":true,\"attributes\":\"部门管理\",\"id\":243,\"title\":\"部门管理\",\"value\":243,\"key\":243},{\"titleEn\":\"Log Management\",\"checked\":true,\"attributes\":\"日志管理\",\"id\":15,\"title\":\"日志管理\",\"value\":15,\"key\":15},{\"titleEn\":\"Product Properties\",\"checked\":true,\"attributes\":\"商品属性\",\"id\":236,\"title\":\"商品属性\",\"value\":236,\"key\":236},{\"titleEn\":\"System Configuration\",\"checked\":true,\"attributes\":\"系统配置\",\"id\":234,\"title\":\"系统配置\",\"value\":234,\"key\":234},{\"titleEn\":\"Resource Menus\",\"checked\":false,\"attributes\":\"菜单管理\",\"id\":16,\"title\":\"菜单管理\",\"value\":16,\"key\":16},{\"titleEn\":\"Plugin Management\",\"checked\":false,\"attributes\":\"插件管理\",\"id\":245,\"title\":\"插件管理\",\"value\":245,\"key\":245},{\"titleEn\":\"Dictionary Management\",\"checked\":false,\"attributes\":\"字典管理\",\"id\":260,\"title\":\"字典管理\",\"value\":260,\"key\":260},{\"titleEn\":\"Platform Configuration\",\"checked\":false,\"attributes\":\"平台配置\",\"id\":258,\"title\":\"平台配置\",\"value\":258,\"key\":258}],\"attributes\":\"系统管理\",\"id\":1,\"title\":\"系统管理\",\"value\":1,\"key\":1},{\"titleEn\":\"Retail Management\",\"checked\":true,\"attributes\":\"零售管理\",\"id\":225,\"title\":\"零售管理\",\"value\":225,\"key\":225}],\"attributes\":\"功能列表\",\"id\":0,\"title\":\"功能列表\",\"value\":0,\"key\":0}]'); +INSERT INTO `tbl_log` VALUES (8434, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-29 13:13:21', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"供应商\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":0.000000,\"allNeedPay\":116500257.436400,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Excel初始化默认供应商\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":89,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"1\",\"supplier\":\"浙江瑞银电子有限公司\",\"taxNum\":\"\",\"taxRate\":0.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"供应商\"}]}}'); +INSERT INTO `tbl_log` VALUES (8435, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-29 13:13:23', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8436, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-29 13:13:23', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"客户\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":12430066.000000,\"allNeedPay\":0.000000,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Stock Status客户\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":90,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"2\",\"supplier\":\"TNB\",\"taxNum\":\"\",\"taxRate\":10.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"客户\"}]}}'); +INSERT INTO `tbl_log` VALUES (8437, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-29 13:13:23', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8438, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-29 13:13:25', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"会员\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8439, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-29 13:13:27', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8440, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-29 13:13:28', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8441, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-29 13:13:28', 0, 'DepotController.getList(..)', NULL, 'GET /apis/depot/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":25,\"isDefault\":true,\"name\":\"半成品仓库\",\"remark\":\"总部入库物料\",\"sort\":\"1\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000},{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":26,\"isDefault\":false,\"name\":\"成品仓库\",\"remark\":\"Stock Status成品\",\"sort\":\"2\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (8442, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-29 13:13:28', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8443, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-29 13:13:31', 0, 'InOutItemController.getList(..)', NULL, 'GET /apis/inOutItem/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"利息收入\",\"remark\":\"收入\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":22,\"name\":\"房租收入\",\"remark\":\"\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"快递费\",\"remark\":\"\",\"tenantId\":63,\"type\":\"支出\"}]}}'); +INSERT INTO `tbl_log` VALUES (8444, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-29 13:13:41', 0, 'AccountController.getList(..)', NULL, 'GET /apis/account/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"serialNo\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8445, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-29 13:13:42', 0, 'PersonController.getList(..)', NULL, 'GET /apis/person/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":44,\"name\":\"Neezam\",\"type\":\"CEO\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":31,\"name\":\"Arif\",\"sort\":\"1\",\"tenantId\":63,\"type\":\"商务主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":36,\"name\":\"张伟\",\"sort\":\"10\",\"tenantId\":63,\"type\":\"资产管理员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":32,\"name\":\"Hafiz\",\"sort\":\"2\",\"tenantId\":63,\"type\":\"技术主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":37,\"name\":\"陈晨\",\"sort\":\"20\",\"tenantId\":63,\"type\":\"设备工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":33,\"name\":\"Aziman\",\"sort\":\"3\",\"tenantId\":63,\"type\":\"软件工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":38,\"name\":\"王磊\",\"sort\":\"30\",\"tenantId\":63,\"type\":\"生产主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":34,\"name\":\"Lim\",\"sort\":\"4\",\"tenantId\":63,\"type\":\"IT\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":39,\"name\":\"赵敏\",\"sort\":\"40\",\"tenantId\":63,\"type\":\"IT运维工程师\"}]}}'); +INSERT INTO `tbl_log` VALUES (8446, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-29 13:13:42', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8447, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-29 13:13:42', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8448, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-29 13:13:58', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8449, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-29 13:15:23', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8450, NULL, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 13:27:36', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (8451, NULL, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 13:27:36', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8452, NULL, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-29 13:27:36', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8453, NULL, '接口日志', '120.226.169.13/115.220.229.151', '2026-09-29 15:09:47', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8454, NULL, '接口日志', '120.226.169.41/115.220.229.151', '2026-09-29 15:09:48', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8455, NULL, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:35:30', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8456, NULL, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 06:35:30', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8457, NULL, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 06:35:32', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8458, NULL, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 06:35:32', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3qJkklkkSRiRiNkPRSM9uxOfxGKkVldFdGDKwyCDkEUjJl0fcw254B4IPqP8AP868ivvjx4e0O+l0iW11WWaxuGt5pBZxqrBCVbavmjHI4yBgdRkUAesu1wPM2RRNjHl7pCN3rn5Tj9c+1K0b+YGjk2gtuYEFs9Bgc8DA7d+fXPn/AIQ+Keg+Pdfks9Ph1K1e1ga6c3SosZRSq9Q5Ktl+3BGc+ldxKs7y5aURNFJuTaCfMjwMjaDyecZIPsORQAPJ9kluG3PKzGM7Wk/vMVChe3se56njItSq7RkRvsfs2M/mPT/PFeBfCz/k4Xxr/wBv3/pWle6SXBuLdRbRTOspKGRSEMfOCTuwQRz2PIoAHunlIS3K7h87DcNzKCCNo6EMOM5GM+oxUkXmK6LvLhixfcrDB/2fbPY9jwcDFZHiWa9s/DutahpeHvI7K4aB1Jdo5FjO0KhDAnevI46DINfNngXw94X8cRalqPjXxnLa6mJFRftN4kbsu0BXLyg+YOCMAgrsGfvDAB9YhlYsAQSpwQD0PX+tQTzSxAsTBHEM5lkkPy8DBxjnnjGR9ea8E+AFxqA8Xa5p9rqs194ds7dkhLtsUkzZjdY2O5Nw81iB0J55xXtHirxRYeENCudX1BJ5IYFVmjgUM5BdE4yQOrr1NAGw8mx0QKSznjg4A75IGBx69ahjuHZ5GUGSMrujCJg5HDKST1z2IX8cHHxpp2q6Brer6jqXj241+6urlldJtOMO4nkMGDjAGNoULgADGMYx9lRs7OLhpN0SxYxGrDLZ+bK8njAAHUZYUAS+U/2symZvL2bRFjgHOS3v2Htg+tS1GqxOwnQIzMoAkABJXr19KkoAoeUzXMsYtQI1kVwTKwDZIYsABjIZen1JxnnwT4w/Eu9vdXufBmhzwRQyMsF5dhliMmf+WJcthVXdhy23ncpwA276Edori2c7nKAkExllbKnBxjnqO3WuJvPhL4F1a8u9Tu/Dskl1cyvPITdzKZHY7iQBIAMknjjHoKAMz4S+HvDvhjR57HR/Eel6pr10izXsltcrMoCnACorA7F3kbjgktk44UehrM1yYgqeXLhllOMmLgZUH1yVI4wQM+lc5onw/wDC/hFrjVPD2mGyu5LZozI08jHYSGIxIxCnKjkjjHPcVuItzaXcQCYt3ciQoGfe7AHdjnYu7PcjnkdwAeFfC7zT8fvFyB5kdvtoZyqkj/SUzuxwPw4zjqOK+hVWTKFpAcKQwC4DHjn278e9cxpvgLQNO1/UtesLWe01G/aQTTrNJuO58vgFiuGIBHHHbtjp0ByBvc7BtO4Abjxz0/lxyfwAMzVtQltPD2qXOkQC4vre0luILcRM3mSYYqpUYJJZSCBzn3r52+Gtj4F8U2ep33jzWEm11pwFbU9QeMGIIAp3Fl3nOQRuJAReg6/TwJJYFSMHAJxzx1/z6Vwtz8IvAWqXc13daIJrl2/fSfaZoyz45JVWAyepOOc570AeZ/BHU9QHizWtJ0uW5vvDlpl7eWVnbyY/OIUJkBRvVmdl2gtsyACK92ubNrycEzM9rKhGFI+QlWGR6ghj6nOO3SDQ/D2leFbCHTNFtoLGy8xmMQyzSORnO5jknA754AHAFaMkUYDD7OZRNIDIOCOgG4gnoMDp+VAHgv7NDBE8VOQSFFqTtBJ/5bdAOTXvsEnnW8cvA3qG+Vgw5HYjr9a5nwh4P8OeG7ed/D+nwxW1/EnnyCeSTzSu4AbXLYHzN3zzg9K6QRxsBGIiqwsNmBtAwBjbjtzj8xQBKjB0VxkBhkZBB/I8ilqpcTXMJlKxqY1UMrYZiTn7u1QT6/N2yODg1boAKKKKAEVVQYVQoyTgDHJ5NLRRQAUUUUAFMjiSLdsGAzFiM8ZPX6ev1ye9FFACxxrEpVBgFi34k5P6mnUUUAFFFFABRRRQB//Z\",\"uuid\":\"c7583eaa104442278fdb737ca30b1e78\"}}'); +INSERT INTO `tbl_log` VALUES (8459, 63, '用户', '43.152.142.57/1.9.116.218', '2026-09-30 06:36:32', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8460, NULL, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:36:32', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"zl8f\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"c7583eaa104442278fdb737ca30b1e78\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8461, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:36:33', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8462, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:36:33', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8463, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:36:33', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8464, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 06:36:33', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8465, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 06:36:33', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8466, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 06:36:33', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8467, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 06:36:48', 0, 'PlatformConfigController.getList(..)', NULL, 'GET /apis/platformConfig/list', '{\"search\":\"{\\\"platformKey\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":21,\"rows\":[{\"id\":1,\"platformKey\":\"platform_name\",\"platformKeyInfo\":\"平台名称\",\"platformValue\":\"SMT\"},{\"id\":3,\"platformKey\":\"platform_url\",\"platformKeyInfo\":\"官方网站\",\"platformValue\":\"http://www.gyjerp.com/\"},{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"},{\"id\":5,\"platformKey\":\"bill_print_url\",\"platformKeyInfo\":\"三联打印地址\",\"platformValue\":\"\"},{\"id\":6,\"platformKey\":\"pay_fee_url\",\"platformKeyInfo\":\"租户续费地址\",\"platformValue\":\"\"},{\"id\":7,\"platformKey\":\"register_flag\",\"platformKeyInfo\":\"注册启用标记\",\"platformValue\":\"0\"},{\"id\":9,\"platformKey\":\"send_workflow_url\",\"platformKeyInfo\":\"发起流程地址\",\"platformValue\":\"\"},{\"id\":10,\"platformKey\":\"weixinUrl\",\"platformKeyInfo\":\"微信url\",\"platformValue\":\"\"},{\"id\":11,\"platformKey\":\"weixinAppid\",\"platformKeyInfo\":\"微信appid\",\"platformValue\":\"\"},{\"id\":12,\"platformKey\":\"weixinSecret\",\"platformKeyInfo\":\"微信secret\",\"platformValue\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (8468, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 06:36:53', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8469, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:36:57', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8470, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 06:37:02', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8471, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 06:37:02', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8472, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 06:37:02', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8473, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 06:37:02', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8474, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 06:37:02', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8475, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-30 06:37:03', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8476, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 06:37:03', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8477, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 06:37:03', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8478, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 06:37:03', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8479, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 06:37:03', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8480, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 06:37:03', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"采购订单\\\",\\\"linkApply\\\":\\\"\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720113000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGDD00000001739\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1723,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001738\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGDD00000001739\",\"operTime\":1789734505000,\"operTimeStr\":\"2026-09-18 16:28:25\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":100000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717459000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGDD00000001720\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1716,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001719\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGDD00000001720\",\"operTime\":1789717452000,\"operTimeStr\":\"2026-09-18 11:44:12\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":0.700000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8481, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 06:37:03', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8482, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-30 06:37:05', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8483, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 06:37:05', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8484, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:37:05', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8485, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 06:37:05', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8486, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 06:37:05', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8487, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 06:37:05', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720142000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGRK00000001740\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1724,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001739\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGRK00000001740\",\"operTime\":1789734542000,\"operTimeStr\":\"2026-09-18 16:29:02\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":100000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717476000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGRK00000001721\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1717,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001720\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGRK00000001721\",\"operTime\":1789717474000,\"operTimeStr\":\"2026-09-18 11:44:34\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":0.700000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8488, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 06:37:05', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8489, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 06:37:05', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8490, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-30 06:37:06', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8491, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 06:37:06', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8492, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 06:37:06', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8493, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 06:37:06', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8494, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 06:37:06', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8495, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 06:37:06', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"采购退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8496, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 06:37:06', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8497, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 06:37:10', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8498, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 06:37:10', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8499, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 06:37:10', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8500, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 06:37:10', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8501, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 06:37:10', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8502, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:37:10', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8503, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 06:37:10', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8504, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 06:37:11', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8505, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 06:37:11', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8506, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 06:37:15', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD00000001726\"}', '{\"code\":200,\"data\":{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0,\"bankName\":\"\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1789718483000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"depotHeadType\":\"销售订单其它\",\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1719,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"phoneNum\":\"\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"totalPrice\":735000.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (8507, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 06:37:15', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1719}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8508, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 06:37:15', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8509, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 06:37:15', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8510, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 06:37:15', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSDD00000001726\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8511, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 06:37:15', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1719,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":10000.000000,\"depotId\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":10000.000000,\"anotherDepotId\":\"\",\"basicNumber\":10000.000000,\"taxLastMoney\":808500.000000,\"model\":\"1PH WS79\",\"id\":1524,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":73500.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":735000.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":735000.000000,\"finishPurchaseNumber\":0,\"operNumber\":10000.000000,\"taxLastMoney\":808500.000000,\"weight\":0,\"taxMoney\":73500.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8512, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 06:37:39', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8513, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 06:37:42', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8514, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 06:37:42', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8515, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 06:37:42', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8516, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 06:37:42', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8517, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 06:37:42', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8518, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 06:37:42', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8519, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 06:37:42', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8520, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 06:37:42', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8521, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 06:37:42', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8522, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:37:57', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-INV_2159-86\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1786305600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (8523, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:37:58', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8524, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 06:37:58', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8525, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 06:37:58', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1670}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8526, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 06:37:58', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1670,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":1000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":1000.000000,\"anotherDepotId\":\"\",\"basicNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"model\":\"1PH WS79\",\"id\":1475,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":7350.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":73500.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":73500.000000,\"finishPurchaseNumber\":0,\"operNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"weight\":0,\"taxMoney\":7350.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (8527, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 06:37:58', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSCK-INV_2159-86\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8528, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 06:38:03', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8529, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 06:38:07', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-35\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1628,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303437-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-35\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2125-34\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1627,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303437-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2125-34\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2125\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-33\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1626,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303433-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-33\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-32\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1625,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303433-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-32\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2124-31\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1624,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303433-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2124-31\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2124\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-30\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1623,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-30\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":64680.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-29\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":64680.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1622,\"lastDebt\":64680.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"materialCount\":800.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-29\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":64680.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":16170.000000,\"defaultNumber\":\"XSCK-INV_2123-28\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":16170.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1620,\"lastDebt\":16170.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"materialCount\":200.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2123-28\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2123\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":16170.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-27\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1619,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-27\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1782849600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2122-26\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1618,\"lastDebt\":-80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2122-26\",\"operTime\":1782849600000,\"operTimeStr\":\"2026-07-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2122\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8530, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 06:38:08', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":3234.000000,\"defaultNumber\":\"XSCK-do_2145-55\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":3234.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1649,\"lastDebt\":3234.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"materialCount\":40.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2145-55\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2145\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":3234.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-54\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1648,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-54\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-do_2144-53\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1647,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2144-53\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2144\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-do_2143-52\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1646,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2143-52\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2143\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-51\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1645,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-51\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2139-50\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1644,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2139-50\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2139\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2138-49\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1643,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2138-49\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2138\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783972800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2132-48\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1642,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2132-48\",\"operTime\":1783972800000,\"operTimeStr\":\"2026-07-14 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2132\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783886400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2131-47\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1641,\"lastDebt\":0.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2131-47\",\"operTime\":1783886400000,\"operTimeStr\":\"2026-07-13 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2131\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1783540800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-46\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1640,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-46\",\"operTime\":1783540800000,\"operTimeStr\":\"2026-07-09 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8531, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 06:38:09', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2133-65\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1660,\"lastDebt\":0.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2133-65\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2133\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-64\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1659,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303470-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-64\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2141-63\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1658,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303470-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2141-63\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2141\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2140-62\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1657,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303470-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2140-62\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2140\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-61\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1656,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303465-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-61\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-do_2148-60\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1655,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303465-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2148-60\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2148\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-do_2147-59\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1654,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303465-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2147-59\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2147\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-58\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1653,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-58\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-do_2146-57\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1652,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-do_2146-57\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2146\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785096000000,\"creator\":63,\"debt\":77616.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-56\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":77616.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1651,\"lastDebt\":77616.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"materialCount\":960.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-56\",\"operTime\":1785096000000,\"operTimeStr\":\"2026-07-27 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":77616.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8532, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 06:38:13', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8533, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 06:38:15', 0, 'DeliveryPlanController.getDetail(..)', NULL, 'GET /apis/deliveryPlan/detail', '{\"id\":6}', '{\"code\":200,\"data\":{\"rows\":[{\"barCode\":\"3PH-APEC3-WC\",\"deleteFlag\":\"0\",\"depotId\":26,\"id\":5,\"materialExtendId\":124,\"materialId\":704,\"materialName\":\"3PH APEC3-WC\",\"model\":\"3PH APEC3-WC\",\"planId\":6,\"planQuantity\":149.000000,\"remark\":\"\",\"shippedQuantity\":0.000000,\"sourceItemId\":1519,\"standard\":\"3PH APEC3-WC\",\"tenantId\":63,\"unit\":\"件\"}],\"info\":{\"createTime\":1789717298000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"id\":6,\"planNumber\":\"JH00000001717\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}}}'); +INSERT INTO `tbl_log` VALUES (8534, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 06:38:22', 0, 'DeliveryPlanController.getDetail(..)', NULL, 'GET /apis/deliveryPlan/detail', '{\"id\":6}', '{\"code\":200,\"data\":{\"rows\":[{\"barCode\":\"3PH-APEC3-WC\",\"deleteFlag\":\"0\",\"depotId\":26,\"id\":5,\"materialExtendId\":124,\"materialId\":704,\"materialName\":\"3PH APEC3-WC\",\"model\":\"3PH APEC3-WC\",\"planId\":6,\"planQuantity\":149.000000,\"remark\":\"\",\"shippedQuantity\":0.000000,\"sourceItemId\":1519,\"standard\":\"3PH APEC3-WC\",\"tenantId\":63,\"unit\":\"件\"}],\"info\":{\"createTime\":1789717298000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"id\":6,\"planNumber\":\"JH00000001717\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}}}'); +INSERT INTO `tbl_log` VALUES (8535, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 06:38:29', 0, 'DeliveryPlanController.getDetail(..)', NULL, 'GET /apis/deliveryPlan/detail', '{\"id\":7}', '{\"code\":200,\"data\":{\"rows\":[{\"barCode\":\"1PH-WS79\",\"deleteFlag\":\"0\",\"depotId\":25,\"id\":6,\"materialExtendId\":123,\"materialId\":703,\"materialName\":\"1PH WS79\",\"model\":\"1PH WS79\",\"planId\":7,\"planQuantity\":10000.000000,\"shippedQuantity\":0.000000,\"sourceItemId\":1525,\"standard\":\"1PH WS79\",\"unit\":\"件\"}],\"info\":{\"createTime\":1789720385000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"id\":7,\"planNumber\":\"JH00000001741\",\"saleOrderNumber\":\"XSDD00000001726\",\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"}}}'); +INSERT INTO `tbl_log` VALUES (8536, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 06:38:37', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8537, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 06:38:42', 0, 'SaleShipmentController.getDetail(..)', NULL, 'GET /apis/saleShipment/detail', '{\"id\":17}', '{\"code\":200,\"data\":{\"rows\":[{\"actualQuantity\":10000.000000,\"barCode\":\"1PH-WS79\",\"deleteFlag\":\"0\",\"deliveryPlanItemId\":6,\"depotId\":25,\"differenceQuantity\":0.000000,\"id\":15,\"materialExtendId\":123,\"materialId\":703,\"materialName\":\"1PH WS79\",\"model\":\"1PH WS79\",\"planQuantity\":10000.000000,\"saleOutItemId\":1525,\"shipmentId\":17,\"shippedQuantity\":0.000000,\"standard\":\"1PH WS79\",\"unit\":\"件\"}],\"info\":{\"approveBy\":63,\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"id\":17,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"}}}'); +INSERT INTO `tbl_log` VALUES (8538, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 06:38:44', 0, 'SaleShipmentController.getDetail(..)', NULL, 'GET /apis/saleShipment/detail', '{\"id\":16}', '{\"code\":200,\"data\":{\"rows\":[{\"actualQuantity\":149.000000,\"barCode\":\"3PH-APEC3-WC\",\"deleteFlag\":\"0\",\"deliveryPlanItemId\":5,\"depotId\":26,\"differenceQuantity\":0.000000,\"id\":13,\"materialExtendId\":124,\"materialId\":704,\"materialName\":\"3PH APEC3-WC\",\"model\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"remark\":\"\",\"saleOutItemId\":1519,\"shipmentId\":16,\"shippedQuantity\":0.000000,\"standard\":\"3PH APEC3-WC\",\"tenantId\":63,\"unit\":\"件\"}],\"info\":{\"approveBy\":63,\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}}}'); +INSERT INTO `tbl_log` VALUES (8539, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 06:38:50', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8540, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 06:38:50', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8541, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 06:38:50', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8542, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 06:38:50', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8543, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:38:50', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8544, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:38:50', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8545, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 06:38:50', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"销售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8546, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 06:38:50', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8547, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:38:54', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8548, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 06:38:54', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8549, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 06:38:54', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8550, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 06:38:54', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8551, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 06:38:54', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8552, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 06:38:54', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8553, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:38:54', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8554, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 06:38:54', 0, 'SequenceController.buildNumber(..)', NULL, 'GET /apis/sequence/buildNumber', '{}', '{\"code\":200,\"data\":{\"defaultNumber\":\"00000001747\"}}'); +INSERT INTO `tbl_log` VALUES (8555, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 06:38:54', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8556, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 06:38:54', 0, 'SystemConfigController.fileSizeLimit(..)', NULL, 'GET /apis/systemConfig/fileSizeLimit', '{}', '{\"code\":200,\"data\":10485760}'); +INSERT INTO `tbl_log` VALUES (8557, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 06:38:54', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8558, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 06:38:54', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8559, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 06:38:54', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8560, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 06:38:54', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8561, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 06:39:00', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"销售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8562, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:39:01', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (8563, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 06:39:01', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8564, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 06:39:01', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"零售\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8565, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 06:39:01', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8566, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:39:01', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8567, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 06:39:01', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8568, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 06:39:01', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8569, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:39:01', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8570, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:39:03', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (8571, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 06:39:03', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8572, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 06:39:03', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8573, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 06:39:03', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8574, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 06:39:03', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"零售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8575, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 06:39:03', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8576, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 06:39:03', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8577, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 06:39:16', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8578, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 06:39:35', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8579, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 06:39:55', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8580, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 06:39:55', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"orderNumber\\\":\\\"\\\",\\\"sourceNumber\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8581, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:39:57', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8582, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 06:39:57', 0, 'ProductionRequisitionController.getList(..)', NULL, 'GET /apis/productionRequisition/list', '{\"search\":\"{\\\"requisitionNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1790242827000,\"createTime\":1789720317000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":9,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"1\"},{\"createTime\":1789719809000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":8,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8583, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 06:39:57', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8584, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 06:40:03', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8585, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 06:40:03', 0, 'ProductionReportController.getList(..)', NULL, 'GET /apis/productionReport/list', '{\"search\":\"{\\\"reportNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8586, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 06:40:06', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8587, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 06:40:06', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8588, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:40:06', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8589, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 06:40:06', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8590, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 06:40:06', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (8591, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 06:40:11', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false,\"mId\":695}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"unitPrice\":1003.752000,\"number\":\"SM2505230003\",\"materialName\":\"MD-LR63(VB)\",\"depotName\":\"半成品仓库\",\"allPrice\":100375.200000000000,\"basicNumber\":100.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00422\",\"operTime\":\"2025-05-23 00:00:00\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8592, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 06:40:22', 0, 'ProductionRequisitionController.getDetail(..)', NULL, 'GET /apis/productionRequisition/getDetail', '{\"id\":8}', '{\"code\":200,\"data\":{\"requisition\":{\"createTime\":1789719809000,\"creator\":63,\"deleteFlag\":\"0\",\"depotId\":25,\"id\":8,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"},\"rows\":[{\"deleteFlag\":\"0\",\"requisitionId\":8,\"materialExtendId\":125,\"unit\":\"件\",\"requiredQuantity\":10000.000000,\"depotId\":25,\"issuedQuantity\":10000.000000,\"name\":\"MD-4G111(VF) 包装\",\"id\":25,\"materialId\":705,\"materialSku\":\"\",\"barCode\":\"1001\"}]}}'); +INSERT INTO `tbl_log` VALUES (8593, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 06:40:24', 0, 'ProductionRequisitionController.getDetail(..)', NULL, 'GET /apis/productionRequisition/getDetail', '{\"id\":9}', '{\"code\":200,\"data\":{\"requisition\":{\"confirmBy\":63,\"confirmTime\":1790242827000,\"createTime\":1789720317000,\"creator\":63,\"deleteFlag\":\"0\",\"depotId\":25,\"id\":9,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"1\"},\"rows\":[{\"deleteFlag\":\"0\",\"requisitionId\":9,\"materialExtendId\":125,\"unit\":\"件\",\"requiredQuantity\":10000.000000,\"depotId\":25,\"issuedQuantity\":10000.000000,\"name\":\"MD-4G111(VF) 包装\",\"id\":26,\"materialId\":705,\"materialSku\":\"\",\"barCode\":\"1001\"}]}}'); +INSERT INTO `tbl_log` VALUES (8594, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 06:40:33', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"status\\\":\\\"1\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8595, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 06:40:33', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"status\\\":\\\"2\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8596, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:40:44', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8597, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 06:40:44', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8598, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 06:40:44', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8599, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 06:40:44', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8600, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 06:40:44', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8601, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 06:40:44', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8602, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 06:40:44', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8603, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:41:11', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8604, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:41:11', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8605, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 06:41:11', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8606, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 06:41:11', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售,采购退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":167,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8607, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 06:41:11', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8608, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 06:41:11', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8609, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 06:41:11', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8610, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 06:41:31', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8611, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 06:41:31', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8612, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:41:31', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8613, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 06:41:31', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8614, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 06:41:31', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8615, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 06:41:31', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8616, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:41:31', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":41,\"rows\":[{\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718802000,\"creator\":63,\"debt\":595000.000000,\"defaultNumber\":\"SM2609180001\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discountLastMoney\":595000.000000,\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1721,\"lastDebt\":595000.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79\",\"number\":\"SM2609180001\",\"operTime\":1789733163000,\"operTimeStr\":\"2026-09-18 16:06:03\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"totalPrice\":595000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":183.600000,\"defaultNumber\":\"SM2608070007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1423,\"lastDebt\":183.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1836.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608070007\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":183.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":2077650.000000,\"defaultNumber\":\"SM2608070002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1422,\"lastDebt\":2077650.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":9500.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608070002\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":2077650.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2608060005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1421,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608060005\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":816.000000,\"defaultNumber\":\"SM2608060004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1420,\"lastDebt\":816.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":8160.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608060004\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784836800000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2607240005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1419,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607240005\",\"operTime\":1784836800000,\"operTimeStr\":\"2026-07-24 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":551124.000000,\"defaultNumber\":\"SM2607230004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1418,\"lastDebt\":551124.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230004\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":551124.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":1285956.000000,\"defaultNumber\":\"SM2607230002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1417,\"lastDebt\":1285956.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5880.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230002\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1285956.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":1020.000000,\"defaultNumber\":\"SM2607220006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1416,\"lastDebt\":1020.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":10200.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607220006\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":275562.000000,\"defaultNumber\":\"SM2607220004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1415,\"lastDebt\":275562.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607220004\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":275562.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8617, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 06:41:38', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":41,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784491200000,\"creator\":63,\"debt\":291600.000000,\"defaultNumber\":\"SM2607200002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":291600.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1414,\"lastDebt\":291600.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":600.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607200002\",\"operTime\":1784491200000,\"operTimeStr\":\"2026-07-20 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":291600.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784318400000,\"creator\":63,\"debt\":102060.000000,\"defaultNumber\":\"SM2607180014\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":102060.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1413,\"lastDebt\":102060.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":210.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607180014\",\"operTime\":1784318400000,\"operTimeStr\":\"2026-07-18 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":102060.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784318400000,\"creator\":63,\"debt\":1020600.000000,\"defaultNumber\":\"SM2607180013\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020600.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1412,\"lastDebt\":1020600.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2100.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607180013\",\"operTime\":1784318400000,\"operTimeStr\":\"2026-07-18 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020600.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784318400000,\"creator\":63,\"debt\":102060.000000,\"defaultNumber\":\"SM2607180010\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":102060.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1411,\"lastDebt\":102060.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":210.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607180010\",\"operTime\":1784318400000,\"operTimeStr\":\"2026-07-18 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":102060.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784318400000,\"creator\":63,\"debt\":102060.000000,\"defaultNumber\":\"SM2607180009\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":102060.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1410,\"lastDebt\":102060.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":210.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607180009\",\"operTime\":1784318400000,\"operTimeStr\":\"2026-07-18 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":102060.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784318400000,\"creator\":63,\"debt\":510300.000000,\"defaultNumber\":\"SM2607180007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":510300.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1409,\"lastDebt\":510300.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1050.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607180007\",\"operTime\":1784318400000,\"operTimeStr\":\"2026-07-18 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":510300.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784232000000,\"creator\":63,\"debt\":161935.200000,\"defaultNumber\":\"SM2607170005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":161935.200000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1408,\"lastDebt\":161935.200000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":336.000000,\"materialsList\":\"DTSD1226-CXVI(VA)\",\"number\":\"SM2607170005\",\"operTime\":1784232000000,\"operTimeStr\":\"2026-07-17 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":161935.200000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":385.200000,\"defaultNumber\":\"SM2607160006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":385.200000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1407,\"lastDebt\":385.200000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3852.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607160006\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":385.200000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":1457416.800000,\"defaultNumber\":\"SM2607160005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1457416.800000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1406,\"lastDebt\":1457416.800000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3024.000000,\"materialsList\":\"DTSD1226-CXVI(VA)\",\"number\":\"SM2607160005\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1457416.800000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784059200000,\"creator\":63,\"debt\":408240.000000,\"defaultNumber\":\"SM2607150003\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":408240.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1405,\"lastDebt\":408240.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":840.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607150003\",\"operTime\":1784059200000,\"operTimeStr\":\"2026-07-15 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":408240.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8618, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 06:41:43', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":41,\"rows\":[{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783972800000,\"creator\":63,\"debt\":510.000000,\"defaultNumber\":\"SM2607140013\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":510.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1404,\"lastDebt\":510.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5100.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607140013\",\"operTime\":1783972800000,\"operTimeStr\":\"2026-07-14 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":510.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783972800000,\"creator\":63,\"debt\":1224720.000000,\"defaultNumber\":\"SM2607140011\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1224720.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1403,\"lastDebt\":1224720.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607140011\",\"operTime\":1783972800000,\"operTimeStr\":\"2026-07-14 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1224720.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783972800000,\"creator\":63,\"debt\":816480.000000,\"defaultNumber\":\"SM2607140010\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816480.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1402,\"lastDebt\":816480.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1680.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607140010\",\"operTime\":1783972800000,\"operTimeStr\":\"2026-07-14 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816480.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783972800000,\"creator\":63,\"debt\":1619352.000000,\"defaultNumber\":\"SM2607140007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1619352.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1401,\"lastDebt\":1619352.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3360.000000,\"materialsList\":\"DTSD1226-CXVI(VA)\",\"number\":\"SM2607140007\",\"operTime\":1783972800000,\"operTimeStr\":\"2026-07-14 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1619352.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783886400000,\"creator\":63,\"debt\":306180.000000,\"defaultNumber\":\"SM2607130031\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":306180.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1400,\"lastDebt\":306180.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":630.000000,\"materialsList\":\"DTSD1226-T46(VC)\",\"number\":\"SM2607130031\",\"operTime\":1783886400000,\"operTimeStr\":\"2026-07-13 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":306180.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783886400000,\"creator\":63,\"debt\":56862.000000,\"defaultNumber\":\"SM2607130030\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":56862.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1399,\"lastDebt\":56862.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607130030\",\"operTime\":1783886400000,\"operTimeStr\":\"2026-07-13 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":56862.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783886400000,\"creator\":63,\"debt\":81.600000,\"defaultNumber\":\"SM2607130011\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":81.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1398,\"lastDebt\":81.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":816.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607130011\",\"operTime\":1783886400000,\"operTimeStr\":\"2026-07-13 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":81.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783886400000,\"creator\":63,\"debt\":81.600000,\"defaultNumber\":\"SM2607130009\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":81.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1397,\"lastDebt\":81.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":816.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607130009\",\"operTime\":1783886400000,\"operTimeStr\":\"2026-07-13 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":81.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783886400000,\"creator\":63,\"debt\":265.200000,\"defaultNumber\":\"SM2607130005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":265.200000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1396,\"lastDebt\":265.200000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2652.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607130005\",\"operTime\":1783886400000,\"operTimeStr\":\"2026-07-13 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":265.200000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1783886400000,\"creator\":63,\"debt\":408.800000,\"defaultNumber\":\"SM2607130004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":408.800000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1395,\"lastDebt\":408.800000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4088.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607130004\",\"operTime\":1783886400000,\"operTimeStr\":\"2026-07-13 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":408.800000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8619, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 06:41:50', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8620, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:41:50', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8621, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 06:41:50', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8622, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:41:50', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8623, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 06:41:50', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8624, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 06:41:50', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8625, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 06:41:50', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8626, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 06:41:50', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8627, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 06:41:50', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2107-14\",\"billTime\":1783281600000,\"billTimeStr\":\"2026-07-06 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":102,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2107-14\",\"sourceTime\":\"2026-06-06 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2102-11\",\"billTime\":1782763200000,\"billTimeStr\":\"2026-06-30 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":101,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2102\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2102-11\",\"sourceTime\":\"2026-05-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8628, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 06:41:50', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (8629, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:41:51', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8630, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 06:41:51', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8631, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 06:41:51', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8632, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 06:41:51', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8633, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 06:41:51', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"付款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":947751.900000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":104,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":947751.900000,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"billTime\":1785700800000,\"billTimeStr\":\"2026-08-03 00:00:00\",\"changeAmount\":954860.058400,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":100,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260415-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":954860.058400,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":236946.640000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":92,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260414-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":236946.640000,\"type\":\"付款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8634, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 06:41:51', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8635, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 06:41:51', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8636, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 06:41:51', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"vendor\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (8637, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:48:10', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8638, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 06:48:10', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8639, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 06:48:10', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8640, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 06:48:10', 0, 'SequenceController.buildNumber(..)', NULL, 'GET /apis/sequence/buildNumber', '{}', '{\"code\":200,\"data\":{\"defaultNumber\":\"00000001748\"}}'); +INSERT INTO `tbl_log` VALUES (8641, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 06:48:10', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8642, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 06:48:10', 0, 'SystemConfigController.fileSizeLimit(..)', NULL, 'GET /apis/systemConfig/fileSizeLimit', '{}', '{\"code\":200,\"data\":10485760}'); +INSERT INTO `tbl_log` VALUES (8643, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 06:48:10', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8644, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 06:48:10', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8645, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-09-30 06:48:11', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8646, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 06:48:11', 0, 'DepotHeadController.debtList(..)', NULL, 'GET /apis/depotHead/debtList', '{\"search\":\"{\\\"supplierType\\\":\\\"供应商\\\",\\\"billDirection\\\":\\\"\\\",\\\"hasDebt\\\":\\\"1\\\",\\\"beginTime\\\":\\\"1990-01-01\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购\\\"}\",\"currentPage\":1,\"pageSize\":10}', '{\"code\":200,\"data\":{\"total\":197,\"rows\":[{\"fileName\":\"\",\"totalPrice\":100000.000000,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 16:29:02\",\"deleteFlag\":\"0\",\"number\":\"CGRK00000001740\",\"payType\":\"现付\",\"accountIdList\":\"\",\"needDebt\":100000.000000,\"id\":1724,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"defaultNumber\":\"CGRK00000001740\",\"linkNumber\":\"CGDD00000001739\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"accountId\":17,\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":100000.000000,\"otherMoney\":0.000000,\"createTime\":1789720142000,\"deposit\":0,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"采购\",\"debt\":100000.000000,\"status\":\"1\"},{\"totalPrice\":595000.000000,\"discountLastMoney\":595000.000000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 16:06:03\",\"deleteFlag\":\"0\",\"number\":\"SM2609180001\",\"payType\":\"现付\",\"needDebt\":595000.000000,\"id\":1721,\"finishDebt\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"1PH WS79\",\"defaultNumber\":\"SM2609180001\",\"userName\":\"admin\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":595000.000000,\"otherMoney\":0.000000,\"createTime\":1789718802000,\"deposit\":0.000000,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"总部入库\",\"debt\":595000.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":0.700000,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 11:44:34\",\"deleteFlag\":\"0\",\"number\":\"CGRK00000001721\",\"payType\":\"现付\",\"accountIdList\":\"\",\"needDebt\":0.700000,\"id\":1717,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"defaultNumber\":\"CGRK00000001721\",\"linkNumber\":\"CGDD00000001720\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"accountId\":17,\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":0.700000,\"otherMoney\":0.000000,\"createTime\":1789717476000,\"deposit\":0,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"采购\",\"debt\":0.700000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":2077650.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-07 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608070002\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":2077650.000000,\"id\":1422,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-07\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2608070002\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":2077650.000000,\"otherMoney\":0.000000,\"createTime\":1786046400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":2077650.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":183.600000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-07 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608070007\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":183.600000,\"id\":1423,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-07\",\"creator\":63,\"materialsList\":\"MT-3NSXL(VC)\",\"defaultNumber\":\"SM2608070007\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":183.600000,\"otherMoney\":0.000000,\"createTime\":1786046400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":183.600000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":91854.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-06 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608060005\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":91854.000000,\"id\":1421,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-06\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2608060005\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":91854.000000,\"otherMoney\":0.000000,\"createTime\":1785960000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":91854.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":816.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-06 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608060004\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":816.000000,\"id\":1420,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-06\",\"creator\":63,\"materialsList\":\"MT-3NSXL(VC)\",\"defaultNumber\":\"SM2608060004\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":816.000000,\"otherMoney\":0.000000,\"createTime\":1785960000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":816.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":91854.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-24 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607240005\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":91854.000000,\"id\":1419,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-24\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607240005\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":91854.000000,\"otherMoney\":0.000000,\"createTime\":1784836800000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":91854.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":551124.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607230004\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":551124.000000,\"id\":1418,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607230004\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":551124.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":551124.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":1285956.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607230002\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":1285956.000000,\"id\":1417,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607230002\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":1285956.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":1285956.000000,\"status\":\"1\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8647, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:20:59', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8648, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:20:59', 0, 'DepotHeadController.debtList(..)', NULL, 'GET /apis/depotHead/debtList', '{\"search\":\"{\\\"supplierType\\\":\\\"供应商\\\",\\\"billDirection\\\":\\\"\\\",\\\"hasDebt\\\":\\\"1\\\",\\\"beginTime\\\":\\\"1990-01-01\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购\\\"}\",\"currentPage\":1,\"pageSize\":10}', '{\"code\":200,\"data\":{\"total\":197,\"rows\":[{\"fileName\":\"\",\"totalPrice\":100000.000000,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 16:29:02\",\"deleteFlag\":\"0\",\"number\":\"CGRK00000001740\",\"payType\":\"现付\",\"accountIdList\":\"\",\"needDebt\":100000.000000,\"id\":1724,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"defaultNumber\":\"CGRK00000001740\",\"linkNumber\":\"CGDD00000001739\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"accountId\":17,\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":100000.000000,\"otherMoney\":0.000000,\"createTime\":1789720142000,\"deposit\":0,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"采购\",\"debt\":100000.000000,\"status\":\"1\"},{\"totalPrice\":595000.000000,\"discountLastMoney\":595000.000000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 16:06:03\",\"deleteFlag\":\"0\",\"number\":\"SM2609180001\",\"payType\":\"现付\",\"needDebt\":595000.000000,\"id\":1721,\"finishDebt\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"1PH WS79\",\"defaultNumber\":\"SM2609180001\",\"userName\":\"admin\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":595000.000000,\"otherMoney\":0.000000,\"createTime\":1789718802000,\"deposit\":0.000000,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"总部入库\",\"debt\":595000.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":0.700000,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 11:44:34\",\"deleteFlag\":\"0\",\"number\":\"CGRK00000001721\",\"payType\":\"现付\",\"accountIdList\":\"\",\"needDebt\":0.700000,\"id\":1717,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"defaultNumber\":\"CGRK00000001721\",\"linkNumber\":\"CGDD00000001720\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"accountId\":17,\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":0.700000,\"otherMoney\":0.000000,\"createTime\":1789717476000,\"deposit\":0,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"采购\",\"debt\":0.700000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":2077650.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-07 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608070002\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":2077650.000000,\"id\":1422,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-07\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2608070002\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":2077650.000000,\"otherMoney\":0.000000,\"createTime\":1786046400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":2077650.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":183.600000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-07 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608070007\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":183.600000,\"id\":1423,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-07\",\"creator\":63,\"materialsList\":\"MT-3NSXL(VC)\",\"defaultNumber\":\"SM2608070007\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":183.600000,\"otherMoney\":0.000000,\"createTime\":1786046400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":183.600000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":91854.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-06 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608060005\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":91854.000000,\"id\":1421,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-06\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2608060005\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":91854.000000,\"otherMoney\":0.000000,\"createTime\":1785960000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":91854.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":816.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-06 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608060004\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":816.000000,\"id\":1420,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-06\",\"creator\":63,\"materialsList\":\"MT-3NSXL(VC)\",\"defaultNumber\":\"SM2608060004\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":816.000000,\"otherMoney\":0.000000,\"createTime\":1785960000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":816.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":91854.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-24 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607240005\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":91854.000000,\"id\":1419,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-24\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607240005\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":91854.000000,\"otherMoney\":0.000000,\"createTime\":1784836800000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":91854.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":551124.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607230004\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":551124.000000,\"id\":1418,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607230004\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":551124.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":551124.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":1285956.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607230002\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":1285956.000000,\"id\":1417,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607230002\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":1285956.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":1285956.000000,\"status\":\"1\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8649, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 07:21:04', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8650, NULL, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:21:11', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8651, NULL, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:21:11', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8652, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:21:12', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8653, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:21:12', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8654, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:21:12', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8655, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:21:12', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8656, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:21:12', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8657, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 07:21:18', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8658, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:21:18', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8659, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:21:19', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8660, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:22:11', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8661, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:22:11', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8662, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:22:11', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8663, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:22:11', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8664, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 07:22:11', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8665, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:22:11', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8666, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:22:11', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2107-14\",\"billTime\":1783281600000,\"billTimeStr\":\"2026-07-06 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":102,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2107-14\",\"sourceTime\":\"2026-06-06 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2102-11\",\"billTime\":1782763200000,\"billTimeStr\":\"2026-06-30 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":101,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2102\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2102-11\",\"sourceTime\":\"2026-05-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8667, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 07:22:11', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8668, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:22:11', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8669, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:22:11', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (8670, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:22:30', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8671, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:22:30', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8672, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:22:30', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8673, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:22:30', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8674, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:22:30', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8675, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:22:30', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8676, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:22:30', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"付款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":947751.900000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":104,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":947751.900000,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"billTime\":1785700800000,\"billTimeStr\":\"2026-08-03 00:00:00\",\"changeAmount\":954860.058400,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":100,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260415-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":954860.058400,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":236946.640000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":92,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260414-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":236946.640000,\"type\":\"付款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8677, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:22:31', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"vendor\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (8678, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 07:22:35', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-09-30\"}}'); +INSERT INTO `tbl_log` VALUES (8679, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:22:45', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8680, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 07:22:45', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8681, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 07:22:50', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8682, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:22:50', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (8683, NULL, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 07:23:00', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8684, NULL, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:23:00', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8685, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:23:00', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8686, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:23:00', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8687, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:23:01', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8688, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:23:01', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8689, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:23:01', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (8690, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:23:01', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8691, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 07:23:02', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-09-30\"}}'); +INSERT INTO `tbl_log` VALUES (8692, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:23:43', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607786\",\"assetName\":\"SIM卡 896019210381607786\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"11\",\"externalSource\":\"SIM\",\"id\":260,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070013;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.208.37 / KM08-LTE Modem / 21070013\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702562\",\"assetName\":\"SIM卡 896019210381702562\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"12\",\"externalSource\":\"SIM\",\"id\":259,\"keeper\":\"SMT\",\"location\":\"Loan to Hanif/Adha (22-May-2026); \",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.144.61\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607780\",\"assetName\":\"SIM卡 896019210381607780\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"14\",\"externalSource\":\"SIM\",\"id\":258,\"keeper\":\"SMT\",\"location\":\"POC AEON\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.208.37\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500577\",\"assetName\":\"SIM卡 896019190221500577\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"15\",\"externalSource\":\"SIM\",\"id\":257,\"keeper\":\"SMT\",\"location\":\"Kompleks Pertama\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.144.61\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607779\",\"assetName\":\"SIM卡 896019210381607779\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"13\",\"externalSource\":\"SIM\",\"id\":256,\"keeper\":\"SMT\",\"location\":\"POC AEON\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702569\",\"assetName\":\"SIM卡 896019210381702569\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"18\",\"externalSource\":\"SIM\",\"id\":255,\"keeper\":\"SMT\",\"location\":\"With Amir\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.200\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702570\",\"assetName\":\"SIM卡 896019210381702570\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"19\",\"externalSource\":\"SIM\",\"id\":254,\"keeper\":\"SMT\",\"location\":\"With Amir\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.214.141\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702571\",\"assetName\":\"SIM卡 896019210381702571\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"23\",\"externalSource\":\"SIM\",\"id\":253,\"keeper\":\"SMT\",\"location\":\"R&D room, SMT\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.9.45\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702568\",\"assetName\":\"SIM卡 896019210381702568\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"24\",\"externalSource\":\"SIM\",\"id\":252,\"keeper\":\"SMT\",\"location\":\"Molnlycke Health Care\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.214.217 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702567\",\"assetName\":\"SIM卡 896019210381702567\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"25\",\"externalSource\":\"SIM\",\"id\":251,\"keeper\":\"SMT\",\"location\":\"Molnlycke Health Care\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.143 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (8693, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:23:44', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702566\",\"assetName\":\"SIM卡 896019210381702566\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"26\",\"externalSource\":\"SIM\",\"id\":250,\"keeper\":\"SMT\",\"location\":\"GT3.1 (Nur)\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.123 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702565\",\"assetName\":\"SIM卡 896019210381702565\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"27\",\"externalSource\":\"SIM\",\"id\":249,\"keeper\":\"SMT\",\"location\":\"Menicon Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.136 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702564\",\"assetName\":\"SIM卡 896019210381702564\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"28\",\"externalSource\":\"SIM\",\"id\":248,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.10.11 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702563\",\"assetName\":\"SIM卡 896019210381702563\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"29\",\"externalSource\":\"SIM\",\"id\":247,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.141 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-2\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SOFTWARE\",\"id\":246,\"originalValue\":8700.000000,\"purchaseDate\":1694980800000,\"quantity\":15.000000,\"remark\":\"供应商: Amimo;发票号: INV230902\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-3\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SOFTWARE\",\"id\":245,\"originalValue\":1160.000000,\"purchaseDate\":1704916800000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-4\",\"assetName\":\"MS Office 2019 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SOFTWARE\",\"id\":244,\"originalValue\":0.000000,\"purchaseDate\":1727380800000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-5\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SOFTWARE\",\"id\":243,\"originalValue\":580.000000,\"purchaseDate\":1712088000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240402\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-6\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SOFTWARE\",\"id\":242,\"originalValue\":2320.000000,\"purchaseDate\":1736798400000,\"quantity\":4.000000,\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-7\",\"assetName\":\"MS Office 2021 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SOFTWARE\",\"id\":241,\"originalValue\":750.000000,\"purchaseDate\":1707768000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240201\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (8694, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 07:23:46', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-8\",\"assetName\":\"MS Office 2021 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SOFTWARE\",\"id\":240,\"originalValue\":0.000000,\"purchaseDate\":1712088000000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240401;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-9\",\"assetName\":\"MS Office 2021 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SOFTWARE\",\"id\":239,\"originalValue\":0.000000,\"purchaseDate\":1718913600000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240601;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"HR\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-10\",\"assetName\":\"MS Office Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SOFTWARE\",\"id\":238,\"originalValue\":0.000000,\"purchaseDate\":1768939200000,\"quantity\":10.000000,\"remark\":\"供应商: Amimo;许可证: Smt@123;发票号: INV260101;原备注: Bundled with 10 unit of PC purchase for Lab.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-11\",\"assetName\":\"MS Office Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"11\",\"externalSource\":\"SOFTWARE\",\"id\":237,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;原备注: Bundled with 1 unit of Laptop\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"Tech & Technology\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-12\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"12\",\"externalSource\":\"SOFTWARE\",\"id\":236,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: BX27V-J9QMG-3VVWY-7JTYT-94CXB\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-13\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"13\",\"externalSource\":\"SOFTWARE\",\"id\":235,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: GTTC2-XH8PW-3WJFH-76VFQ-PHYX9\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-14\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"14\",\"externalSource\":\"SOFTWARE\",\"id\":234,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: WY8KV-GQ39X-2WQF2-V8R93-RY6CT\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-15\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"15\",\"externalSource\":\"SOFTWARE\",\"id\":233,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: YBDDT-C4QPP-J6T63-DQMB8-9XB29;原备注: Written: Burnny / Asus\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-16\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"16\",\"externalSource\":\"SOFTWARE\",\"id\":232,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: XG2WV-YRDV4-VQWQ2-XQQ26-XJ3FF;原备注: Written: SGH109RCWK\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-1\",\"assetName\":\"Linux 6.8.0-45\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SOFTWARE\",\"id\":231,\"originalValue\":0.000000,\"purchaseDate\":1728849600000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240902;原备注: For server\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (8695, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:23:50', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8696, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:24:04', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-383\",\"assetName\":\"Epson Epson LQ-310\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"383\",\"externalSource\":\"HARDWARE\",\"id\":20,\"keeper\":\"Hab\",\"location\":\"Admin Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: R9DY417590\",\"source\":\"SAS\",\"specification\":\"Printer / Epson / Epson LQ-310\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Ad\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-384\",\"assetName\":\"H3C H3C UniServer R3950 G6\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"384\",\"externalSource\":\"HARDWARE\",\"id\":19,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 210235A4V0H259000004\",\"source\":\"SAS\",\"specification\":\"Server / H3C / H3C UniServer R3950 G6\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-385\",\"assetName\":\"TP-Link Omada SG3452\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"385\",\"externalSource\":\"HARDWARE\",\"id\":18,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 225B0AN000371;MAC: 6C-4C-BC-C9-F0-8A\",\"source\":\"SAS\",\"specification\":\"Switch / TP-Link / Omada SG3452\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-387\",\"assetName\":\"HP HP LaserJet MFP M236sdw\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"387\",\"externalSource\":\"HARDWARE\",\"id\":17,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: VNP5F19044\",\"source\":\"SAS\",\"specification\":\"Printer / HP / HP LaserJet MFP M236sdw\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Prod\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-389\",\"assetName\":\"Lenovo ThinkPad T14s 2-in-1\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"389\",\"externalSource\":\"HARDWARE\",\"id\":16,\"keeper\":\"Syed Bakri\",\"location\":\"Admin\",\"originalValue\":0.000000,\"purchaseDate\":1787169600000,\"quantity\":1.000000,\"remark\":\"序列号: PF6EN008\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad T14s 2-in-1 / Win 11 Home / Core Ultra 5 / 16G / 500G SSD\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"GM\"}]}}'); +INSERT INTO `tbl_log` VALUES (8697, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:24:14', 0, 'AssetController.options()', NULL, 'GET /apis/asset/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"creator\":63,\"assetCode\":\"SIM-896019200694297052\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"UITM Dungun\",\"externalId\":\"6\",\"originalValue\":0.000000,\"specification\":\"183.171.146.98\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019200694297052\",\"location\":\"SMT (???)\",\"id\":270,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2020-12-16\",\"assetCode\":\"SIM-896019190221500578\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"5\",\"originalValue\":0.000000,\"specification\":\"183.171.14.125\",\"remark\":\"启用日期: 2020-12-16\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500578\",\"location\":\"UITM Dungun\",\"id\":269,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2020-12-16\",\"assetCode\":\"SIM-896019190221500576\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"1\",\"originalValue\":0.000000,\"specification\":\"183.171.144.65\",\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500576\",\"location\":\"Genting\",\"id\":268,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-22\",\"assetCode\":\"SIM-896019210381607778\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"2\",\"originalValue\":0.000000,\"specification\":\"183.171.15.60\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607778\",\"location\":\"Genting\",\"id\":267,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-22\",\"assetCode\":\"SIM-896019210381607781\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"9\",\"originalValue\":0.000000,\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607781\",\"location\":\"SMT (RnD) Modem RnD\",\"id\":266,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-15\",\"assetCode\":\"SIM-896019210381607777\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"3\",\"originalValue\":0.000000,\"specification\":\"183.171.40.182\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607777\",\"location\":\"Genting\",\"id\":265,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-15\",\"assetCode\":\"SIM-896019210381607782\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"4\",\"originalValue\":0.000000,\"specification\":\"183.171.40.117\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607782\",\"location\":\"Genting\",\"id\":264,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-29\",\"assetCode\":\"SIM-896019210381607784\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"7\",\"originalValue\":0.000000,\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607784\",\"location\":\"SMT (Modem-Production)\",\"id\":263,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-29\",\"assetCode\":\"SIM-896019210381607783\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"8\",\"originalValue\":0.000000,\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607783\",\"location\":\"SMT (RnD) Modem Store\",\"id\":262,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607785\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"10\",\"originalValue\":0.000000,\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607785\",\"location\":\"SMT (RnD) Alyaa\",\"id\":261,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607786\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"11\",\"originalValue\":0.000000,\"specification\":\"183.171.208.37 / KM08-LTE Modem / 21070013\",\"remark\":\"设备序列号: 21070013;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607786\",\"location\":\"SMT (RnD) Alyaa\",\"id\":260,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381702562\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"12\",\"originalValue\":0.000000,\"specification\":\"183.171.144.61\",\"remark\":\"启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702562\",\"location\":\"Loan to Hanif/Adha (22-May-2026); \",\"id\":259,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607780\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"14\",\"originalValue\":0.000000,\"specification\":\"183.171.208.37\",\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607780\",\"location\":\"POC AEON\",\"id\":258,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019190221500577\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"15\",\"originalValue\":0.000000,\"specification\":\"183.171.144.61\",\"remark\":\"启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500577\",\"location\":\"Kompleks Pertama\",\"id\":257,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607779\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"13\",\"originalValue\":0.000000,\"specification\":\"183.171.151.171\",\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607779\",\"location\":\"POC AEON\",\"id\":256,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702569\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"18\",\"originalValue\":0.000000,\"specification\":\"183.171.11.200\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702569\",\"location\":\"With Amir\",\"id\":255,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702570\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"19\",\"originalValue\":0.000000,\"specification\":\"183.171.214.141\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702570\",\"location\":\"With Amir\",\"id\":254,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702571\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"23\",\"originalValue\":0.000000,\"specification\":\"183.171.9.45\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702571\",\"location\":\"R&D room, SMT\",\"id\":253,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702568\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"24\",\"originalValue\":0.000000,\"specification\":\"183.171.214.217 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702568\",\"location\":\"Molnlycke Health Care\",\"id\":252,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702567\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"25\",\"originalValue\":0.000000,\"specification\":\"183.171.12.143 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702567\",\"location\":\"Molnlycke Health Care\",\"id\":251,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702566\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"26\",\"originalValue\":0.000000,\"specification\":\"183.171.11.123 / Lora Gateway\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702566\",\"location\":\"GT3.1 (Nur)\",\"id\":250,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702565\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"27\",\"originalValue\":0.000000,\"specification\":\"183.171.12.136 / Lora Gateway\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702565\",\"location\":\"Menicon Malaysia\",\"id\":249,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702564\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"28\",\"originalValue\":0.000000,\"specification\":\"183.171.10.11 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702564\",\"location\":\"First Solar Malaysia\",\"id\":248,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702563\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"29\",\"originalValue\":0.000000,\"specification\":\"183.171.11.141 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702563\",\"location\":\"First Solar Malaysia\",\"id\":247,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2023-09-18\",\"assetCode\":\"SAS-SW-2\",\"quantity\":15.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"2\",\"originalValue\":8700.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV230902\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Home & Business\",\"id\":246,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-01-11\",\"assetCode\":\"SAS-SW-3\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"3\",\"originalValue\":1160.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240101\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Home & Business\",\"id\":245,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-27\",\"assetCode\":\"SAS-SW-4\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"4\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro\",\"id\":244,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-03\",\"assetCode\":\"SAS-SW-5\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"5\",\"originalValue\":580.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240402\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro Plus\",\"id\":243,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-01-14\",\"assetCode\":\"SAS-SW-6\",\"quantity\":4.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"6\",\"originalValue\":2320.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro Plus\",\"id\":242,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-02-13\",\"assetCode\":\"SAS-SW-7\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"7\",\"originalValue\":750.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240201\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Home & Business\",\"id\":241,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-03\",\"assetCode\":\"SAS-SW-8\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"8\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240401;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Pro\",\"id\":240,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-06-21\",\"assetCode\":\"SAS-SW-9\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"9\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240601;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"HR\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Pro\",\"id\":239,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-01-21\",\"assetCode\":\"SAS-SW-10\",\"quantity\":10.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"10\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;许可证: Smt@123;发票号: INV260101;原备注: Bundled with 10 unit of PC purchase for Lab.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"Laboratory\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business\",\"id\":238,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-11\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"11\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;原备注: Bundled with 1 unit of Laptop\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"Tech & Technology\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business\",\"id\":237,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-12\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"12\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: BX27V-J9QMG-3VVWY-7JTYT-94CXB\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":236,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-13\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"13\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: GTTC2-XH8PW-3WJFH-76VFQ-PHYX9\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":235,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-14\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"14\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: WY8KV-GQ39X-2WQF2-V8R93-RY6CT\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":234,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-15\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"15\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: YBDDT-C4QPP-J6T63-DQMB8-9XB29;原备注: Written: Burnny / Asus\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":233,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-16\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"16\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: XG2WV-YRDV4-VQWQ2-XQQ26-XJ3FF;原备注: Written: SGH109RCWK\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":232,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-10-14\",\"assetCode\":\"SAS-SW-1\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"1\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240902;原备注: For server\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"Linux 6.8.0-45\",\"id\":231,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-10-14\",\"assetCode\":\"SAS-SW-33\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"33\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Ami...[已截断]'); +INSERT INTO `tbl_log` VALUES (8698, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 07:24:19', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8699, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:24:19', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8700, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:24:22', 0, 'AssetInventoryController.details(..)', NULL, 'GET /apis/assetInventory/details', '{\"inventoryId\":1,\"keyword\":\"\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线 A 工位\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":2,\"imageGroupId\":\"01f08d9e8b2c43cfa2fb59a67ac6a954\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/图片1_1789973064775.png\"],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"Panasonic NPM-D3A\",\"targetCode\":\"SMT-L01-MOUNTER-A\",\"targetId\":2,\"targetName\":\"高速模块贴片机 A\",\"targetType\":\"DEVICE\",\"updateTime\":1789987464000},{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线 B 工位\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":3,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"Panasonic NPM-W2S\",\"targetCode\":\"SMT-L01-MOUNTER-B\",\"targetId\":3,\"targetName\":\"多功能贴片机 B\",\"targetType\":\"DEVICE\",\"updateTime\":1789722750000},{\"actualLocation\":\"一车间 印刷检测区-A区\",\"actualQuantity\":1.000000,\"bookDepartment\":\"品质部\",\"bookLocation\":\"一车间 印刷检测区\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":1,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1789986951000,\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"model\":\"KY8030-3\",\"remark\":\"111\",\"targetCode\":\"QC-SPI-01\",\"targetId\":6,\"targetName\":\"在线 3D SPI\",\"targetType\":\"DEVICE\",\"updateTime\":1789986959000}]}}'); +INSERT INTO `tbl_log` VALUES (8701, NULL, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:24:23', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/%E5%9B%BE%E7%89%871_1789973064775.png', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8702, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:24:40', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8703, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:24:42', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8704, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 07:24:42', 0, 'MaterialController.getList(..)', NULL, 'GET /apis/material/list', '{\"search\":\"{\\\"materialParam\\\":\\\"\\\",\\\"standard\\\":\\\"\\\",\\\"model\\\":\\\"\\\",\\\"color\\\":\\\"\\\",\\\"brand\\\":\\\"\\\",\\\"mfrs\\\":\\\"\\\",\\\"otherField1\\\":\\\"\\\",\\\"otherField2\\\":\\\"\\\",\\\"otherField3\\\":\\\"\\\",\\\"weight\\\":\\\"\\\",\\\"expiryNum\\\":\\\"\\\",\\\"position\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":24,\"rows\":[{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"commodityDecimal\":200.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":706,\"imgName\":\"\",\"initialStock\":0,\"lowDecimal\":200.000000,\"mBarCode\":\"1002\",\"materialOther\":\"\",\"mfrs\":\"SMT\",\"mnemonic\":\"MD-4G111(VF) 4G\",\"model\":\"MD-4G111(VF) 4G\",\"name\":\"MD-4G111(VF) 4G\",\"purchaseDecimal\":100.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) 4G\",\"stock\":0,\"unit\":\"只\",\"wholesaleDecimal\":200.000000},{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":34,\"categoryName\":\"包装\",\"commodityDecimal\":10.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":705,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":10.000000,\"mBarCode\":\"1001\",\"materialOther\":\"\",\"mnemonic\":\"MD-4G111(VF) bz\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 包装\",\"purchaseDecimal\":10.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"stock\":0.000000,\"unit\":\"件\",\"wholesaleDecimal\":10.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":340.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":340.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"remark\":\"Excel初始化;条码:3PH-APEC3-WC\",\"standard\":\"3PH APEC3-WC\",\"stock\":7223.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":340.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":73.500000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":73.500000,\"mBarCode\":\"1PH-WS79\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"remark\":\"Excel初始化;条码:1PH-WS79\",\"standard\":\"1PH WS79\",\"stock\":52400.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":73.500000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":24.300000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":24.300000,\"mBarCode\":\"C.4.T.0.00722\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"remark\":\"Excel初始化;条码:C.4.T.0.00722\",\"standard\":\"MD-RS178(VA)\",\"stock\":1000.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":24.300000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":142.560000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":142.560000,\"mBarCode\":\"C.4.T.0.0068900002\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"remark\":\"Excel初始化;条码:C.4.T.0.0068900002\",\"standard\":\"MD-RS114(VB)\",\"stock\":100.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":142.560000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":132.840000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":132.840000,\"mBarCode\":\"C.4.T.0.00686\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"remark\":\"Excel初始化;条码:C.4.T.0.00686\",\"standard\":\"TC160(VA)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":132.840000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":0.100000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":0.100000,\"mBarCode\":\"C.4.T.0.00654\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"remark\":\"Excel初始化;条码:C.4.T.0.00654\",\"standard\":\"MD-4G111(VF)\",\"stock\":76970.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":0.100000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":324.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":324.000000,\"mBarCode\":\"C.4.T.0.00562\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"remark\":\"Excel初始化;条码:C.4.T.0.00562\",\"standard\":\"MD-4GVIII(VB)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":324.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":129.600000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":129.600000,\"mBarCode\":\"C.4.T.0.00553\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"remark\":\"Excel初始化;条码:C.4.T.0.00553\",\"standard\":\"MT-P109(VA)\",\"stock\":500.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":129.600000}]}}'); +INSERT INTO `tbl_log` VALUES (8705, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:24:44', 0, 'UnitController.getList(..)', NULL, 'GET /apis/unit/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"basicUnit\":\"瓶\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"瓶/(箱=12瓶)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63},{\"basicUnit\":\"盒\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":20,\"name\":\"盒/(箱=8盒)\",\"otherUnit\":\"箱\",\"ratio\":8.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":19,\"name\":\"个/(盒=15个)\",\"otherUnit\":\"盒\",\"ratio\":15.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":15,\"name\":\"个/(箱=12个)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8706, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:24:45', 0, 'MaterialAttributeController.getList(..)', NULL, 'GET /apis/materialAttribute/list', '{\"search\":\"{\\\"attributeName\\\":\\\"\\\",\\\"attributeValue\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"attributeName\":\"自定义3\",\"deleteFlag\":\"0\",\"id\":5,\"tenantId\":63},{\"attributeName\":\"自定义2\",\"deleteFlag\":\"0\",\"id\":4,\"tenantId\":63},{\"attributeName\":\"自定义1\",\"attributeValue\":\"小米|华为\",\"deleteFlag\":\"0\",\"id\":3,\"tenantId\":63},{\"attributeName\":\"多尺寸\",\"attributeValue\":\"S|M|L|XL|XXL|XXXL\",\"deleteFlag\":\"0\",\"id\":2,\"tenantId\":63},{\"attributeName\":\"多颜色\",\"attributeValue\":\"红色|橙色|黄色|绿色|蓝色|紫色\",\"deleteFlag\":\"0\",\"id\":1,\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8707, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:25:38', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/031PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"221\",\"externalSource\":\"HARDWARE\",\"id\":60,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU020\",\"assetName\":\"HP HP Pro 3330 MT\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"220\",\"externalSource\":\"HARDWARE\",\"id\":59,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: SGH221S6SH;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / HP Pro 3330 MT / Win 10 Pro / Core i7-2600 / 8G / 220G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/030PC\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"219\",\"externalSource\":\"HARDWARE\",\"id\":58,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDPN;用途: Testing / Lab;原备注: Windows License Key : QRWJ7-2N8MF-TM9WY-HKB42-VFR9C\\n\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"218\",\"externalSource\":\"HARDWARE\",\"id\":57,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMSP;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"217\",\"externalSource\":\"HARDWARE\",\"id\":56,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP19/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"216\",\"externalSource\":\"HARDWARE\",\"id\":55,\"keeper\":\"Hasmah\",\"location\":\"Not Specified\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified;原备注: RETURN TO SUPPLIER DUE THE PROBLEM\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"REPAIR\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP18/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"215\",\"externalSource\":\"HARDWARE\",\"id\":54,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP17/11112024\",\"assetName\":\"HP Pro Book 440\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"214\",\"externalSource\":\"HARDWARE\",\"id\":53,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Pro Book 440\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP16/11112024\",\"assetName\":\"HP Radeon Intel Core i5\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"213\",\"externalSource\":\"HARDWARE\",\"id\":52,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Radeon Intel Core i5\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-212\",\"assetName\":\"HP All-in-One 24-dp0209d\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"212\",\"externalSource\":\"HARDWARE\",\"id\":51,\"keeper\":\"Hasmah\",\"location\":\"HR Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8CC10109F6\",\"source\":\"SAS\",\"specification\":\"All-In-One / HP / All-in-One 24-dp0209d / Win 10 Home / AMD Ryzen 5 4500U / 24G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"}]}}'); +INSERT INTO `tbl_log` VALUES (8708, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:25:40', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8709, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:25:50', 0, 'AssetInventoryController.details(..)', NULL, 'GET /apis/assetInventory/details', '{\"inventoryId\":6,\"keyword\":\"\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"actualDepartment\":\"品质部\",\"actualLocation\":\"一车间 AOI 检测区\",\"actualQuantity\":1.000000,\"bookDepartment\":\"品质部\",\"bookLocation\":\"一车间 AOI 检测区\",\"bookQuantity\":1.000000,\"createTime\":1790003320000,\"id\":16,\"imageUrls\":[],\"inventoryId\":6,\"inventoryStatus\":\"NORMAL\",\"inventoryTime\":1790003830000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"Zenith 2\",\"remark\":\"111\",\"targetCode\":\"QC-AOI-01\",\"targetId\":5,\"targetName\":\"在线 3D AOI\",\"targetType\":\"DEVICE\",\"updateTime\":1790003830000}]}}'); +INSERT INTO `tbl_log` VALUES (8710, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:25:53', 0, 'AssetInventoryController.details(..)', NULL, 'GET /apis/assetInventory/details', '{\"inventoryId\":4,\"keyword\":\"\"}', '{\"code\":200,\"data\":{\"total\":8,\"rows\":[{\"actualLocation\":\"数据中心 A03 机柜\",\"actualQuantity\":1.000000,\"bookDepartment\":\"信息技术部\",\"bookLocation\":\"数据中心 A03 机柜\",\"bookQuantity\":1.000000,\"createTime\":1789995983000,\"id\":8,\"imageGroupId\":\"5db8ca7a79a445b88645dd39d97e2e67\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988298359.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_170b6de4_1789988298363.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988341617.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_170b6de4_1789988341621.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988394098.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_170b6de4_1789988394100.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988417997.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_170b6de4_1789988418007.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988423446.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_170b6de4_1789988423447.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988439784.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_170b6de4_1789988439785.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988449196.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_170b6de4_1789988449198.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988475342.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185724_170b6de4_1789988475344.jpg\"],\"inventoryId\":4,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1790002645000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"Dell PowerEdge R760\",\"remark\":\"简直一模一样的\",\"targetCode\":\"FA-IT-2025-006\",\"targetId\":6,\"targetName\":\"MES 数据库服务器\",\"targetType\":\"ASSET\",\"updateTime\":1790002873000},{\"actualLocation\":\"一车间 AOI 检测区\",\"actualQuantity\":1.000000,\"bookDepartment\":\"品质部\",\"bookLocation\":\"一车间 AOI 检测区\",\"bookQuantity\":1.000000,\"createTime\":1789995983000,\"id\":11,\"imageGroupId\":\"97e05ba483eb41a9a3f33796682f6d46\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/20260921_185751_e989e463_1789988309407.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_8247956e_1789988309411.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_e989e463_1789988351115.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_8247956e_1789988351118.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_e989e463_1789988404437.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_8247956e_1789988404438.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_e989e463_1789988430620.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_8247956e_1789988430622.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_e989e463_1789988440631.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_8247956e_1789988440633.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_e989e463_1789988449840.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_8247956e_1789988449841.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_e989e463_1789988483971.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185751_8247956e_1789988483974.jpg\"],\"inventoryId\":4,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1790002672000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"Koh Young Zenith 2\",\"remark\":\"补补团出来了?那就算了\",\"targetCode\":\"FA-QC-2024-003\",\"targetId\":3,\"targetName\":\"在线 3D AOI 检测系统\",\"targetType\":\"ASSET\",\"updateTime\":1790002873000},{\"actualLocation\":\"一车间 印刷检测区\",\"actualQuantity\":1.000000,\"bookDepartment\":\"品质部\",\"bookLocation\":\"一车间 印刷检测区\",\"bookQuantity\":1.000000,\"createTime\":1789995983000,\"id\":10,\"imageGroupId\":\"6ff9119f63b64993845a9c067467e5da\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/20260921_185807_e5ff915e_1789988310159.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_85b6a9b5_1789988310162.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_e5ff915e_1789988352623.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_85b6a9b5_1789988352626.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_e5ff915e_1789988406177.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_85b6a9b5_1789988406180.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_e5ff915e_1789988431663.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_85b6a9b5_1789988431666.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_e5ff915e_1789988442110.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_85b6a9b5_1789988442112.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_e5ff915e_1789988451305.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_85b6a9b5_1789988451307.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_e5ff915e_1789988484616.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185807_85b6a9b5_1789988484618.jpg\"],\"inventoryId\":4,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1790002687000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"Koh Young KY8030-3\",\"remark\":\"踏步踏步谢谢你\",\"targetCode\":\"FA-QC-2024-004\",\"targetId\":4,\"targetName\":\"在线 3D SPI 检测系统\",\"targetType\":\"ASSET\",\"updateTime\":1790002873000},{\"actualLocation\":\"一车间 SMT-01 线\",\"actualQuantity\":1.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线\",\"bookQuantity\":1.000000,\"createTime\":1789995983000,\"id\":13,\"imageGroupId\":\"edd28c5442e84cf59a6e1e3d73be44c1\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/20260921_190114_943b06d2_1789988485988.jpg\"],\"inventoryId\":4,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1790002875000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"Panasonic NPM-D3A 双轨配置\",\"remark\":\"吧监控OK了\",\"targetCode\":\"FA-SMT-2024-001\",\"targetId\":1,\"targetName\":\"SMT 高速贴片生产线\",\"targetType\":\"ASSET\",\"updateTime\":1790002885000},{\"actualLocation\":\"一车间 SMT-01 线\",\"actualQuantity\":1.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线\",\"bookQuantity\":1.000000,\"createTime\":1789995983000,\"id\":12,\"imageGroupId\":\"93b35db7703f4e3e86d44b27f35f2a58\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988308337.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_16e3ae77_1789988308359.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988350408.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_16e3ae77_1789988350421.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988403600.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_16e3ae77_1789988403613.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988429712.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_16e3ae77_1789988429724.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988435876.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_16e3ae77_1789988435886.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988448505.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_16e3ae77_1789988448516.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988457433.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_16e3ae77_1789988457445.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988483284.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185735_16e3ae77_1789988483294.jpg\"],\"inventoryId\":4,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1790002655000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"HELLER 1936MK7\",\"remark\":\"不啊图天冷加衣\",\"targetCode\":\"FA-SMT-2024-002\",\"targetId\":2,\"targetName\":\"十温区氮气回流焊系统\",\"targetType\":\"ASSET\",\"updateTime\":1790002873000},{\"actualLocation\":\"一车间 钢网房\",\"actualQuantity\":1.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 钢网房\",\"bookQuantity\":1.000000,\"createTime\":1789995983000,\"id\":6,\"imageGroupId\":\"bafb696ee03b4daab4c00a5183d9f8ca\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988297758.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988341036.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988393529.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988417419.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988422324.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988439407.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988448947.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988474767.jpg\"],\"inventoryId\":4,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1790002598000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"SAWA SC-A1000\",\"remark\":\"来看看你们这些\",\"targetCode\":\"FA-TOOL-2025-008\",\"targetId\":8,\"targetName\":\"全自动钢网清洗机\",\"targetType\":\"ASSET\",\"updateTime\":1790002873000},{\"actualLocation\":\"动力站 1 号机位\",\"actualQuantity\":1.000000,\"bookDepartment\":\"设备动力部\",\"bookLocation\":\"动力站 1 号机位\",\"bookQuantity\":1.000000,\"createTime\":1789995983000,\"id\":9,\"imageGroupId\":\"b0212c0127ec4c7583a507552720ea27\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/20260921_190106_a0384808_1789988485420.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_190106_b0fa45d8_1789988485421.jpg\"],\"inventoryId\":4,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1790002866000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"Atlas Copco GA22 VSD+\",\"remark\":\"连卡佛哦哦哦\",\"targetCode\":\"FA-UTIL-2023-005\",\"targetId\":5,\"targetName\":\"螺杆式空气压缩机\",\"targetType\":\"ASSET\",\"updateTime\":1790002885000},{\"actualLocation\":\"原材料仓充电区\",\"actualQuantity\":1.000000,\"bookDepartment\":\"仓储物流部\",\"bookLocation\":\"原材料仓充电区\",\"bookQuantity\":1.000000,\"createTime\":1789995983000,\"id\":7,\"imageGroupId\":\"fe02f5769bdf4dc0b5726aac93bb730b\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988297310.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988340622.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988392678.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988417028.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988421508.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988438145.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988438901.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988439198.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988448400.jpg\",\"/apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988474375.jpg\"],\"inventoryId\":4,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1790002559000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"Toyota 8FBE20\",\"remark\":\"有空聚聚看看\",\"targetCode\":\"FA-WH-2024-007\",\"targetId\":7,\"targetName\":\"电动平衡重式叉车\",\"targetType\":\"ASSET\",\"updateTime\":1790002873000}]}}'); +INSERT INTO `tbl_log` VALUES (8711, NULL, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:25:54', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185724_3db4823f_1789988298359.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8712, NULL, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:25:54', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_190114_943b06d2_1789988485988.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8713, NULL, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:25:54', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988297310.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8714, NULL, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:25:54', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185638_3ded6754_1789988297758.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8715, NULL, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:25:54', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185735_77ed497d_1789988308337.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8716, NULL, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:25:54', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_190106_a0384808_1789988485420.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8717, NULL, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:25:54', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185751_e989e463_1789988309407.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8718, NULL, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:25:54', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185807_e5ff915e_1789988310159.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8719, NULL, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988421508.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8720, NULL, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988417028.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8721, NULL, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988340622.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8722, NULL, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988438145.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8723, NULL, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988438901.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8724, NULL, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988439198.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8725, NULL, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988448400.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8726, NULL, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988392678.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8727, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:25:57', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/20260921_185558_5107047d_1789988474375.jpg', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8728, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:26:19', 0, 'AccountController.getStatistics(..)', NULL, 'GET /apis/account/getStatistics', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"allCurrentAmount\":\"4375818.53\",\"allMonthAmount\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8729, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 07:26:19', 0, 'AccountController.listWithBalance(..)', NULL, 'GET /apis/account/listWithBalance', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8730, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:26:20', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (8731, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:26:20', 0, 'DepotItemController.retailOut(..)', NULL, 'GET /apis/depotItem/retailOut', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"realityPriceTotal\":0.000000,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8732, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:26:20', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8733, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:26:20', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8734, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:26:20', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8735, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:21', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8736, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:26:21', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8737, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:26:21', 0, 'DepotItemController.buyIn(..)', NULL, 'GET /apis/depotItem/buyIn', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":2,\"realityPriceTotal\":100000.700000,\"rows\":[{\"materialModel\":\"MD-4G111(VF)\",\"materialStandard\":\"MD-4G111(VF) packing\",\"materialUnit\":\"件\",\"outSum\":0.000000,\"barCode\":\"1001\",\"materialName\":\"MD-4G111(VF) 包装\",\"inOutSumPrice\":100000.000000,\"outSumPrice\":0.000000,\"inSum\":10000.000000,\"inSumPrice\":100000.000000},{\"otherField1\":\"\",\"materialMfrs\":\"浙江瑞银电子有限公司\",\"materialModel\":\"MD-4G111(VF)\",\"materialStandard\":\"MD-4G111(VF)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"materialUnit\":\"件\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00654\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"inOutSumPrice\":0.700000,\"outSumPrice\":0.000000,\"inSum\":7.000000,\"inSumPrice\":0.700000}]}}'); +INSERT INTO `tbl_log` VALUES (8738, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:26:21', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8739, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:26:21', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8740, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:23', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8741, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:26:23', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8742, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:26:23', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8743, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:26:23', 0, 'DepotItemController.saleOut(..)', NULL, 'GET /apis/depotItem/saleOut', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":1,\"realityPriceTotal\":4116000.000000,\"rows\":[{\"outInSumPrice\":4116000.000000,\"otherField1\":\"\",\"materialMfrs\":\"浙江瑞银电子有限公司\",\"materialModel\":\"1PH WS79\",\"materialStandard\":\"1PH WS79\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"materialUnit\":\"件\",\"outSum\":56000.000000,\"barCode\":\"1PH-WS79\",\"materialName\":\"1PH WS79\",\"outSumPrice\":4116000.000000,\"inSum\":0.000000,\"inSumPrice\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (8744, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:26:23', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8745, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:24', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8746, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:26:24', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8747, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:26:24', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8748, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 07:26:24', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8749, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-30 07:26:24', 0, 'DepotHeadController.findInOutDetail(..)', NULL, 'GET /apis/depotHead/findInOutDetail', '{\"currentPage\":1,\"pageSize\":10,\"number\":\"\",\"materialParam\":\"\",\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"type\":\"入库\",\"remark\":\"\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":43,\"operNumberTotal\":133359.000000,\"rows\":[{\"allPrice\":100000.000000,\"barCode\":\"1001\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mname\":\"MD-4G111(VF) 包装\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MD-4G111(VF) packing\",\"taxLastMoney\":100000.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":10.000000},{\"allPrice\":595000.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"\",\"newType\":\"总部入库入库\",\"number\":\"SM2609180001\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"1PH WS79\",\"taxLastMoney\":595000.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":59.500000},{\"allPrice\":0.700000,\"barCode\":\"C.4.T.0.00654\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MD-4G111(VF) 4G模块\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operNumber\":7.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MD-4G111(VF)\",\"taxLastMoney\":0.700000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":183.600000,\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MT-3NSXL(VC)RF通讯模块\",\"model\":\"MT-3NSXL(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060003\",\"newType\":\"总部入库入库\",\"number\":\"SM2608070007\",\"operNumber\":1836.000000,\"operTime\":\"2026-08-07\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MT-3NSXL(VC)\",\"taxLastMoney\":183.600000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":2077650.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060001\",\"newType\":\"总部入库入库\",\"number\":\"SM2608070002\",\"operNumber\":9500.000000,\"operTime\":\"2026-08-07\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":2077650.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":91854.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060001\",\"newType\":\"总部入库入库\",\"number\":\"SM2608060005\",\"operNumber\":420.000000,\"operTime\":\"2026-08-06\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":91854.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":816.000000,\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MT-3NSXL(VC)RF通讯模块\",\"model\":\"MT-3NSXL(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060003\",\"newType\":\"总部入库入库\",\"number\":\"SM2608060004\",\"operNumber\":8160.000000,\"operTime\":\"2026-08-06\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MT-3NSXL(VC)\",\"taxLastMoney\":816.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":91854.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607240005\",\"operNumber\":420.000000,\"operTime\":\"2026-07-24\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":91854.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":551124.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607230004\",\"operNumber\":2520.000000,\"operTime\":\"2026-07-23\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":551124.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":1285956.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607230002\",\"operNumber\":5880.000000,\"operTime\":\"2026-07-23\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":1285956.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000}],\"allPriceTotal\":19439045.900000}}'); +INSERT INTO `tbl_log` VALUES (8750, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 07:26:24', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8751, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:25', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8752, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:26:25', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8753, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 07:26:25', 0, 'DepotHeadController.findInOutDetail(..)', NULL, 'GET /apis/depotHead/findInOutDetail', '{\"currentPage\":1,\"pageSize\":10,\"number\":\"\",\"materialParam\":\"\",\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"type\":\"出库\",\"remark\":\"\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":51,\"operNumberTotal\":66000.000000,\"rows\":[{\"allPrice\":0.000000,\"barCode\":\"1001\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mname\":\"MD-4G111(VF) 包装\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"生产领料出库\",\"number\":\"LL20260924134027104\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-24\",\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"taxLastMoney\":0.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.000000},{\"allPrice\":735000.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"\",\"newType\":\"销售出库\",\"number\":\"XSCK00000001728\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":808500.000000,\"taxMoney\":73500.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159 \",\"newType\":\"销售出库\",\"number\":\"XSCK-INV_2159-86\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-10\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写 \",\"newType\":\"销售出库\",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-10\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158 \",\"newType\":\"销售出库\",\"number\":\"XSCK-DO_2158-85\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157 \",\"newType\":\"销售出库\",\"number\":\"XSCK-DO_2157-83\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写 \",\"newType\":\"销售出库\",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150 \",\"newType\":\"销售出库\",\"number\":\"XSCK-INV_2150-69\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-29\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2148 \",\"newType\":\"销售出库\",\"number\":\"XSCK-do_2148-60\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-27\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2147 \",\"newType\":\"销售出库\",\"number\":\"XSCK-do_2147-59\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-27\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000}],\"allPriceTotal\":4116000.000000}}'); +INSERT INTO `tbl_log` VALUES (8754, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:26:25', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8755, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:26:25', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8756, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:26:25', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8757, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:26', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8758, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:26:26', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"type\":\"入库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":7,\"priceSumTotal\":19439045.900000,\"numSumTotal\":133359.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":100000.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":10000.000000,\"priceSum\":595000.000000,\"standard\":\"1PH WS79\"},{\"barCode\":\"C.4.T.0.00654\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"MD-4G111(VF) 4G模块\",\"materialId\":699,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"numSum\":7.000000,\"priceSum\":0.700000,\"standard\":\"MD-4G111(VF)\"},{\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"MT-3NSXL(VC)RF通讯模块\",\"materialId\":696,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"numSum\":53432.000000,\"priceSum\":5343.200000,\"standard\":\"MT-3NSXL(VC)\"},{\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"三相四线多功能电能表T46(VC)\",\"materialId\":691,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"numSum\":14460.000000,\"priceSum\":7027560.000000,\"standard\":\"DTSD1226-T46(VC)\"},{\"barCode\":\"C.3.C.2.00025\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"三相四线多功能电能表CXVI(VA)-新\",\"materialId\":687,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-CXVI(VA)\",\"numSum\":6720.000000,\"priceSum\":3238704.000000,\"standard\":\"DTSD1226-CXVI(VA)\"},{\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"单相多功能电能表T49(VB)\",\"materialId\":685,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"numSum\":38740.000000,\"priceSum\":8472438.000000,\"standard\":\"DDSD1226-T49(VB)\"}]}}'); +INSERT INTO `tbl_log` VALUES (8759, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:26:26', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8760, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 07:26:26', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8761, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:26:26', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8762, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:26', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8763, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:26:26', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8764, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:26:26', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8765, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:26:26', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8766, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:26:26', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"type\":\"出库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":2,\"priceSumTotal\":4116000.000000,\"numSumTotal\":66000.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":0.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":56000.000000,\"priceSum\":4116000.000000,\"standard\":\"1PH WS79\"}]}}'); +INSERT INTO `tbl_log` VALUES (8767, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:31', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8768, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:31', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8769, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:26:31', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8770, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:26:31', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"hasDebt\":1,\"supplierType\":\"客户\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":13360666.000000,\"lastMoney\":12430066.000000,\"rows\":[{\"allNeed\":12430066.000000,\"backMoney\":5458200.000000,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":4527600.000000,\"email\":\"\",\"id\":90,\"phoneNum\":\"\",\"preBackMoney\":9555700.000000,\"preDebtMoney\":22916366.000000,\"preNeed\":13360666.000000,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"TNB\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (8771, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:26:33', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8772, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:26:33', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8773, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:26:33', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8774, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:26:44', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8775, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:26:44', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-06-30\",\"endTime\":\"2026-09-30\",\"hasDebt\":1,\"supplierType\":\"供应商\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":100671250.134800,\"lastMoney\":116500257.436400,\"rows\":[{\"allNeed\":116500257.436400,\"backMoney\":2139558.598400,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":17968565.900000,\"email\":\"\",\"id\":89,\"phoneNum\":\"\",\"preBackMoney\":10686582.135200,\"preDebtMoney\":111357832.270000,\"preNeed\":100671250.134800,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"浙江瑞银电子有限公司\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (8776, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:28:50', 0, 'AssetController.categoryList(..)', NULL, 'GET /apis/asset/category/list', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8777, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:28:55', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8778, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:28:55', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/031PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"221\",\"externalSource\":\"HARDWARE\",\"id\":60,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU020\",\"assetName\":\"HP HP Pro 3330 MT\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"220\",\"externalSource\":\"HARDWARE\",\"id\":59,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: SGH221S6SH;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / HP Pro 3330 MT / Win 10 Pro / Core i7-2600 / 8G / 220G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/030PC\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"219\",\"externalSource\":\"HARDWARE\",\"id\":58,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDPN;用途: Testing / Lab;原备注: Windows License Key : QRWJ7-2N8MF-TM9WY-HKB42-VFR9C\\n\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"218\",\"externalSource\":\"HARDWARE\",\"id\":57,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMSP;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"217\",\"externalSource\":\"HARDWARE\",\"id\":56,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP19/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"216\",\"externalSource\":\"HARDWARE\",\"id\":55,\"keeper\":\"Hasmah\",\"location\":\"Not Specified\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified;原备注: RETURN TO SUPPLIER DUE THE PROBLEM\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"REPAIR\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP18/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"215\",\"externalSource\":\"HARDWARE\",\"id\":54,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP17/11112024\",\"assetName\":\"HP Pro Book 440\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"214\",\"externalSource\":\"HARDWARE\",\"id\":53,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Pro Book 440\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP16/11112024\",\"assetName\":\"HP Radeon Intel Core i5\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"213\",\"externalSource\":\"HARDWARE\",\"id\":52,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Radeon Intel Core i5\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-212\",\"assetName\":\"HP All-in-One 24-dp0209d\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"212\",\"externalSource\":\"HARDWARE\",\"id\":51,\"keeper\":\"Hasmah\",\"location\":\"HR Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8CC10109F6\",\"source\":\"SAS\",\"specification\":\"All-In-One / HP / All-in-One 24-dp0209d / Win 10 Home / AMD Ryzen 5 4500U / 24G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"}]}}'); +INSERT INTO `tbl_log` VALUES (8779, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:29:22', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"供应商\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":0.000000,\"allNeedPay\":116500257.436400,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Excel初始化默认供应商\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":89,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"1\",\"supplier\":\"浙江瑞银电子有限公司\",\"taxNum\":\"\",\"taxRate\":0.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"供应商\"}]}}'); +INSERT INTO `tbl_log` VALUES (8780, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:29:23', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8781, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 07:29:23', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"客户\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":12430066.000000,\"allNeedPay\":0.000000,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Stock Status客户\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":90,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"2\",\"supplier\":\"TNB\",\"taxNum\":\"\",\"taxRate\":10.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"客户\"}]}}'); +INSERT INTO `tbl_log` VALUES (8782, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 07:29:23', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8783, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:29:25', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"会员\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8784, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:29:26', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8785, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:29:27', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8786, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:29:27', 0, 'DepotController.getList(..)', NULL, 'GET /apis/depot/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":25,\"isDefault\":true,\"name\":\"半成品仓库\",\"remark\":\"总部入库物料\",\"sort\":\"1\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000},{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":26,\"isDefault\":false,\"name\":\"成品仓库\",\"remark\":\"Stock Status成品\",\"sort\":\"2\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (8787, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 07:29:27', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8788, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-30 07:29:28', 0, 'InOutItemController.getList(..)', NULL, 'GET /apis/inOutItem/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"利息收入\",\"remark\":\"收入\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":22,\"name\":\"房租收入\",\"remark\":\"\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"快递费\",\"remark\":\"\",\"tenantId\":63,\"type\":\"支出\"}]}}'); +INSERT INTO `tbl_log` VALUES (8789, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:29:30', 0, 'AccountController.getList(..)', NULL, 'GET /apis/account/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"serialNo\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8790, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:29:31', 0, 'PersonController.getList(..)', NULL, 'GET /apis/person/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":44,\"name\":\"Neezam\",\"type\":\"CEO\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":31,\"name\":\"Arif\",\"sort\":\"1\",\"tenantId\":63,\"type\":\"商务主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":36,\"name\":\"张伟\",\"sort\":\"10\",\"tenantId\":63,\"type\":\"资产管理员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":32,\"name\":\"Hafiz\",\"sort\":\"2\",\"tenantId\":63,\"type\":\"技术主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":37,\"name\":\"陈晨\",\"sort\":\"20\",\"tenantId\":63,\"type\":\"设备工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":33,\"name\":\"Aziman\",\"sort\":\"3\",\"tenantId\":63,\"type\":\"软件工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":38,\"name\":\"王磊\",\"sort\":\"30\",\"tenantId\":63,\"type\":\"生产主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":34,\"name\":\"Lim\",\"sort\":\"4\",\"tenantId\":63,\"type\":\"IT\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":39,\"name\":\"赵敏\",\"sort\":\"40\",\"tenantId\":63,\"type\":\"IT运维工程师\"}]}}'); +INSERT INTO `tbl_log` VALUES (8791, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:29:31', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8792, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:29:31', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8793, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:29:39', 0, 'RoleController.getList(..)', NULL, 'GET /apis/role/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"description\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":7,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]}}'); +INSERT INTO `tbl_log` VALUES (8794, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:29:40', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8795, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:29:40', 0, 'UserController.getList(..)', NULL, 'GET /apis/user/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"isystem\":1,\"leaderFlag\":\"0\",\"leaderFlagStr\":\"否\",\"loginName\":\"admin\",\"orgAbr\":\"测试部门\",\"orgaId\":12,\"orgaUserRelId\":11,\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"roleId\":21,\"roleName\":\"admin\",\"status\":0,\"tenantId\":63,\"userBlngOrgaDsplSeq\":\"15\",\"userType\":\"系统管理员\",\"username\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8796, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:29:41', 0, 'OrganizationController.getOrganizationTree(..)', NULL, 'GET /apis/organization/getOrganizationTree', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (8797, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 07:29:45', 0, 'MaterialPropertyController.getList(..)', NULL, 'GET /apis/materialProperty/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}}'); +INSERT INTO `tbl_log` VALUES (8798, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:29:47', 0, 'PluginController.checkByTag(..)', NULL, 'GET /apis/plugin/checkByPluginId', '{\"pluginIds\":\"workflow\"}', '{\"code\":200,\"data\":false}'); +INSERT INTO `tbl_log` VALUES (8799, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:29:47', 0, 'PluginController.checkByTag(..)', NULL, 'GET /apis/plugin/checkByPluginId', '{\"pluginIds\":\"stock-check\"}', '{\"code\":200,\"data\":false}'); +INSERT INTO `tbl_log` VALUES (8800, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:29:47', 0, 'SystemConfigController.getList(..)', NULL, 'GET /apis/systemConfig/list', '{\"search\":\"{\\\"companyName\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (8801, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:29:48', 0, 'FunctionController.getList(..)', NULL, 'GET /apis/function/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"nameEn\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":79,\"rows\":[{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"shopping-cart\",\"id\":38,\"name\":\"销售管理\",\"nameEn\":\"Sales Management\",\"number\":\"0603\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0001\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/billB\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"retweet\",\"id\":32,\"name\":\"采购管理\",\"nameEn\":\"Purchase Management\",\"number\":\"0502\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0002\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/bill\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"cluster\",\"id\":262,\"name\":\"生产管理\",\"nameEn\":\"Production Management\",\"number\":\"0901\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0003\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/production\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"hdd\",\"id\":239,\"name\":\"仓库管理\",\"nameEn\":\"Warehouse Management\",\"number\":\"0801\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0004\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/billD\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"money-collect\",\"id\":44,\"name\":\"财务管理\",\"nameEn\":\"Finance Management\",\"number\":\"0704\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0005\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/financial\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"bank\",\"id\":272,\"name\":\"资产管理\",\"nameEn\":\"Asset Management\",\"number\":\"0902\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0006\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/assetManagement\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"shopping\",\"id\":21,\"name\":\"商品管理\",\"nameEn\":\"Product Management\",\"number\":\"0101\",\"parentNumber\":\"0\",\"sort\":\"0007\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/material\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"pie-chart\",\"id\":198,\"name\":\"报表查询\",\"nameEn\":\"Reports\",\"number\":\"0301\",\"parentNumber\":\"0\",\"sort\":\"0008\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/report\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"appstore\",\"id\":24,\"name\":\"基础资料\",\"nameEn\":\"Master Data\",\"number\":\"0102\",\"parentNumber\":\"0\",\"sort\":\"0009\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/systemA\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"setting\",\"id\":1,\"name\":\"系统管理\",\"nameEn\":\"System Management\",\"number\":\"0001\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0010\",\"state\":true,\"type\":\"电脑版\",\"url\":\"/system\"}]}}'); +INSERT INTO `tbl_log` VALUES (8802, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:29:50', 0, 'PluginController.getPluginInfo(..)', NULL, 'GET /apis/plugin/list', '{\"currentPage\":1,\"pageSize\":10}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8803, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:29:52', 0, 'SysDictTypeController.list(..)', NULL, 'GET /apis/dict/type/list', '{\"search\":\"{\\\"dictName\\\":\\\"\\\",\\\"dictType\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createBy\":\"admin\",\"createTime\":1639589778000,\"dictId\":1,\"dictName\":\"用户性别\",\"dictType\":\"sys_user_sex\",\"params\":{},\"remark\":\"用户性别列表\",\"status\":\"0\",\"updateBy\":\"admin\",\"updateTime\":1775132441000},{\"createBy\":\"admin\",\"createTime\":1775241057000,\"dictId\":12,\"dictName\":\"系统开关\",\"dictType\":\"sys_normal_disable\",\"params\":{},\"remark\":\"系统开关列表\",\"status\":\"0\",\"updateBy\":\"admin\",\"updateTime\":1775324469000}]}}'); +INSERT INTO `tbl_log` VALUES (8804, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:29:52', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8805, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:29:52', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8806, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:29:52', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (8807, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:29:53', 0, 'PlatformConfigController.getList(..)', NULL, 'GET /apis/platformConfig/list', '{\"search\":\"{\\\"platformKey\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":21,\"rows\":[{\"id\":1,\"platformKey\":\"platform_name\",\"platformKeyInfo\":\"平台名称\",\"platformValue\":\"SMT\"},{\"id\":3,\"platformKey\":\"platform_url\",\"platformKeyInfo\":\"官方网站\",\"platformValue\":\"http://www.gyjerp.com/\"},{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"},{\"id\":5,\"platformKey\":\"bill_print_url\",\"platformKeyInfo\":\"三联打印地址\",\"platformValue\":\"\"},{\"id\":6,\"platformKey\":\"pay_fee_url\",\"platformKeyInfo\":\"租户续费地址\",\"platformValue\":\"\"},{\"id\":7,\"platformKey\":\"register_flag\",\"platformKeyInfo\":\"注册启用标记\",\"platformValue\":\"0\"},{\"id\":9,\"platformKey\":\"send_workflow_url\",\"platformKeyInfo\":\"发起流程地址\",\"platformValue\":\"\"},{\"id\":10,\"platformKey\":\"weixinUrl\",\"platformKeyInfo\":\"微信url\",\"platformValue\":\"\"},{\"id\":11,\"platformKey\":\"weixinAppid\",\"platformKeyInfo\":\"微信appid\",\"platformValue\":\"\"},{\"id\":12,\"platformKey\":\"weixinSecret\",\"platformKeyInfo\":\"微信secret\",\"platformValue\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (8808, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:29:58', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8809, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:29:58', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8810, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:29:58', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8811, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:29:58', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8812, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:29:58', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8813, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:29:58', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8814, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:29:58', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8815, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:29:58', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8816, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:29:58', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8817, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 07:30:06', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8818, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:30:08', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8819, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:30:08', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8820, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:30:08', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8821, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:30:08', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8822, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:30:08', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"销售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8823, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 07:30:08', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8824, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 07:30:08', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8825, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:30:08', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8826, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:30:15', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8827, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:30:15', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8828, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 07:30:15', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8829, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:30:15', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8830, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:30:15', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8831, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:30:15', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8832, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-30 07:30:15', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8833, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:30:15', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8834, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:30:15', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8835, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:30:17', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8836, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:30:19', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (8837, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:30:19', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8838, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:30:19', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"零售\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8839, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:30:19', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8840, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:30:19', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8841, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:30:19', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8842, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:30:19', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8843, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:30:19', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8844, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:30:20', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (8845, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:30:20', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8846, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:30:20', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8847, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 07:30:20', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8848, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:30:20', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8849, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:30:20', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8850, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:30:20', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"零售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8851, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:30:27', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8852, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 07:30:27', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8853, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-30 07:30:27', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8854, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 07:30:27', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (8855, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 07:30:27', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8856, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:30:46', 0, 'AssetInventoryController.details(..)', NULL, 'GET /apis/assetInventory/details', '{\"inventoryId\":1,\"keyword\":\"\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线 A 工位\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":2,\"imageGroupId\":\"01f08d9e8b2c43cfa2fb59a67ac6a954\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/图片1_1789973064775.png\"],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"Panasonic NPM-D3A\",\"targetCode\":\"SMT-L01-MOUNTER-A\",\"targetId\":2,\"targetName\":\"高速模块贴片机 A\",\"targetType\":\"DEVICE\",\"updateTime\":1789987464000},{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线 B 工位\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":3,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"Panasonic NPM-W2S\",\"targetCode\":\"SMT-L01-MOUNTER-B\",\"targetId\":3,\"targetName\":\"多功能贴片机 B\",\"targetType\":\"DEVICE\",\"updateTime\":1789722750000},{\"actualLocation\":\"一车间 印刷检测区-A区\",\"actualQuantity\":1.000000,\"bookDepartment\":\"品质部\",\"bookLocation\":\"一车间 印刷检测区\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":1,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1789986951000,\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"model\":\"KY8030-3\",\"remark\":\"111\",\"targetCode\":\"QC-SPI-01\",\"targetId\":6,\"targetName\":\"在线 3D SPI\",\"targetType\":\"DEVICE\",\"updateTime\":1789986959000}]}}'); +INSERT INTO `tbl_log` VALUES (8857, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:30:46', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/%E5%9B%BE%E7%89%871_1789973064775.png', '{}', NULL); +INSERT INTO `tbl_log` VALUES (8858, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:32:11', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8859, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:32:11', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8860, NULL, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:32:51', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8861, NULL, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:32:52', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8862, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:32:52', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8863, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:32:52', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8864, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:32:53', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (8865, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 07:32:53', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8866, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:32:53', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8867, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:32:53', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8868, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:32:59', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8869, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:32:59', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8870, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:32:59', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2107-14\",\"billTime\":1783281600000,\"billTimeStr\":\"2026-07-06 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":102,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2107-14\",\"sourceTime\":\"2026-06-06 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2102-11\",\"billTime\":1782763200000,\"billTimeStr\":\"2026-06-30 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":101,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2102\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2102-11\",\"sourceTime\":\"2026-05-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8871, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:32:59', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8872, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:32:59', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8873, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:32:59', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8874, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:32:59', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8875, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:32:59', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8876, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:32:59', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8877, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:32:59', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (8878, NULL, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:34:37', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (8879, NULL, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:34:37', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8880, NULL, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:34:37', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8881, NULL, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:34:38', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3dreSRZFa6lAZgUKAApg59OfTntgepLkzbWqCR3kKKFZgpYsemcDJqO4knWcJFNbKXQ+XHIDudwD79Bxng9+leaa78JfDfjfxJca5qM+sW1xfLHIghmjEbqI1UYzGSGwvIJPcjjoBc9JmL3NvA486KJ8PIqqRIoxuxwcjpggAnnt1p1rK4RY5ih6COVTxKMZ4BJOeD1J6Zr5Y8H+FLLUvjjDY+F7iafSdJvFujc3Do5aOFl3MCuAys+ApHZlJHBr6ql85IgIiXkZ8bmUEKCe4yuQBxxz9aAJJchQ3mCNVO52I7D69P8M/WmyS/uN8XzAqSHUbwOCQcA5I9hyc15TrPwH8I3V9qOs6jrGrQrM8l1O7XESohJLOxZo+FGe/THJrzn4F+H11T4nXGs6eZo9K0kSOhn2tIwkDxxo2CPm2lmJAIymOMigD6XF0scUSyTwPNKpMZHyLJ0xjk+o9algdnVwyygq3/LQAdQDgY4IGcfh361l+I2v7fwvrVxp3nHUEs5pLVIh5h81UJTauOSSF+XBB6YOTn5p8B+HvCfjeLUtS8ceM57bUxKiKs94kbum3AcyTBt/Tbgfd28/eFAH1VLKNwhUtvfjKYJTIOGOeg+Uj60F5GYiNcbHCtvGAwwCSp/H8wR714H8AJ9SPinXLC21Oa/8ADdhC0cDv8qhmlzGyIx3R71EjEDjON3IFe2ajqX9j2ep6reRTm1s7Rp2WMq2VjDMduSPmI7EAZHXvQDLU/nfakZEcmMEhQx2yKcA+wYdgeD+ZVN5VoJCuJZ5ANrSvgfKTwMdcAnBA598VzHgjx3p/izw7PqVjaPbWttM0JMyrCGYYJwAzAcOnU8kn0zR4G+JOlePm1JtLtr2GOwWIv9pjUMxff0Cs2fuUgOnttQhlQKpnk2uIi5iOS3vgfLyDnIGPYEZuVFEztNPktsVgFDLjsCcHuOfzB/CWmBHOqvbyK+drKQcLuOMemDn6YNcF8QfFTeE/AkurxzoJsfZLGFUVh9oywWQNsI+VQz4wAduM889vG5aciYMTvOwGE4TA6hhkYII59z9Bj+K/DPh/xTaQw6/aS3lvby5EaXEqKrkYBKxsNx5AHBI3cYBNG4HAfs++HH0bwvc6ncJOs+r7ZUBUhBChZU6gYYkuepBUoR3r1ZoJLmOCZi1vcIu4JncqsQM5/vY5H0JxjqItMsrHRbC1sbJWitsLFBG24lQqYC5PzcKn8Rzxj0FWHsoHiaNlbY2/codgDvzuzzz1P07UwPM/jb4vi8N+A30qybbeaqz2irg/u4gB5p5UjG1lUDjiQFelaXwm8NzeDfh/YWlykn9oahL9smhclfLLhRt5UEMsaqSp53B8cdNTXvh34a8SXNmuqaWbmG1jZUVrudBHuOcqFYKSTnPf7vOABXTyM8TtLI7eSvRY0LFs8YIAJ4POR68jjlAUdX1KeDw9q93pUX2q+s4JjDD5bNvmRCVTaMFsnAwOueK+dvhpp/gbxVZalqPj3WY5tb+1IM6nqLxboQgAIYspYn5gfmONicAH5vpiSWRC6rCXbazJg8NjHBPYkn9K43W/hF4K17U5tSutHUXk8wlneOaRBIf4sqrAAnuQAcnPJzkA83+B+ty2/ifxJo9nfXVx4Ut0ZrS5uC5EA84iLGQFQuHZiNoyVzxg16n44t2k+H+s3Ehiknh0i8SRx0BMLBivvuUD6Zq/pnhnTPDPh19L0Wwhgtg5lMSs37zLZO5jvZiQAvOcgAcDAGqzNuhED26RSNuDHnfnJIUDHJGTnJ78UAeE/Anxr4e8P+DNUs9X1W2spY7uS7KzPtLJ5cY+Ufxn5Wwq5PHTkZb+zPuCeKigBbFrgE4BP77vXpK/CnwFZaq2qt4esF5ZyJncxKzZB/dsxjx83A2gLgY7Y1fDfgzw74MmnTQdPNp9tC+dh5ZdxTO3JZiFxub0zn2oA14pLhvswulEc2W3rGrMpIyM7hwAeuG9fUVcqGK4SRim5A2NygODuTsw9v6/nU1ABRRRQAUUUUAIVVipKglTkEjoen9TQUUuHKjcAQGxyAeo/QflRRQAtFFFADPLTzfNx8+3aSD1Hv6/0yfU0+iigAooooARVVRhVAGScAdzyaWiigD/2Q==\",\"uuid\":\"44cb030d83a2416e96102a5111f24930\"}}'); +INSERT INTO `tbl_log` VALUES (8882, NULL, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:34:38', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8883, 63, '用户', '43.174.53.30/1.9.116.218', '2026-09-30 07:35:01', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8884, NULL, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:35:01', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"778u\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"44cb030d83a2416e96102a5111f24930\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8885, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:35:01', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8886, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:35:01', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8887, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:35:02', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8888, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:35:02', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8889, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:35:02', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8890, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:35:02', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8891, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:35:59', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8892, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:36:03', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8893, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:36:13', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8894, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:36:16', 0, 'SaleShipmentController.getDetail(..)', NULL, 'GET /apis/saleShipment/detail', '{\"id\":17}', '{\"code\":200,\"data\":{\"rows\":[{\"actualQuantity\":10000.000000,\"barCode\":\"1PH-WS79\",\"deleteFlag\":\"0\",\"deliveryPlanItemId\":6,\"depotId\":25,\"differenceQuantity\":0.000000,\"id\":15,\"materialExtendId\":123,\"materialId\":703,\"materialName\":\"1PH WS79\",\"model\":\"1PH WS79\",\"planQuantity\":10000.000000,\"saleOutItemId\":1525,\"shipmentId\":17,\"shippedQuantity\":0.000000,\"standard\":\"1PH WS79\",\"unit\":\"件\"}],\"info\":{\"approveBy\":63,\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"id\":17,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"}}}'); +INSERT INTO `tbl_log` VALUES (8895, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:36:57', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8896, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:37:00', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8897, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:37:00', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8898, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:37:00', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8899, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:37:00', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8900, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:37:00', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"付款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":947751.900000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":104,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":947751.900000,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"billTime\":1785700800000,\"billTimeStr\":\"2026-08-03 00:00:00\",\"changeAmount\":954860.058400,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":100,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260415-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":954860.058400,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":236946.640000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":92,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260414-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":236946.640000,\"type\":\"付款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8901, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:37:00', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8902, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:37:00', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8903, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:37:00', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"vendor\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (8904, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:37:17', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (8905, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:37:17', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8906, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:37:17', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8907, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:37:17', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8908, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:37:17', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8909, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:37:17', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8910, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:37:17', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8911, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:37:49', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8912, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:37:49', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8913, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:37:49', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8914, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:37:49', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8915, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:37:49', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (8916, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:37:49', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8917, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:37:49', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8918, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:37:49', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2107-14\",\"billTime\":1783281600000,\"billTimeStr\":\"2026-07-06 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":102,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2107-14\",\"sourceTime\":\"2026-06-06 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2102-11\",\"billTime\":1782763200000,\"billTimeStr\":\"2026-06-30 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":101,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2102\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2102-11\",\"sourceTime\":\"2026-05-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8919, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 07:37:49', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8920, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:37:49', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (8921, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:37:53', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (8922, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:37:53', 0, 'MaterialController.getList(..)', NULL, 'GET /apis/material/list', '{\"search\":\"{\\\"materialParam\\\":\\\"\\\",\\\"standard\\\":\\\"\\\",\\\"model\\\":\\\"\\\",\\\"color\\\":\\\"\\\",\\\"brand\\\":\\\"\\\",\\\"mfrs\\\":\\\"\\\",\\\"otherField1\\\":\\\"\\\",\\\"otherField2\\\":\\\"\\\",\\\"otherField3\\\":\\\"\\\",\\\"weight\\\":\\\"\\\",\\\"expiryNum\\\":\\\"\\\",\\\"position\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":24,\"rows\":[{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"commodityDecimal\":200.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":706,\"imgName\":\"\",\"initialStock\":0,\"lowDecimal\":200.000000,\"mBarCode\":\"1002\",\"materialOther\":\"\",\"mfrs\":\"SMT\",\"mnemonic\":\"MD-4G111(VF) 4G\",\"model\":\"MD-4G111(VF) 4G\",\"name\":\"MD-4G111(VF) 4G\",\"purchaseDecimal\":100.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) 4G\",\"stock\":0,\"unit\":\"只\",\"wholesaleDecimal\":200.000000},{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":34,\"categoryName\":\"包装\",\"commodityDecimal\":10.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":705,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":10.000000,\"mBarCode\":\"1001\",\"materialOther\":\"\",\"mnemonic\":\"MD-4G111(VF) bz\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 包装\",\"purchaseDecimal\":10.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"stock\":0.000000,\"unit\":\"件\",\"wholesaleDecimal\":10.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":340.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":340.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"remark\":\"Excel初始化;条码:3PH-APEC3-WC\",\"standard\":\"3PH APEC3-WC\",\"stock\":7223.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":340.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":73.500000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":73.500000,\"mBarCode\":\"1PH-WS79\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"remark\":\"Excel初始化;条码:1PH-WS79\",\"standard\":\"1PH WS79\",\"stock\":52400.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":73.500000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":24.300000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":24.300000,\"mBarCode\":\"C.4.T.0.00722\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"remark\":\"Excel初始化;条码:C.4.T.0.00722\",\"standard\":\"MD-RS178(VA)\",\"stock\":1000.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":24.300000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":142.560000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":142.560000,\"mBarCode\":\"C.4.T.0.0068900002\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"remark\":\"Excel初始化;条码:C.4.T.0.0068900002\",\"standard\":\"MD-RS114(VB)\",\"stock\":100.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":142.560000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":132.840000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":132.840000,\"mBarCode\":\"C.4.T.0.00686\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"remark\":\"Excel初始化;条码:C.4.T.0.00686\",\"standard\":\"TC160(VA)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":132.840000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":0.100000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":0.100000,\"mBarCode\":\"C.4.T.0.00654\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"remark\":\"Excel初始化;条码:C.4.T.0.00654\",\"standard\":\"MD-4G111(VF)\",\"stock\":76970.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":0.100000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":324.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":324.000000,\"mBarCode\":\"C.4.T.0.00562\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"remark\":\"Excel初始化;条码:C.4.T.0.00562\",\"standard\":\"MD-4GVIII(VB)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":324.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":129.600000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":129.600000,\"mBarCode\":\"C.4.T.0.00553\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"remark\":\"Excel初始化;条码:C.4.T.0.00553\",\"standard\":\"MT-P109(VA)\",\"stock\":500.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":129.600000}]}}'); +INSERT INTO `tbl_log` VALUES (8923, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:37:59', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-09-30\"}}'); +INSERT INTO `tbl_log` VALUES (8924, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:38:01', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8925, NULL, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:38:10', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8926, NULL, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:38:10', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8927, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:38:11', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8928, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:38:11', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8929, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:38:11', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (8930, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:38:11', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8931, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:38:11', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8932, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:38:14', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-09-30\"}}'); +INSERT INTO `tbl_log` VALUES (8933, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:38:16', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (8934, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:38:16', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8935, NULL, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:38:23', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8936, NULL, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:38:23', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8937, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:38:23', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8938, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:38:24', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8939, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:38:24', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8940, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:38:24', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8941, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:38:24', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8942, NULL, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:38:41', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8943, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:38:41', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8944, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:38:41', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8945, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:38:42', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8946, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:38:42', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8947, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:38:42', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8948, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 07:38:42', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8949, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:38:49', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8950, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:38:49', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8951, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:38:49', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8952, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:38:49', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8953, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:38:49', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8954, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:38:49', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8955, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:38:49', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8956, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:38:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8957, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:38:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8958, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:38:54', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (8959, NULL, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:39:04', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (8960, NULL, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:39:04', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (8961, NULL, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:39:04', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (8962, NULL, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:39:05', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD35XVxlGDDJGQc8g4I/Oq9zJNAitHlgHy5KFvlyMgBec4PHB6c+tDpmGb7OwKFXGxAPv5OSCCOc5zz17jmvBonaT9rgM0bRk/wORkf6B7EigD6Bd1jRndgqqMlicAD1qslxJLG7GJkiKsUljYPkdiAM9Rgjr39s8XpvxY0XW/GreHNFttQ1N0JVrm1hQwKARukMhkHyDOM7eTjbuyue6nkaG3llSGSd0QssUZUM5A+6NxAyenJA9SKAI5vtUVovkhJrgbAd/yhuRuPHTjJ/oelPknCXEMAGWk3MeeijqfzKjHv7VyPgj4h6N8RDfjTLe+iSyVFmS7jjCv5m7GNrNnGxvTr37VfDXxN0bxH4uuPDmlabqYuLbzPtEkojWGJIztyBvJxuKjAX+LJ6GgDvCGyu0gDPzZGcjHb05xTWkVS4Ib5V3HCk8c9PU8dBz+dVTcXUV5OZoUFiibhNu5GBk8c5/Tp3rzab47eDdO1t7CZ725dHW3l1G2iV7dgCfnHzBio3Enap77dwwSBc9Phuorm0FzbkyxsCV2jBbHYZx6d6c1xGkSStvCNjkoeM+vHy/jjFcP4V+KWgeNPE9xpmiwajJLBEztNKAkTxB1Xcq7s5yynlQcZ7/Ken1XTxqmhXekX1zIkVzavFPcIgUMjKVfrkK2Dn0zg8gEUAXp7lYpoo/NgDOQNkkm1iCeo9e/Hf1FTO5XbiNnywB244HqcnpXz346+DngzwZ4S1HWJdS1kyxoEs0aeHEkzcKuNgLYPzNjB2g4zg1s/s8aDd6f4a1DV5N4XVnH2cYG3ZASuS2TjczuuCAcIT3FAHtMsyQhTISAzBAQpPJ4HTpUlQ20k0kO6ZAjEn5Rnj2P06ZHBxnvipqAK86zPNGqoGhIw4ZgFYHggjaT9MYzznHGfmD4i6Pqmv/H3WNL0V9l/cRARjzfL3gWSlk3f7Shl54O7BIGa+o5HTIiMoSSQEJyN31APXFc4fA/h+HxbD4qFgqa1v/eXSyOqsTGY/uF9ozkDoTn6k0AeafAXWfD9vZ3Hha505bDxLHO0k32hfnuihOMbuVaMZGztgsOr49njWeGQlnZreNW4I3MfukdMk4+YdieOvU89rXw68MeIddj1q90wrqUTxkXcM8kLts5UgxuPmHA3EbsLgdAR02Z2nZdoWIFSGB5I5z+uBjHQ5zngAHzH49/tX4X/ABUvtc0ieUW+swy3EE4IIYycspJXadsu19oz8uwE/Ma7f9nvwvBZeFrnxJdRFLm/uPKt5S6/6lDjjHI3SbgVJwdiccAnB+Jll4r+JHirT9Bs/CN/ZQabdXFvHqFz5hgmQlR5pcoAq4j3dWJzgZOM+8aNpa6VodrpGA9vaQraxFzuLxKoVd3AG7A5xx/KgCjry3LeHNX07SJX+3zWVwLIRSBDHJsIRQ2RtO4Ejpjaem2vFvgVr/hzSvDt/BqGoaba37XjSMt7MkCtF5aqvzsMvyZBtyQMscDIz72kENzEYZbedCmMGRyWxkHhwSeqjvnge1eD+IY4Y/GWoXd18GbnV7gXjTJf2c0/2e6TdujfYitGxZNpbrli2QCSKBWK3wVm05/jP4mm0woumG1unttqlFEP2iMpgHBA244PSvoKXzJZYmRrmP5mXaAAuRkZPBPTJGeDgdMivIfg14H1nSde1XxjrdrbaUl7FIkVhEoURq7rIx2gny1XbtCH5hyDjbz69FI1pEBcNM+52+dlBxzwOM9eo9+MDIWgZ4J8Y7qfxF4x0j4d6Eu6RZUkufkwvnODtLBU4CRsWLLkEPz9yvbtN019D0fTtPhjluo9PhjtoWSXaWRVC7nUkKTgD159O2JH4R8IP4ug8RRWQn1e5d2M01zM7fNG3Ox2wF28AbcAFcYwK69FjWZhv3SD5sMcsgb9cEqfy9uBAS0VBEGjt4gsG3puj352Z7D1AP6dOwqegCMwRFmYxIWYgsdoySOhP07UoijEbR7QUYklTyDk5P8AM0UUAPooooAKRlV0ZHUMrDBBGQRRRQAKoRFUZwBgZJJ/M9aRUVBhFCjJOAMck5J/OiigBs8EVzEYpkDxkglT0ODkfqKeyqwwwBGQeR3HIoooAGVWGGAIyDgjuORUTWsLXSXJT98ilA4JGVPY+o+tFFAEpVWKllBKnKkjocY4/AmloooA/9k=\",\"uuid\":\"c18f49cc373d47e5984327891e384b94\"}}'); +INSERT INTO `tbl_log` VALUES (8963, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:39:05', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (8964, NULL, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:39:19', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"kyg7\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"c18f49cc373d47e5984327891e384b94\"}}', '{\"code\":200,\"data\":{\"msgTip\":\"user password error\"}}'); +INSERT INTO `tbl_log` VALUES (8965, NULL, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:39:19', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3hxJLOoSSSIRsCw2AiQEev1/Hr6g1M7FUZgpYgZCjGT7c8VHIVZxhmLx/OY0YZYEEDI9Ov4j2rxLy9KP7USzC8vhqpxm1a0QQj/Quf3olJzt5+5146fNQB7XMsk1r+7LRSkBlBPRhg4OO3GDjtmkuJ5IAziIPGFJzvwQffjge+ePTHNA2yMgiVxHjzVljZdjZPTrznJPTHOc5p5CWsUsmWK8yNukz9cFjgD8gKAEhLTCO4zKivGD5LqBtJ554yD264onE7fJEse0lQzM5B25+bGB1x057+3Pmd58cfC1l4h1fStSivIV01pIwWtw/nzRvjahDHBJHy7gBxksvStHwT8V/DXjbWZLKye9s78xbltrzaFmwOfLwxGVAyRwSCTg4JAB3rTIkLzMSqIGLEqRgDrx+H40mSJJQsu99oIiYgBeuOgzgkHk56VW1i+t9I0q71e5EzQ2FvJcOsR5ZVUsQBkAnA4z+lfLdrqWk+PbyfXPiR4xltITO8dpp1oHYx8IWKqEcRpgqBxlypycqSQD6ntbpruVnRXSNPkdJV2sr4VhgfRjnPoMepsQ7fJXZIZEIyrE5yO3Pf615t8LtD8NaFpWo6l4R1y71XS7pARFcvtEUse7fn5VCFg0fDKDhc5IPHTeMnU+D9fW5gmiik026WaaMBykQjk+YAkAt0O0lc7uvBwAbi30bTtAscnmhXbYRgkKQOM9jng9OvpSWsNwJWnuZtzMoCoFKhB3GNxBPv1684rzP4CxWKeB7+PSru6ntTqEmZri3WCRZPLi4CB5ARjByW68Y4yfUHjkMkD7I3dMhn3FMZxnA5yD6E9h9QADs5vURZlVQu9ozHy45HDZxgEjoPT1qeo4JGmt4pHjMbOgYoeqkjpUlAEZ81ZRtw0bElizYKccAADnn1Pf8K8CZgv7XRY5wBngZP/Hh6CvdNVv5LHR9QvLW2a9uLSCSRbWI/PK6puEYwCcngDg9Rwa8N8CaL4r8T/Gi68bavotzo0UOZBHdW7oGBTyVjBbaSRHklgCMqMgbhQB7yEjmhmhMTIhLKy425z1II9c5yPX1zVSCQ2cUNuNzRxOUkkcg7VCswJOTjgL1wPmHA6B9xDC/kvdxgOFPmSpwowM4LdQM5YHsVHIOMvAtJ7VmiFuYZZAWJQFXO4A/UnGAfp1oA8E+F9rC/wC0H4vxDDutzftAWjBETfaVXK+nysRxjgkd6bDbiz/ayKWtvDGzO0pjDYUu9kWc5x3ZmOcck17FY+DtA8P+IrvxDp2mGLUL0yG8uBJLIXDsHbCbiAS4U8DgA9Khk8BaIviyLxRGpj11SFS6eR28zEQjwyFsE7A3QDrnqM0AWtc08+IPDGt6PAuye4guIYHlQoiuysudyg8bmOcckZyDznxP4MW/ga10zWbfxfFpMOsRXgRotaWNSiBcAKJejBvMDAc/dz2r6KYq7NC8ZZWTnK5Vh0I//X6/XHIeIPhp4Q8VXyX+paK8t3LGqNdJM8bYUfLvG4bmxxkgnAAPQUCPKPgtbJL498ZyaKf+KbEE0cQeVljw0v7jcGO4/IsnJ5Azkgnn2DxpFIvw/wDEJDwLt0a4jmjROARCxAU8EDnoc8Y6c5s6VoMGg6ZDoul6bY29sEy7LD+7dgUUMwzlnKDJLckgcnBrmfi1r2vWXhptG0Xw7carcarazQXD2yPKLRSApJVVydwZwpJXlc4OCKBmD+zoEn+H2pwPGxX+1Hbd0H+qi6H1GM+3Fev/AGZFt5IYy0avvJKNyCxJJB9ckmvPfgl4bvvDHgP7NqcbQXl1cteNbSLteFWVVUMPUhM+2SDggivR2YKVBz8xwMAntnn06UAZularJfNJDcWzwTx5B4JR8HDbT7Hjv25NadRglp2Kygqo2smAdrdevbg9D7dO8lADQihy4UbyAC2OSBnA/U/nS7VDFsDcRgnHJH+SaKKAGyxJNGY5BlT74+hB7H3pzKrjDKGGQcEZ5HIoooAERY0VEUKqjAUDAA9KWiigCOSCKbaZEDFSCD3GCD/MD8qkoooAKZ5Sed5uPn27SQeo68+v9Mn1NFFAD6aI1EjSAfOwCk+wzj+ZoooAUKqliqgFjliB1OMc/gBS0UUAf//Z\",\"uuid\":\"6420c7a5d1f44c5f86df9422f39dcd31\"}}'); +INSERT INTO `tbl_log` VALUES (8966, 63, '用户', '43.152.157.109/1.9.116.218', '2026-09-30 07:39:30', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (8967, NULL, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:39:30', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"jn6j\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"6420c7a5d1f44c5f86df9422f39dcd31\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (8968, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:39:30', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (8969, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:39:30', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (8970, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:39:30', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (8971, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:39:30', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (8972, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:39:30', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (8973, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:39:30', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (8974, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:40:13', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8975, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:40:13', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8976, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:40:13', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8977, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:40:13', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8978, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:40:13', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8979, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:40:13', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8980, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:40:13', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8981, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:40:13', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8982, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:40:13', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8983, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:40:14', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8984, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:40:14', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8985, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:40:14', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8986, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:40:14', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8987, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:40:14', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8988, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:40:14', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8989, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:40:14', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8990, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:40:15', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8991, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 07:40:15', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (8992, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:40:17', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (8993, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:40:17', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (8994, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:40:17', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (8995, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:40:17', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"}]'); +INSERT INTO `tbl_log` VALUES (8996, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:40:17', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (8997, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:40:17', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (8998, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:40:17', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (8999, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:40:17', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"销售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9000, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:40:43', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9001, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:40:43', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9002, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:40:55', 0, 'RoleController.getList(..)', NULL, 'GET /apis/role/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"description\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":7,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]}}'); +INSERT INTO `tbl_log` VALUES (9003, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:40:56', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9004, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:40:56', 0, 'UserController.getList(..)', NULL, 'GET /apis/user/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"isystem\":1,\"leaderFlag\":\"0\",\"leaderFlagStr\":\"否\",\"loginName\":\"admin\",\"orgAbr\":\"测试部门\",\"orgaId\":12,\"orgaUserRelId\":11,\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"roleId\":21,\"roleName\":\"admin\",\"status\":0,\"tenantId\":63,\"userBlngOrgaDsplSeq\":\"15\",\"userType\":\"系统管理员\",\"username\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9005, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:41:01', 0, 'OrganizationController.getOrganizationTree(..)', NULL, 'GET /apis/organization/getOrganizationTree', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9006, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:41:01', 0, 'RoleController.allList(..)', NULL, 'GET /apis/role/allList', '{}', '[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]'); +INSERT INTO `tbl_log` VALUES (9007, 63, '用户', '43.152.157.109/1.9.116.218', '2026-09-30 07:41:49', 0, '新增', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9008, 63, '关联关系', '43.152.157.109/1.9.116.218', '2026-09-30 07:41:49', 0, '新增', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9009, 63, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:41:49', 0, 'UserController.addUser(..)', NULL, 'POST /apis/user/addUser', '{\"obj\":{\"password\":\"******\",\"roleId\":23,\"loginName\":\"admin2\",\"orgaId\":13,\"username\":\"admin2\"}}', '{\"msg\":\"操作成功\",\"code\":200}'); +INSERT INTO `tbl_log` VALUES (9010, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:41:49', 0, 'UserController.getList(..)', NULL, 'GET /apis/user/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"id\":149,\"isystem\":0,\"leaderFlag\":\"0\",\"leaderFlagStr\":\"否\",\"loginName\":\"admin2\",\"orgAbr\":\"部门1\",\"orgaId\":13,\"orgaUserRelId\":20,\"password\":\"******\",\"roleId\":23,\"roleName\":\"system admin\",\"status\":0,\"userType\":\"普通用户\",\"username\":\"admin2\"},{\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"isystem\":1,\"leaderFlag\":\"0\",\"leaderFlagStr\":\"否\",\"loginName\":\"admin\",\"orgAbr\":\"测试部门\",\"orgaId\":12,\"orgaUserRelId\":11,\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"roleId\":21,\"roleName\":\"admin\",\"status\":0,\"tenantId\":63,\"userBlngOrgaDsplSeq\":\"15\",\"userType\":\"系统管理员\",\"username\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9011, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:41:53', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (9012, NULL, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:41:53', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9013, NULL, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:41:53', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9014, NULL, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:41:54', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9015, NULL, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 07:41:54', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3vcouCpyGKgjLcEA84Ge2Rk47imySTZZY4TlWT5mIwwJG7HOeBnr+tPliSZAsi5UMrAZ7ggj9QK8t+KnjW+0jS9P8OeHnnGv69IY4S0qpLbq0gH8XKlixRW4AwSDlQaAPUnk2PGux23ttyoyF4JyfQcY+pFNVjGyxyMzs7MQQhwBnIBI4GBgc9cV80fBDTLvR/jBqmmyESS2FvcW9wYX+U7ZUQnnGV3YPTPTivpl41k27iw2sGG1ivPvjqPY8UAVpptgMMbyRymTCFo2kzyCTj+7zjPAHtxUwJuYnG2WHDFQ3APB+8Pb69fTFeb678bfDXhbVptIv/tt/eQHE7WMUbRxv3TJcZIPp0BAPzBqseHfix4S1vxkvh/RhqFzcXhyl20IETbIt2MsRJwFI5Xrnsc0AehQhViCrIZApI3Fsng9M98dPXjnmqySIbUMzy28k+ZFQtukHfAVs846qBx29amLypNO7LIYlQbVCg7iMkkc5OeBg46e9eU237Qng9o724lGsKU2GK2e1j3P0BCFXIyOWO4jjpk9QD1dJkBiiLsZHjLruXBIGASeBg/MOOOtQR3m2+NkyTyScuZRHhFBJKgn6DGe+PXNeex/HXwXF4Yg1KW9u5bkkxmyFuBcMylQSVB2KCGDA7sEZAyQQNK0+Imj+KfB17r2kGVo9MV7i6t5SFmh8tTIu5A2GDbCAd2OfVTgA7nz4fNMXmp5gIBTcM5IJHH0BP4Go/tka+cZg0CxEAvL8qkHoQemP1rx+D45+CBpwvZk1r7X9oC/ZCokcKPmDZLbCmeOTuBOQP4q9A8I+NtB8e6YL3S3l3Qy7ZLeZds0Dc4LBScBgDg5weR1yKAOghY3lrBPu2bsSKY2JBH4gZBB7jv6gGrFN3/vNm1umQ2OPp9f8+tOoAiBEH+smdt7/AClgMLnovAHHpn16188PqPijS/i7rPia98F6/wCIJLe5mttLkRZY4YIQzoNu2Jgw2nA7fMxOWOR9C5jhRikhzI5AZ2LgOeMdeBkYxwM8d6LeUELE6eXMV3lCAM88kYJHXnqcZGetAHyn4R8WazpnxO8RazY+ErvUb+8NwZNNVXZ7YtcK5LAIT8rKF5A5I6dK+q5y0dsIxLIJHHlrKIt5DEcMQBj37CsfSvBPh3RPEN7r+naf5Op33mfaJ/OkbfvcO3ylioywB4ArWjmuvtSwPbqVClnmVsL7YGOp54zwMcnNAHz58E9X07w14n8WxeK761tNb3KhlvZkDsyu/nL5rHBJfYSN3zYzzjIh0K80rVP2okutHmjmsZXlxNCuwSP9kYSMMAclwxLDqSSOua1/iBYrJ4yuZbz4V3fiBHZXh1Cya4t/OiK/dkWNSN6vuG44Yqq8YwS/4b+CNc1H4mN44vtBh8NadEXNvpyw+WWzG0QUJwVwPmZiBuJ4GGO0A9yUyEmLy5I0CYWQsCc5I9+2DznrzXzz+zksSXPiCfyovtI+zRxTSEDG7zSUznOG2jgA8qCQcCvogDZNuklyXbEak4xwMjHc/KT69a53w94N0PwdHcHwxpYtjdyRrc75pW3KjEZG8noGbGMZznnihAeL/s8WkLp4pvfs8T3lvFbrBKyqTFu8wkgtwBlVJ/3az/hB/wAk8+J3/YKH/oq4r3Lwr4X8M+E7q5Hh2CC1gu1jE376WQyOC2zazsQRy4wO/wCjtJ+G3hHQ7PULTTtHSGHUYjDcgzyOXQqykAsxK8Ow+Ujr9KAPPv2etOsbnwHqTXGmwXDT6hLBLI8SNmPyY/kbPJX5245HzH1rH/ZoeJpPFFtJhjIlsdhGQyjzQfb+IfnXs/hTwrpXhLSms9Is2s4JpPPkgMzS7ZCAD8zEnoFHXHyjuSTU8JeD/D3hCe/j0K0SD7SV83y2lcfIWwCzuwyNx4GDz09ADoorZYWUpJKQARteRmBzjnkn0/U+tTVRVJFvvNjjdYgfLaMcAkkkvjIH905GTywIz0vUAIFAJIABJycDqaWiigApGVXGGUMMg4IzyDkfrRRQAtMSNEaRlGDI25uepwB/ICiigBzIrFSyglTlSR0OMZH4E/nS0UUAFFFFABTTGplWQj51BUH2OM/yFFFADqKKKAP/2Q==\",\"uuid\":\"84d59c29f5014017811046d560d4807e\"}}'); +INSERT INTO `tbl_log` VALUES (9016, 149, '用户', '43.152.157.109/1.9.116.218', '2026-09-30 07:42:06', 0, '登录admin2', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9017, NULL, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:42:06', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"4gmn\",\"loginName\":\"admin2\",\"password\":\"******\",\"uuid\":\"84d59c29f5014017811046d560d4807e\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"id\":149,\"ismanager\":1,\"isystem\":0,\"leaderFlag\":\"0\",\"loginName\":\"admin2\",\"password\":\"******\",\"status\":0,\"username\":\"admin2\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (9018, 149, '接口日志', '43.152.157.109/1.9.116.218', '2026-09-30 07:42:06', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":149,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"}]'); +INSERT INTO `tbl_log` VALUES (9019, 149, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:42:06', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9020, 149, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:42:06', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (9021, 149, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:42:06', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[]}}'); +INSERT INTO `tbl_log` VALUES (9022, 149, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:42:06', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9023, 149, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:42:06', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9024, 149, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:42:06', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9025, NULL, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:42:29', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (9026, NULL, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:42:29', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9027, NULL, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:42:29', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9028, NULL, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:42:30', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9029, NULL, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:42:30', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3rymCqFmkGHLk8HIyTt5HTntzxRPEZgi+YyKGy4UkFhg8ZHI5wfwx3qG4sI7i7inYDKY3Z3ZODuXoQODzyDmvBtZF58Xvi7feE5NQntfD+jtM5iGA5dMRs4+8GPmNxnGEzjBJBAPoNS2W3AAZ+XBzkY7+nOaYk6u6hQWVk3rIOVYfUfh9c8ZwceBaVLc/B34vW3hW1ubi88PayImjt3ZXkDyZjV/4FVvMXBxwUxnJAx78okEjlmUocbQFwR65OefyFABKJTERC6JJ2Z1LAfgCP50SMAUUuULthcDqRzj8ga8uv/jd4Og13ULG+TVbWfS2lQSeVgTSI+GjUKx+9tGN4A65K1oeCfi14d8Ya0dH02O4tXEe6GK8Co0hG4sEwzAgADjIIHQEAlQD0Sq3n3EkSvHblSxjIDnB2kjdkdmAzx9OvSqepXr6FpWq6vds1xDaW0lxsTg7UDOVA6ZxxnPPHAxk/JupeJ9E8XePtU1fxdPrkumSbxYrZeUJokD/ALtCG+UKELZx/Ec5OSSAfYW5hd7TvKOmRhflUg85Pqdw4/2TUtYnhVrceEdBXTI5m086dAYGuWAkEexNu/bxu2nJxxke9Jrmqy6Zod/e3FgJoLSC4nmzjAWNS6fKfvZAHQ8H07AGlJHIpk23Ls5VmjQhcqegx0yBno2e3Iqz8248DbgYOec/T8q8l/4aB8Em1F+Y9WM4fyRafZ18wKRkyZ3bNpIA+9nI6Y5q1qXx18GWNhY6hBc3V5JdIpeyhT95CpLZLg/KGUqRgNk7geVwaAPS5GeKRSke9Hb5zvOVzgDAx09eRjk81NXP+GPFVn4t0q11TSZEntJSyzA/K8DdQrD+8OARn+IEZUgnoKAK8mJYnaS1yYWLRiQA5I6MMZI/LPtXzzoVx/whX7RGqS6xMllb6mZ5o7iRwkJimbzQWdiqkDBXIJG9cDdivoSZpnt7hQo85QWjSKX5j/dJJHGSO+R9ea5zxV4d0LxTM1v4msIZbGyVZoZWkeN1Y/eClQCQcqCASM7e+MAHlPiKeHx5+0XoA8Pyx3cGlpbvPdRsJISsUhmYh03DGHVMnHznHHWvfIw6q6RxeUMuQXOcsTnOAeQST3BrG8OeD9C8K6fcweHLBdPF187udzuWxhclyWwOyk4GTxya1rmJZ5RBI7NFKhDRhwvAI54w2OcHB7jjmgD5x8G6xpOiftBeJbvV57S3Q3d7HBLdYCpI1xgkOeEOzfycZGV/iq/4qu7HxH+0X4bfwtdQXTj7P9rnspQofYzNJ+8BAfEOAcE8Db1GKl8JeAZNS+MPi3+3fDUraRM14YJLu1dIW3XCgGN8AbthcqVOe46Zr1bw98P/AA/4TvXvfD+kx2c8sO1y8sjt1B2lmc4B9gRkA84AoA6mJJVaRpZN25vlQY2qMnGOM5xjOc89K+f/AIaSNF+0D40kBACm/LZOB/x9J1ODgZxk9uvbB99SGbzI5HkVCN3mJGoxKeACSRkcDp+GTjnn9H8EeHvDWvahrtjYzrqF5vM9y00kpcSOGZQuT/EoOcZ9+tAHQQGIu0ithpvmaMsDgrhT07jgHnHH58545uZF8C+KI5QrD+zLlQI0YlcxSEFv9nAUZ6Zz6V0jnzYoJBFJksrDhdyeud3TjIOOeTiqN9p8d3o8+mmGKe3likt7i3j/AHaMjryODlSQcZB435oA8K+FsKj4G+NJhYxMzx3qtdDbvG21G1T3x874wTjc3AzzJ8LYFX4BeNrmKKETuLxJZCuGdFtVIG7rwWYgHjk9M5r1vSPBml6T4Vm0TTtIisrG/kf7baSXMkm5HXY+H3EglQOhGPrT9G8IaBpekah4f0rT1h0a581LyBpZi7yOiqwyxyAUxyD3GMdSAcB+zvb2114AvVlVXki1WR15wy5hiGeOR3/Ee1ez1heGfD2h+EtP/s7R7L+z4riVpvs7zl2Z8AEgszdlXoa3aAE2qGLYG4gAnHJH+SaWiigCG5tYbyExTpuQ+5B9Oo5HBI+hIqaiigApnlJ53m4+fbtJB6jrz6/0yfU0UUAEcSRbtgwGYsRnjJ6/T1+uT3p9FFADRGglaUD52UKT7DOP5mnUUUAIqqiBEUKqjAAGABS0UUANjjWGJI0GERQqj0Ap1FFAH//Z\",\"uuid\":\"4062c82d1b6c41db8901789411f34bc4\"}}'); +INSERT INTO `tbl_log` VALUES (9030, NULL, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:43:53', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9031, NULL, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:43:53', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9032, NULL, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:43:56', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+s6VrkTorkI8ykBA7MhwD8oYAFTjkNz/ABcHAqeaJ/t8Esbsg2lXATKvyCA3ccbsH1P4HkPF/wAV/C/gi7+wahc3F3qAIZ7W0jDvGrZILElVHGOM7sFTjBzQB18k7WqGSYs5cfJDGu47gpJVTxnheM9/qAHW8yzSylHkZPlKkqNhBGcowHIP1Ncf4I+Kvh/x7qNzYaZFfQXUEXnFLuJV3pkAkFWYcEr1x94YzzjqPMkmj+zyQ7pWDSeXcKArLuOBldwyPl9e3rwAyNib6GaO0ubhJFbcUZtnBP8AeKsQPlbjtyDjGBpgneV2nAAO7jB68f59a8I+H66PH8avF88F/qQuit41xHJZrGsJ+1Rk7XWVy+D6qARyeOK9teaRvJnjVDCzKATLtyrYAOCOuT068D1IoAmuEaWMIoyGYbiJWQgeoI5z7cfWoXmaO6mdQ8gRUXyU+8SSecHjHuPRs9OGXF2ltLm7lMSiQmEJkmRRHk5AycAlvToPx80t/wBofwbLYTzzQ6pBPEE22zQKzTEnB2ENt+XqdxXjpk8UAer8uin5oycEjjI9u49qguhOySIrBUcKgZM71y2GPHTgjB7HrxXKeDfiXoXj4XMGjSzW99ANxt72IB9nA3gKxBXJx97IPUcjPT6npsesaHeaVdyMI7y2e3meH5Th1KsVznB5OM5/GgC3GpRArSNIR/E2Mn8gBSEOJAQcqcAqTgDryOOT07//AF/n/wAefBzwT4M8HX+svqesmdE2Wsbzw/vJm4QY2AkZ+YgHO1WI6Vs/s8aFNpPhLVPEN0+yDUZFES4B/dw7wXyCTyzOMEA/JnnIoA9pG7LbiCM/LgYwMd/XnNLVeM26PHHCVTepkURqMOoAX091/IdqsUARSK4zJEoaXGArSFV6/j+eK+bdNvNL0P8AaO1ebxqP+XuQ2c9y+9IHZla3djnAURkAZzsyuQu3K/Rl7Nb4Szmn8p7nKp8oO71HII5zjn1rB8Q/Dvwz4ou4ptW0yGYRoq4UeWxC5CjemG2jcflzg/L6UDJdI8SeGtZ1022nXOnXF/Dbv5L2ssczeQGQN8yE7F3FPlJGcAgHBx0UciyxJIhyjgMp9Qa5Tw/8PfDfhHUpbrRLRLJrmNYmG9ndirb8B3YkA45UcHHPQYueKNavtH0G81HT9MuNXkjEUlva2YYNKDIoYblDZ4O77vIz15IBHkHws/5OF8a/9v3/AKVpXvU0sKiTzQCsSiVsgHABJBx142+n0rxX4LeGvEDeMvEXjDX9On02S88yMW81u0XmPLIJXKhjuCrtUDIOd3XKmvZrq0in3PPK4iCFWUEKNvU/NjcBwM844oAF3S200qb3WZNyR+Zg9McMDgA4BGOmSfp82/ALWtC0e+1warf6fY3M0cIhlu5BETFl/MVJDjacmM4zztHplfplXYyOpjZQuMMcYb6c5/PFfN/wm8CwS2XiW18ZeFp1RooJIHvbZ4pF2mQt5bHa3YE7WGQuOaALOh3S6r+0xqF54VniawdXM8ts6pG4MIR3xwJB5xD8Z3EbufvV9CSXIjEREUziQgAqnTJHUdR1z+B9s89oXhXRPCGn3UPhyztrGVmWW5USGUtgdGZzuwBkgZUZ54yc9BEZBIVMcgRl37mYHaT1Xrn37jr7UAeB/GrWr3xh4u0fwBo0TtKkqyXCMh4nYfLu+XIVIyWLKSpDk/w17fotjZWug6dYWU00lrYwxQwyM5BYIoUbiMBuOvGM544xWLpvgbw7D4pPiVdOujrJ/fLd3NxMzDepQoQzlSVXK4xwNo7ZrqPMd55I1wAm3lo2555weAeMdOh6+lADf3kE0rndJE7JtUZLKxO0/Rfun/vo1YqCdbguBFIFUjAITJVuuTk8rxjAGeeo6iegBixIkjyKuGfG7B64749ff2HoKfRRQAjIrjDKGGQcEZ5ByP1oVFQYRQoyTgDHJOSfzoooAWiiigBFVUUKoCqBgADAAo2qHLBRuIAJxyQOn8z+dFFADGt4XkMjRqzlDGSR1U9j6ipKKKACiiigAooooA//2Q==\",\"uuid\":\"b2dd51e50fa143c9ad493acb14080b37\"}}'); +INSERT INTO `tbl_log` VALUES (9033, NULL, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:43:56', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9034, 63, '用户', '43.168.32.240/1.9.116.218', '2026-09-30 07:44:14', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9035, NULL, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:44:14', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"cjp7\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"b2dd51e50fa143c9ad493acb14080b37\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (9036, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:44:14', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9037, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:44:14', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (9038, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:44:14', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9039, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:44:14', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9040, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:44:14', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9041, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 07:44:14', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9042, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:44:36', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9043, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:44:36', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9044, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:44:36', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9045, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:44:36', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9046, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:44:36', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9047, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:44:36', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9048, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:44:36', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9049, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:44:36', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9050, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:44:36', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9051, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:44:37', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9052, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:44:37', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9053, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 07:44:37', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9054, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:44:37', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9055, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:44:37', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9056, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:44:37', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9057, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-30 07:44:37', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9058, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 07:44:37', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9059, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 07:44:37', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9060, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:44:39', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9061, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:44:44', 0, 'AccountController.listWithBalance(..)', NULL, 'GET /apis/account/listWithBalance', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9062, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:44:44', 0, 'AccountController.getStatistics(..)', NULL, 'GET /apis/account/getStatistics', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"allCurrentAmount\":\"4375818.53\",\"allMonthAmount\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9063, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-09-30 07:44:48', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9064, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:44:48', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9065, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-09-30 07:44:48', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9066, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-09-30 07:44:48', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9067, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 07:44:48', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9068, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:44:49', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9069, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:44:49', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9070, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:44:49', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9071, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:44:49', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9072, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 07:44:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9073, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 07:44:49', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9074, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 07:44:49', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9075, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:44:50', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9076, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:44:50', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9077, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-09-30 07:44:50', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9078, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-09-30 07:44:50', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售,采购退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":167,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9079, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-09-30 07:44:50', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9080, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-09-30 07:44:50', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9081, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 07:44:50', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9082, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-09-30 07:44:52', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9083, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 07:44:52', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9084, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 07:44:52', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9085, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 07:44:52', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9086, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-09-30 07:44:52', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9087, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 07:44:52', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9088, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 07:44:52', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":41,\"rows\":[{\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718802000,\"creator\":63,\"debt\":595000.000000,\"defaultNumber\":\"SM2609180001\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discountLastMoney\":595000.000000,\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1721,\"lastDebt\":595000.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79\",\"number\":\"SM2609180001\",\"operTime\":1789733163000,\"operTimeStr\":\"2026-09-18 16:06:03\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"totalPrice\":595000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":183.600000,\"defaultNumber\":\"SM2608070007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1423,\"lastDebt\":183.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1836.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608070007\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":183.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":2077650.000000,\"defaultNumber\":\"SM2608070002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1422,\"lastDebt\":2077650.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":9500.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608070002\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":2077650.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2608060005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1421,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608060005\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":816.000000,\"defaultNumber\":\"SM2608060004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1420,\"lastDebt\":816.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":8160.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608060004\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784836800000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2607240005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1419,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607240005\",\"operTime\":1784836800000,\"operTimeStr\":\"2026-07-24 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":551124.000000,\"defaultNumber\":\"SM2607230004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1418,\"lastDebt\":551124.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230004\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":551124.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":1285956.000000,\"defaultNumber\":\"SM2607230002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1417,\"lastDebt\":1285956.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5880.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230002\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1285956.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":1020.000000,\"defaultNumber\":\"SM2607220006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1416,\"lastDebt\":1020.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":10200.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607220006\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":275562.000000,\"defaultNumber\":\"SM2607220004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1415,\"lastDebt\":275562.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607220004\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":275562.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9089, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-09-30 07:44:59', 0, 'HeadquartersInboundController.details(..)', NULL, 'GET /apis/headquartersInbound/details', '{\"headerId\":1721}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"id\":751,\"depotId\":\"25\",\"depotName\":\"半成品仓库\",\"barCode\":\"1PH-WS79\",\"materialCode\":\"1PH-WS79\",\"name\":\"1PH WS79\",\"materialName\":\"1PH WS79\",\"standard\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"operNumber\":10000.000000,\"qtyPriceAmount\":10000.000000,\"unitPrice\":59.500000,\"finallyPrice\":59.500000,\"allPrice\":595000.000000,\"totalMoney\":595000.000000,\"itemJson\":\"{\\\"出货量\\\": 10000, \\\"价税合计\\\": 595000.0, \\\"商品单价\\\": 59.5, \\\"成品名称\\\": \\\"1PH WS79\\\", \\\"规格型号\\\": \\\"1PH WS79\\\", \\\"成品物料代码\\\": \\\"1PH-WS79\\\"}\"}]}}'); +INSERT INTO `tbl_log` VALUES (9090, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-09-30 07:45:07', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (9091, NULL, '接口日志', '43.174.54.44/1.9.116.218', '2026-09-30 07:45:07', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9092, NULL, '接口日志', '43.174.32.12/1.9.116.218', '2026-09-30 07:45:07', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9093, NULL, '接口日志', '43.174.55.40/1.9.116.218', '2026-09-30 07:45:08', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9094, NULL, '接口日志', '43.152.142.140/1.9.116.218', '2026-09-30 07:45:08', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3eW4i8wxrdxRyRfPIhYH5O+R1Awev07cGOGS5W+8iXDpsd94A4+f5RnP9327dTzSrDDDMIGiDLIJCrtg8s25l6d8598HPTnzTxL8J7fxf4uv7/XvEF7HpUQVbLT7ZsC2XyowXy4KopKPkKuDgfNnK0AenTXcdvOEmKxxmMuJGYADBAIOen3lx+PTu/LzQZQtE56bl5BB6Edx9Oo6HvXzsINR+Enxe0Tw/oOqXc+k6qYGksr1gVHnSeU2dvy7wUBDgAjgcgHd9CqIrsq8lu6vGcgSLjB/keR+YB9DQBYO7K4IAzzkdR/nFRyGUuEjG0FSfM4O0gjAx3zz+XvXlfiD4G+Dbu/1LXdT1fVLUXE0l1cObmFIoyzFm5aPhQT3Neb/A7QItS+Kdxq2mvMmlaUJZIvtGwyusgaONWAIw20liQCMrjjIoA+oHJVGYKWIGQoxk+3NNlRpIyqyvET/GgGR+YI/SsvX9UTTNG1C9mtZpIrG3e7YgDH7td4x8wzyuMe3OAQT8x22q6T46vptb+JPiy4t7d5nitLCx3M0BwhLBNriOLbgf3nKk5JUkgH1bNI6PEibNzE8PkZwDwD65x+GfSnOZGgYxqFlK5USdA2OM4/pXnXwm8P6Bp2kXl34W1241LRL1gslvdfMYpk3ByOF27lMfDICQqnoRjtdU0xdW0a90uaN47a4tpbR1hcBvLdcZTPAOOORwfbqAXoHmcIzeS0bJu3xuTyTwBxyMd88+goZj9sjUCQjY2cZ2jOOTxgnj1zz05yPAvHnwc8E+DPB1/rL6nrJnRNlrG88P7yZuEGNgJGfmIBztViOla/7O/hq4sfDl5r8wG3UplSBc4Iji3qWyCc5diu0gfczzxQB7JHNC90yrKxkIKmM5wu088dj8w+owRxVikJO8LtOCCd3GB7f59KWgCqAubiK3mgjkkBZdijcrdCxGfm5/livMfiv8VYvB2nHQtOlivPEM0IWV2QFLZSPvuvQsRyE6c5PGA3p7RBUnSRnMbkyKIlKlRgZGV5JJyfU5Ncjqnwz8G+KNbvdV1XRWuLuYpvmNzNHnEagDaGXBAA7d+ucgAHmXww0nR7/X4PF/i7xNpN94jv5le0tJLyOR43JG0sgPEhAwi8CP5eN2AnvYmmF+0JidoioYSKgCp14JLcnjsOMjNcPp3wn8D6TfWN/B4cmiubdxNHK11M7JIhDKSocg5xn04x3xXetKEk2upVMD94SAuScBeuc/hQB5b8d/Ew0DwcbKKUi81YG2iC5BSIf65s4IYEMibSR97I6Vo/CzwVceHvhxa2F40kNzeyC/uEYZKM23EZVlG3CImQc/Nu7cHX1zwD4U8UyC51nTpLqSAv8AILqcBGPLYRWAyeOcZIC9sV0Tm8MUIhZW3Ku6Rl2lT1yVPUHpjgj17g3ApeI9NvtZ8N61pcLW6NeWk1vAzlsZeIqN2BxhjnIzx2rwD4Sp4KsdK1KDxXBp8Wsw32x4dVjiGUAACASg7SGEucbewYj5cfRU8Ya8Eot5TPEo2yREDcpI+U5wD/FxzgDPBIrn9f8Ahl4S8Ua02q6vpEdxcvGI3dZZIi23oTsYZOOMnJwFHAFAHk3wQiz8RvFk+gy+X4eVWjhLsxT5px5GUZgxOxZACeRk55OD78BgLbW4KLEFG8YYAAj5OuclfbvmqGieH7Dw/ELPTdNsbSyj/wBSsEeHztVSzHqzHGCxOflGSc8X5CkrKFWQFpQvmRY/h+bkj+HIKnPckd6APB/jdq914r8Z6P8AD7SSC6zI85ZTtE0gwm75chUjYsSpIw5yMrXtdhp8egaDp1gt0Ps+nxQ26SSA5KKgQbsEDJ656D04zWSPAfh+28QP4qNgh11WaU3c11My5wVPDOQo28AYITjHQV0SSwXkCz7mWIs0ZWQYDc7cFT7j69u5FAErQAvvDyK24Nw5xx2weMEe3v1walqI+Xd2/DPsbujMjDB6ZGCDkcj8KloAKKKKACiiigAooooAKRVVEVEUKqjAUDAAoooAaIY1hMOwGMgjYeRg9vp7UscaxRhEGFHvn8Se596KKAGtbxM8jsgYyII3zyGUZ4x0/iP50LDGsYjCDYpyFPIHORj6dvSiigCSiiigD//Z\",\"uuid\":\"68e217cfc29d48a5932f9783c4863112\"}}'); +INSERT INTO `tbl_log` VALUES (9095, NULL, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:49:06', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9096, NULL, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 07:49:06', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9097, NULL, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:49:07', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9098, NULL, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:49:07', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3uUyKoaNQxByVPVh7H1+v6dQySFpmgmDyRPGd23dwQRghgDg+3ofyLLmFXdvO3/Z2jBdvN2hChyCMYIJyTnP8Irwh2K/tcswUsQMhRjJ/0DpzxQB73HJFeRJLDKSgc4ZDwcEg/Udf5jsahtppLlVZkdQY8rOhARgcYIUnIPfkccjJ78Tb/FTw54j8UyeEtKt9T1CV2MbXdoqeQFA+Z95cHaOecHOON2RnrJ7r+zLi+maOScCMSbEK5A+bALOwHzNkAZCjGTjJNMC+ZmjmjikC/PhQ+cbmwxIA5x93ue/tUkaNHGFaRpCP4mxk/kAK4vwT8TNE8aQ3S6Zb6kpsvKR/tUa7n3ByCNrNkgRsT09sk4puifETSNf8e33hvT7HUkvrJ5lu5THCsRETbCxO8uRuwBgZ+YZGM4QHakt9oA2ybAhO75dpOenrn9OaXc4bBTILYBU9Bjqfx44z2/BolYCPfEwZ2KkLyF4JyT6cfqOlfOfwC1ex0PSPGF/qVwlvaRpbb5Xk2BeJ8cj5snoAoLZIwKAPoi9LGBo0jaRyMiNJvLY49CMd8Z9j+BjsrmSa4uI5GUtFtX5BhT1yR+II68EEdsnkvAfj6Hx5DO1hp+opFa5Bvb2CMRmQ4woKvywBOQB0wSV3AHodS1Sy8N2t1qWozRWtmsDXE+BwHG0HByMlsqAMZJx3OChrY0bVpwPJuBukRV/ejpJ1GenB4yR2yOaQySuVjbfAzlwNi7+h4O7BUZA6H19q8itv2gfCV1cmK9h1iOGWTaC1tGI4VyMMSrl8jqSMn0HAr1ez1G1uNIsL21lae0uYkkimY7SyMu4Od2D93k8Z9qYiQTXMk0UbRLCGRZGPmgsDnlQMHIHAJ4+9xVuooRuRJHaOR9pxIi4BB545PHA79qloArzLJJMIvOVI2QkbTiQMCOR2I55GPTOQcV8u/EHR9R1/48arpegOqXdxAqwhZfLDqLJSyBhxhkDLzwd2CQM19Tyx+bC8e903qV3IcMue4PrXNXHgzw7aeJz4wj0wnWo12rIs7gMSgiA252/d+UYHfoTigDy74Hat4fhs5fCtzps1l4kS4Zpw0hje52sTk5IIMeMeX1GCwBJfHurpDcI8UipKucMjAMM8Hkfka5LVPh54V1PXINU1HSAdS8wLDdW1xLCw2AsjHY4wy4wDyflXGAAB1NrbfZvMy27c2QcsTjtnJOT7/T0FAHzD48XUPhx8UdV1S1id7bWIZ3jkYBl8yQZcBimCY5sNgc7QqsfmNd1+z14XFp4bn8RSwMtzfzMkMxKMPIj+UgY+YbnL5B4PloccDPN/E218TfEPxfbaPbeE7uyjsb+e1XUpkcQzKzIqu77AAuEBHLEhgBk9ffNHtYdI0O00mzc3A063ithuIDMqKFz6Z+U+2QRxg4AuaTuI0ZyCQoJO0En8AOTXw9pega1q3hrWb/TlkmsNOeGW9gRjkAiQLLs6EKA+T1UOT03EfcEUSQxiONdqL0GensPb27VheGPBPh3wd9q/sDT/ALH9q2ed++kk3bc7fvscY3N09aAMX4YeJvD2ueEol8P2cdjb2aBZrCPl7Z8chu77sEh/4uc4YEVZ+JNjpl74B1eLxBqslhp7IqtcQws/lEyIYyUGS3zhQcY4J6dQ7Rfh94Y0DxHNqel6b9hv33P5lvNKkbIx+ZPL3lCAQONoAyuACBjpdQsLbVLNrO9tra5tZCPMhuYRKjgHPKnjqARnPSgD5mu5Nb8DeFL+28O/Efw7qehZz9hzFJPMJNqOPJdXwuSSRuwQCccmve/h1r3/AAkvw/0fVfsUFl5kRj+z24xGnls0fyD+FfkyF7A4ycZrnL74T/DvShHMPDyCTOY2mubh49wIwGG459cEYODXodpZRWKeVbjy7cKqxwKAI4lVQoCADgYA46elAD0iInaV/KLEbVKphgM9CcnP6VLUEckpQPMFh+fGGxkg8AcHAOcdzn2zgT0ANSNY92wY3MWI7ZPWlZVdGR1DKwwQRkEUUUADKrDDKCMg4I7jkUtFFACBVUsQoBY5JA6np/QUBVUsQoBY5JA6np/QUUUALRRRQBHPBHcwPDMgeNxhgakoooAaY0MqykfOqlQfY4z/ACFOoooARlVhhgCMg4I7jkUtFFAH/9k=\",\"uuid\":\"6697bcb0bd4d4e36bedaab83f33a8eb7\"}}'); +INSERT INTO `tbl_log` VALUES (9099, 63, '用户', '43.152.157.121/1.9.116.218', '2026-09-30 07:49:21', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9100, NULL, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:49:21', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"kyks\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"6697bcb0bd4d4e36bedaab83f33a8eb7\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (9101, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:49:21', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9102, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:49:21', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (9103, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:49:21', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9104, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:49:22', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9105, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 07:49:22', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9106, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:49:22', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9107, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:49:31', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9108, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:49:31', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9109, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:49:31', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9110, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:49:31', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9111, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 07:49:31', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9112, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 07:49:31', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9113, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:49:31', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9114, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 07:49:31', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9115, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:49:31', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9116, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:49:33', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9117, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:49:33', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9118, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:49:33', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9119, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:49:33', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9120, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 07:49:33', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9121, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:49:33', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9122, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 07:49:33', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9123, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:49:33', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":50,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9124, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:49:33', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9125, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:49:33', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9126, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:49:36', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9127, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:49:36', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9128, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:49:36', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9129, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:49:36', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9130, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:49:36', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9131, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:49:39', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-09-30\"}}'); +INSERT INTO `tbl_log` VALUES (9132, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 07:49:45', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9133, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 07:49:45', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9134, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:49:46', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (9135, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:49:47', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9136, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:49:47', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9137, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 07:50:18', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-383\",\"assetName\":\"Epson Epson LQ-310\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"383\",\"externalSource\":\"HARDWARE\",\"id\":20,\"keeper\":\"Hab\",\"location\":\"Admin Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: R9DY417590\",\"source\":\"SAS\",\"specification\":\"Printer / Epson / Epson LQ-310\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Ad\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-384\",\"assetName\":\"H3C H3C UniServer R3950 G6\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"384\",\"externalSource\":\"HARDWARE\",\"id\":19,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 210235A4V0H259000004\",\"source\":\"SAS\",\"specification\":\"Server / H3C / H3C UniServer R3950 G6\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-385\",\"assetName\":\"TP-Link Omada SG3452\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"385\",\"externalSource\":\"HARDWARE\",\"id\":18,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 225B0AN000371;MAC: 6C-4C-BC-C9-F0-8A\",\"source\":\"SAS\",\"specification\":\"Switch / TP-Link / Omada SG3452\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-387\",\"assetName\":\"HP HP LaserJet MFP M236sdw\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"387\",\"externalSource\":\"HARDWARE\",\"id\":17,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: VNP5F19044\",\"source\":\"SAS\",\"specification\":\"Printer / HP / HP LaserJet MFP M236sdw\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Prod\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-389\",\"assetName\":\"Lenovo ThinkPad T14s 2-in-1\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"389\",\"externalSource\":\"HARDWARE\",\"id\":16,\"keeper\":\"Syed Bakri\",\"location\":\"Admin\",\"originalValue\":0.000000,\"purchaseDate\":1787169600000,\"quantity\":1.000000,\"remark\":\"序列号: PF6EN008\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad T14s 2-in-1 / Win 11 Home / Core Ultra 5 / 16G / 500G SSD\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"GM\"}]}}'); +INSERT INTO `tbl_log` VALUES (9138, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:50:21', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"PTC8320M\",\"assetName\":\"Dell OptiPlex 7070\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"191\",\"externalSource\":\"HARDWARE\",\"id\":30,\"keeper\":\"Fitri\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: DCH5F13\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7070 / Win 10 Pro / Core i5-8500 / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-190\",\"assetName\":\"Microsoft Surface Pro 7 @1866\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"190\",\"externalSource\":\"HARDWARE\",\"id\":29,\"keeper\":\"CEO\",\"location\":\"CEO\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 065060402353\",\"source\":\"SAS\",\"specification\":\"Laptop / Microsoft / Surface Pro 7 @1866 / Core i5-1035G4 / 8G / 128G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"CEO\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP16/112004\",\"assetName\":\"HP HP 14s-cf3022tx\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"189\",\"externalSource\":\"HARDWARE\",\"id\":28,\"keeper\":\"Habsah\",\"location\":\"Admin\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5CG03082JY;原备注: MTPH4-NH3DW-BRKQY-YMVFB-88F72\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / HP 14s-cf3022tx / Win 11 Pro / Core i5-1035G1 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Admin\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/PC007\",\"assetName\":\"HP All-in-One 24-dp0209d\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"188\",\"externalSource\":\"HARDWARE\",\"id\":27,\"keeper\":\"Habsah\",\"location\":\"Admin\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8CC10109H6;用途: test\",\"source\":\"SAS\",\"specification\":\"All-In-One / HP / All-in-One 24-dp0209d / Win 11 Pro / AMD Ryzen 5 4500U / 24G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Admin\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-377\",\"assetName\":\"ScreenBeam ScreenBeam 1100 Plus\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"377\",\"externalSource\":\"HARDWARE\",\"id\":26,\"location\":\"Meeting Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: CBKB52500329;用途: Smartboard add-on for presentation\",\"source\":\"SAS\",\"specification\":\"Other / ScreenBeam / ScreenBeam 1100 Plus\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Admin\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-378\",\"assetName\":\"Prolink Prolink 3KVA/2700W\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"378\",\"externalSource\":\"HARDWARE\",\"id\":25,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 535101254800056;用途: UPS for servers and switches.\",\"source\":\"SAS\",\"specification\":\"Other / Prolink / Prolink 3KVA/2700W\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-379\",\"assetName\":\"TP-Link Omada Controller OC220\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"379\",\"externalSource\":\"HARDWARE\",\"id\":24,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 225906R001139;MAC: 3C-78-95-33-F9-5A;用途: Network controller\",\"source\":\"SAS\",\"specification\":\"Other / TP-Link / Omada Controller OC220\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-380\",\"assetName\":\"Canon Canon Imageclass mf633cdw\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"380\",\"externalSource\":\"HARDWARE\",\"id\":23,\"location\":\"CEO Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: WUE14822\",\"source\":\"SAS\",\"specification\":\"Printer / Canon / Canon Imageclass mf633cdw\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"CEO\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-381\",\"assetName\":\"HP HP LaserJet 1020\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"381\",\"externalSource\":\"HARDWARE\",\"id\":22,\"keeper\":\"Wan Rosli\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: CNCK596090\",\"source\":\"SAS\",\"specification\":\"Printer / HP / HP LaserJet 1020\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Store\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-382\",\"assetName\":\"HP HP LaserJet 1020\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"382\",\"externalSource\":\"HARDWARE\",\"id\":21,\"keeper\":\"Juwairiah\",\"location\":\"Finance Mgr Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: CNCKC63735\",\"source\":\"SAS\",\"specification\":\"Printer / HP / HP LaserJet 1020\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Finance\"}]}}'); +INSERT INTO `tbl_log` VALUES (9139, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:50:25', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/047CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"201\",\"externalSource\":\"HARDWARE\",\"id\":40,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/047PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"200\",\"externalSource\":\"HARDWARE\",\"id\":39,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/046CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"199\",\"externalSource\":\"HARDWARE\",\"id\":38,\"keeper\":\"Ariffin\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: LH5TTC3;用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Core i3-10100\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/046PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"198\",\"externalSource\":\"HARDWARE\",\"id\":37,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/045CPU\",\"assetName\":\"Cooto\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"197\",\"externalSource\":\"HARDWARE\",\"id\":36,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / Cooto\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/045PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"196\",\"externalSource\":\"HARDWARE\",\"id\":35,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/044CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"195\",\"externalSource\":\"HARDWARE\",\"id\":34,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BFHW;用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 240G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/044PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"194\",\"externalSource\":\"HARDWARE\",\"id\":33,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/043CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"193\",\"externalSource\":\"HARDWARE\",\"id\":32,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/043PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"192\",\"externalSource\":\"HARDWARE\",\"id\":31,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"}]}}'); +INSERT INTO `tbl_log` VALUES (9140, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:50:27', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP3/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"211\",\"externalSource\":\"HARDWARE\",\"id\":50,\"keeper\":\"Hasmah\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1Q9H0C;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-8650U / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU003\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"210\",\"externalSource\":\"HARDWARE\",\"id\":49,\"keeper\":\"Sharida\",\"location\":\"HR Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMV5\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Finance\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-209\",\"assetName\":\"HP All-in-One 24-dp0209d\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"209\",\"externalSource\":\"HARDWARE\",\"id\":48,\"keeper\":\"Juwairiah\",\"location\":\"Finance Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8CC10114RG\",\"source\":\"SAS\",\"specification\":\"All-In-One / HP / All-in-One 24-dp0209d / Win 11 Home / AMD Ryzen 5 4500U / 24G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Finance\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP2/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"208\",\"externalSource\":\"HARDWARE\",\"id\":47,\"keeper\":\"Juwairiah\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1VB7AE;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 10 Pro / Core i7-10510U / 16G / 256G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Finance\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-207\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"207\",\"externalSource\":\"HARDWARE\",\"id\":46,\"keeper\":\"Adha\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BFJM\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/047\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"206\",\"externalSource\":\"HARDWARE\",\"id\":45,\"keeper\":\"Ilham\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BNS9\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 10 Pro / Core i5-10500 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP20/112004\",\"assetName\":\"HP HP 14s-cf3022tx\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"205\",\"externalSource\":\"HARDWARE\",\"id\":44,\"keeper\":\"Adha\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5CG03082JK\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / HP 14s-cf3022tx / Win 10 Home / Core i5-1035G1 / 8G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP5/112004\",\"assetName\":\"Lenovo ThinkPad X1\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"204\",\"externalSource\":\"HARDWARE\",\"id\":43,\"keeper\":\"Amir\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1V7QXT\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 / Win 10 Pro / Core i7-10510U / 16G / 256G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/CPU/053,SMT/N02/CPU046\",\"assetName\":\"Dell Vostro 230\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"203\",\"externalSource\":\"HARDWARE\",\"id\":42,\"keeper\":\"Halimaton\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 2VBK92S\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / Vostro 230 / Win 7 Pro / Pentium Dual Core E6700 / 4G / 320G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production 2\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP13/112004\",\"assetName\":\"HP HP 14s-cf2036tx\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"202\",\"externalSource\":\"HARDWARE\",\"id\":41,\"keeper\":\"Fitri/Hanif\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5CG011D1XR;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / HP 14s-cf2036tx / Win 10 Home / Core i7-1051U / 8G / 500GB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"}]}}'); +INSERT INTO `tbl_log` VALUES (9141, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 07:50:29', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/031PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"221\",\"externalSource\":\"HARDWARE\",\"id\":60,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU020\",\"assetName\":\"HP HP Pro 3330 MT\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"220\",\"externalSource\":\"HARDWARE\",\"id\":59,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: SGH221S6SH;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / HP Pro 3330 MT / Win 10 Pro / Core i7-2600 / 8G / 220G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/030PC\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"219\",\"externalSource\":\"HARDWARE\",\"id\":58,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDPN;用途: Testing / Lab;原备注: Windows License Key : QRWJ7-2N8MF-TM9WY-HKB42-VFR9C\\n\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"218\",\"externalSource\":\"HARDWARE\",\"id\":57,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMSP;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"217\",\"externalSource\":\"HARDWARE\",\"id\":56,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP19/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"216\",\"externalSource\":\"HARDWARE\",\"id\":55,\"keeper\":\"Hasmah\",\"location\":\"Not Specified\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified;原备注: RETURN TO SUPPLIER DUE THE PROBLEM\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"REPAIR\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP18/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"215\",\"externalSource\":\"HARDWARE\",\"id\":54,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP17/11112024\",\"assetName\":\"HP Pro Book 440\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"214\",\"externalSource\":\"HARDWARE\",\"id\":53,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Pro Book 440\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP16/11112024\",\"assetName\":\"HP Radeon Intel Core i5\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"213\",\"externalSource\":\"HARDWARE\",\"id\":52,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Radeon Intel Core i5\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-212\",\"assetName\":\"HP All-in-One 24-dp0209d\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"212\",\"externalSource\":\"HARDWARE\",\"id\":51,\"keeper\":\"Hasmah\",\"location\":\"HR Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8CC10109F6\",\"source\":\"SAS\",\"specification\":\"All-In-One / HP / All-in-One 24-dp0209d / Win 10 Home / AMD Ryzen 5 4500U / 24G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"}]}}'); +INSERT INTO `tbl_log` VALUES (9142, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:50:55', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false,\"mId\":699}', '{\"code\":200,\"data\":{\"total\":17,\"rows\":[{\"unitPrice\":0.100000,\"number\":\"CGRK00000001721\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":0.700000000000,\"basicNumber\":7.000000,\"type\":\"采购入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2026-09-18 11:44:34\"},{\"unitPrice\":0.100000,\"number\":\"SM2512300003\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":471.300000000000,\"basicNumber\":4713.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-12-30 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2512260022\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":496.000000000000,\"basicNumber\":4960.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-12-26 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2512260011\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":273.000000000000,\"basicNumber\":2730.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-12-26 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2512100033\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":504.000000000000,\"basicNumber\":5040.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-12-10 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2512030024\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":496.000000000000,\"basicNumber\":4960.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-12-03 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2512030024\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":504.000000000000,\"basicNumber\":5040.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-12-03 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2511260001\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":420.000000000000,\"basicNumber\":4200.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-11-26 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2511260006\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":504.000000000000,\"basicNumber\":5040.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-11-26 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2510300018\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":1.000000000000,\"basicNumber\":10.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-10-30 00:00:00\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9143, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:50:57', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":2,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false,\"mId\":699}', '{\"code\":200,\"data\":{\"total\":17,\"rows\":[{\"unitPrice\":0.100000,\"number\":\"SM2510300015\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":999.000000000000,\"basicNumber\":9990.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-10-30 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2509250039\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":1000.000000000000,\"basicNumber\":10000.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-09-25 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2508200021\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":11.000000000000,\"basicNumber\":110.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-08-20 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2508150005\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":527.000000000000,\"basicNumber\":5270.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-08-15 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2508130002\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":462.000000000000,\"basicNumber\":4620.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-08-13 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2504010007\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":829.000000000000,\"basicNumber\":8290.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-04-01 00:00:00\"},{\"unitPrice\":0.100000,\"number\":\"SM2503260006\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"depotName\":\"半成品仓库\",\"allPrice\":199.000000000000,\"basicNumber\":1990.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.4.T.0.00654\",\"operTime\":\"2025-03-26 00:00:00\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9144, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 07:51:12', 0, 'ProductionReportController.getList(..)', NULL, 'GET /apis/productionReport/list', '{\"search\":\"{\\\"reportNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9145, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:51:12', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9146, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:51:14', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9147, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:51:14', 0, 'ProductionRequisitionController.getList(..)', NULL, 'GET /apis/productionRequisition/list', '{\"search\":\"{\\\"requisitionNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1790242827000,\"createTime\":1789720317000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":9,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"1\"},{\"createTime\":1789719809000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":8,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (9148, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:51:14', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9149, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:51:16', 0, 'ProductionRequisitionController.getDetail(..)', NULL, 'GET /apis/productionRequisition/getDetail', '{\"id\":8}', '{\"code\":200,\"data\":{\"requisition\":{\"createTime\":1789719809000,\"creator\":63,\"deleteFlag\":\"0\",\"depotId\":25,\"id\":8,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"},\"rows\":[{\"deleteFlag\":\"0\",\"requisitionId\":8,\"materialExtendId\":125,\"unit\":\"件\",\"requiredQuantity\":10000.000000,\"depotId\":25,\"issuedQuantity\":10000.000000,\"name\":\"MD-4G111(VF) 包装\",\"id\":25,\"materialId\":705,\"materialSku\":\"\",\"barCode\":\"1001\"}]}}'); +INSERT INTO `tbl_log` VALUES (9150, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:51:40', 1, 'ProductionRequisitionController.updateRequisition(..)', NULL, 'PUT /apis/productionRequisition/updateRequisition', '{\"obj\":{\"requisitionNumber\":\"LL20260918122329111\",\"creator\":63,\"depotName\":\"半成品仓库\",\"orderNumber\":\"GD20260918122018493\",\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"depotId\":25,\"creatorName\":\"admin\",\"remark\":\"11\",\"rows\":[{\"id\":\"25\",\"barCode\":\"1001\",\"name\":\"MD-4G111(VF) 包装\",\"unit\":\"件\",\"requiredQuantity\":\"10000\",\"issuedQuantity\":\"10000\",\"remark\":\"\",\"depotId\":\"25\"}],\"itemCount\":1,\"deleteFlag\":\"0\",\"createTime\":\"2026-09-18T08:23:29.000+0000\",\"id\":8,\"status\":\"2\"}}', 'com.reallin.smt.exception.BusinessRunTimeException: 只有待确认状态的领料单才能修改'); +INSERT INTO `tbl_log` VALUES (9151, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:51:44', 0, 'ProductionRequisitionController.getDetail(..)', NULL, 'GET /apis/productionRequisition/getDetail', '{\"id\":8}', '{\"code\":200,\"data\":{\"requisition\":{\"createTime\":1789719809000,\"creator\":63,\"deleteFlag\":\"0\",\"depotId\":25,\"id\":8,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"},\"rows\":[{\"deleteFlag\":\"0\",\"requisitionId\":8,\"materialExtendId\":125,\"unit\":\"件\",\"requiredQuantity\":10000.000000,\"depotId\":25,\"issuedQuantity\":10000.000000,\"name\":\"MD-4G111(VF) 包装\",\"id\":25,\"materialId\":705,\"materialSku\":\"\",\"barCode\":\"1001\"}]}}'); +INSERT INTO `tbl_log` VALUES (9152, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 07:51:54', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9153, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:51:54', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"orderNumber\\\":\\\"\\\",\\\"sourceNumber\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9154, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 07:51:56', 0, 'ProductionOrderController.getOrderDetail(..)', NULL, 'GET /apis/productionOrder/getOrderDetail', '{\"id\":11}', '{\"code\":200,\"data\":{\"logs\":[{\"createTime\":1789719619000,\"id\":53,\"operationDesc\":\"创建生产工单,数量:10000\",\"operationType\":\"创建工单\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1789719775000,\"id\":54,\"operationDesc\":\"工单审批通过并下达\",\"operationType\":\"审批下达\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1789719809000,\"id\":55,\"operationDesc\":\"生成领料单[LL20260918122329111]\",\"operationType\":\"生成领料单\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1789720311000,\"id\":56,\"operationDesc\":\"领料单[LL20260918122329111]被驳回:11\",\"operationType\":\"领料驳回\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1789720317000,\"id\":57,\"operationDesc\":\"生成领料单[LL20260918123156921]\",\"operationType\":\"生成领料单\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1790242827000,\"id\":58,\"operationDesc\":\"领料单[LL20260918123156921]确认发料,出库单号[LL20260924134027104]\",\"operationType\":\"领料发料\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"}],\"order\":{\"sourceId\":1719,\"orderNumber\":\"GD20260918122018493\",\"outputQuantity\":10000.000000,\"releaseTime\":1789719775000,\"auditBy\":\"admin\",\"productMaterialExtendId\":123,\"outputBarCode\":\"1PH-WS79\",\"outputMaterialId\":703,\"finishedQuantity\":0.000000,\"remark\":\"\",\"orderQuantity\":10000.000000,\"deleteFlag\":\"0\",\"productMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"id\":11,\"planEndDate\":\"2026-09-25\",\"bomId\":18,\"creator\":63,\"releaseBy\":\"admin\",\"priority\":\"0\",\"sourceNumber\":\"XSDD00000001726\",\"auditTime\":1789719775000,\"createTime\":\"2026-09-18 12:20:19\",\"sourceType\":\"销售订单\",\"outputMaterialExtendId\":123,\"planStartDate\":\"2026-09-18\",\"status\":\"1\"}}}'); +INSERT INTO `tbl_log` VALUES (9155, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:52:31', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9156, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:52:33', 0, 'PackBomController.getPackBomDetail(..)', NULL, 'GET /apis/packBom/getPackBomDetail', '{\"id\":18}', '{\"code\":200,\"data\":{\"bom\":{\"creator\":63,\"productMaterialExtendId\":123,\"outputBarCode\":\"1PH-WS79\",\"outputMaterialId\":703,\"version\":\"v1.0\",\"enabled\":true,\"bomNumber\":\"BOM00000001735\",\"deleteFlag\":\"0\",\"productMaterialId\":703,\"outputNumber\":1.000000,\"createTime\":1789719259000,\"outputMaterialExtendId\":123,\"bomName\":\"v1.0\",\"id\":18},\"rows\":[{\"deleteFlag\":\"0\",\"materialExtendId\":125,\"bomId\":18,\"unit\":\"件\",\"quantity\":1.000000,\"name\":\"MD-4G111(VF) 包装\",\"remark\":\"\",\"id\":26,\"materialId\":705,\"materialSku\":\"\",\"barCode\":\"1001\"}]}}'); +INSERT INTO `tbl_log` VALUES (9157, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:52:37', 0, 'PackBomController.getPackBomDetail(..)', NULL, 'GET /apis/packBom/getPackBomDetail', '{\"id\":18}', '{\"code\":200,\"data\":{\"bom\":{\"creator\":63,\"productMaterialExtendId\":123,\"outputBarCode\":\"1PH-WS79\",\"outputMaterialId\":703,\"version\":\"v1.0\",\"enabled\":true,\"bomNumber\":\"BOM00000001735\",\"deleteFlag\":\"0\",\"productMaterialId\":703,\"outputNumber\":1.000000,\"createTime\":1789719259000,\"outputMaterialExtendId\":123,\"bomName\":\"v1.0\",\"id\":18},\"rows\":[{\"deleteFlag\":\"0\",\"materialExtendId\":125,\"bomId\":18,\"unit\":\"件\",\"quantity\":1.000000,\"name\":\"MD-4G111(VF) 包装\",\"remark\":\"\",\"id\":26,\"materialId\":705,\"materialSku\":\"\",\"barCode\":\"1001\"}]}}'); +INSERT INTO `tbl_log` VALUES (9158, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:52:48', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9159, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:52:48', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9160, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 07:52:48', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9161, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:52:48', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9162, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 07:52:48', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"采购退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9163, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:52:48', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9164, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:52:48', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9165, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:52:49', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9166, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 07:52:49', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9167, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:52:49', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9168, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:52:49', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9169, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:52:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9170, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 07:52:49', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9171, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:52:49', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720142000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGRK00000001740\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1724,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001739\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGRK00000001740\",\"operTime\":1789734542000,\"operTimeStr\":\"2026-09-18 16:29:02\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":100000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717476000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGRK00000001721\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1717,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001720\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGRK00000001721\",\"operTime\":1789717474000,\"operTimeStr\":\"2026-09-18 11:44:34\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":0.700000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9172, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:52:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9173, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:52:51', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9174, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 07:52:51', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9175, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:52:51', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9176, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:52:51', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9177, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:52:51', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9178, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 07:52:51', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9179, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:52:51', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"采购订单\\\",\\\"linkApply\\\":\\\"\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720113000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGDD00000001739\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1723,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001738\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGDD00000001739\",\"operTime\":1789734505000,\"operTimeStr\":\"2026-09-18 16:28:25\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":100000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717459000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGDD00000001720\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1716,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001719\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGDD00000001720\",\"operTime\":1789717452000,\"operTimeStr\":\"2026-09-18 11:44:12\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":0.700000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9180, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:52:52', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9181, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:52:52', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9182, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:52:52', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9183, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 07:52:52', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9184, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 07:52:52', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9185, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:52:55', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"QGD00000001738\"}', '{\"code\":200,\"data\":{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"depotHeadType\":\"请购单其它\",\"discountLastMoney\":0,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1722,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (9186, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:52:55', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9187, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:52:55', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1722,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"MD-4G111(VF) packing\",\"materialExtendId\":125,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"preNumber\":10000.000000,\"depotId\":\"\",\"purchaseDecimal\":10.000000,\"imgName\":\"\",\"operNumber\":10000.000000,\"anotherDepotId\":\"\",\"basicNumber\":10000.000000,\"model\":\"MD-4G111(VF)\",\"id\":1527,\"enableSerialNumber\":\"0\",\"stock\":0.000000,\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"op\":1,\"depotName\":\"\",\"weight\":0,\"imgSmall\":\"\",\"barCode\":\"1001\",\"unit\":\"件\",\"name\":\"MD-4G111(VF) 包装\",\"imgLarge\":\"\"},{\"allPrice\":0,\"finishPurchaseNumber\":0,\"operNumber\":10000.000000,\"taxLastMoney\":0,\"weight\":0,\"taxMoney\":0,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (9188, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:52:55', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"QGD00000001738\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9189, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:52:55', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1722}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9190, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:52:55', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9191, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:53:09', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9192, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 07:53:18', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9193, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 07:57:43', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9194, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:57:51', 0, 'RoleController.getList(..)', NULL, 'GET /apis/role/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"description\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":7,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]}}'); +INSERT INTO `tbl_log` VALUES (9195, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:58:02', 0, 'FunctionController.findRoleFunction(..)', NULL, 'GET /apis/function/findRoleFunction', '{\"type\":\"RoleFunctions\",\"keyId\":\"4\"}', '[{\"children\":[{\"titleEn\":\"Sales Management\",\"children\":[{\"titleEn\":\"Sales Orders\",\"checked\":true,\"attributes\":\"销售订单\",\"id\":242,\"title\":\"销售订单\",\"value\":242,\"key\":242},{\"titleEn\":\"Sales Shipments\",\"checked\":true,\"attributes\":\"销售出库\",\"id\":41,\"title\":\"销售出库\",\"value\":41,\"key\":41},{\"titleEn\":\"Delivery Plans\",\"checked\":false,\"attributes\":\"交货计划管理\",\"id\":271,\"title\":\"交货计划管理\",\"value\":271,\"key\":271},{\"titleEn\":\"Shipment Management\",\"checked\":false,\"attributes\":\"发货管理\",\"id\":268,\"title\":\"发货管理\",\"value\":268,\"key\":268},{\"titleEn\":\"Sales Returns\",\"checked\":true,\"attributes\":\"销售退货\",\"id\":200,\"title\":\"销售退货\",\"value\":200,\"key\":200},{\"titleEn\":\"Retail Shipments\",\"checked\":true,\"attributes\":\"零售出库\",\"id\":210,\"title\":\"零售出库\",\"value\":210,\"key\":210},{\"titleEn\":\"Retail Returns\",\"checked\":true,\"attributes\":\"零售退货\",\"id\":211,\"title\":\"零售退货\",\"value\":211,\"key\":211}],\"attributes\":\"销售管理\",\"id\":38,\"title\":\"销售管理\",\"value\":38,\"key\":38},{\"titleEn\":\"Purchase Management\",\"children\":[{\"titleEn\":\"Purchase Requisitions\",\"checked\":true,\"attributes\":\"请购单\",\"id\":261,\"title\":\"请购单\",\"value\":261,\"key\":261},{\"titleEn\":\"Purchase Orders\",\"checked\":true,\"attributes\":\"采购订单\",\"id\":241,\"title\":\"采购订单\",\"value\":241,\"key\":241},{\"titleEn\":\"Purchase Receipts\",\"checked\":true,\"attributes\":\"采购入库\",\"id\":33,\"title\":\"采购入库\",\"value\":33,\"key\":33},{\"titleEn\":\"Purchase Returns\",\"checked\":true,\"attributes\":\"采购退货\",\"id\":199,\"title\":\"采购退货\",\"value\":199,\"key\":199}],\"attributes\":\"采购管理\",\"id\":32,\"title\":\"采购管理\",\"value\":32,\"key\":32},{\"titleEn\":\"Production Management\",\"children\":[{\"titleEn\":\"Production BOMs\",\"checked\":true,\"attributes\":\"生产方案\",\"id\":263,\"title\":\"生产方案\",\"value\":263,\"key\":263},{\"titleEn\":\"Production Orders\",\"checked\":true,\"attributes\":\"生产工单\",\"id\":264,\"title\":\"生产工单\",\"value\":264,\"key\":264},{\"titleEn\":\"Material Requisitions\",\"checked\":true,\"attributes\":\"领料管理\",\"id\":265,\"title\":\"领料管理\",\"value\":265,\"key\":265},{\"titleEn\":\"Production Reports\",\"checked\":true,\"attributes\":\"完工报工\",\"id\":266,\"title\":\"完工报工\",\"value\":266,\"key\":266}],\"attributes\":\"生产管理\",\"id\":262,\"title\":\"生产管理\",\"value\":262,\"key\":262},{\"titleEn\":\"Warehouse Management\",\"children\":[{\"titleEn\":\"Product Inventory\",\"checked\":true,\"attributes\":\"商品库存\",\"id\":246,\"title\":\"商品库存\",\"value\":246,\"key\":246},{\"titleEn\":\"Other Receipts\",\"checked\":true,\"attributes\":\"其它入库\",\"id\":201,\"title\":\"其它入库\",\"value\":201,\"key\":201},{\"titleEn\":\"Other Shipments\",\"checked\":true,\"attributes\":\"其它出库\",\"id\":202,\"title\":\"其它出库\",\"value\":202,\"key\":202},{\"titleEn\":\"Stock Transfers\",\"checked\":true,\"attributes\":\"调拨出库\",\"id\":40,\"title\":\"调拨出库\",\"value\":40,\"key\":40},{\"titleEn\":\"Assembly Orders\",\"checked\":true,\"attributes\":\"组装单\",\"id\":232,\"title\":\"组装单\",\"value\":232,\"key\":232},{\"titleEn\":\"Headquarters Receipts\",\"checked\":true,\"attributes\":\"总部入库\",\"id\":270,\"title\":\"总部入库\",\"value\":270,\"key\":270},{\"titleEn\":\"Disassembly Orders\",\"checked\":true,\"attributes\":\"拆卸单\",\"id\":233,\"title\":\"拆卸单\",\"value\":233,\"key\":233}],\"attributes\":\"仓库管理\",\"id\":239,\"title\":\"仓库管理\",\"value\":239,\"key\":239},{\"titleEn\":\"Finance Management\",\"children\":[{\"titleEn\":\"Income Vouchers\",\"checked\":true,\"attributes\":\"收入单\",\"id\":197,\"title\":\"收入单\",\"value\":197,\"key\":197},{\"titleEn\":\"Expense Vouchers\",\"checked\":true,\"attributes\":\"支出单\",\"id\":203,\"title\":\"支出单\",\"value\":203,\"key\":203},{\"titleEn\":\"Receipt Vouchers\",\"checked\":true,\"attributes\":\"收款单\",\"id\":204,\"title\":\"收款单\",\"value\":204,\"key\":204},{\"titleEn\":\"Payment Vouchers\",\"checked\":true,\"attributes\":\"付款单\",\"id\":205,\"title\":\"付款单\",\"value\":205,\"key\":205},{\"titleEn\":\"Transfer Vouchers\",\"checked\":true,\"attributes\":\"转账单\",\"id\":206,\"title\":\"转账单\",\"value\":206,\"key\":206},{\"titleEn\":\"Advance Receipts\",\"checked\":true,\"attributes\":\"收预付款\",\"id\":212,\"title\":\"收预付款\",\"value\":212,\"key\":212}],\"attributes\":\"财务管理\",\"id\":44,\"title\":\"财务管理\",\"value\":44,\"key\":44},{\"titleEn\":\"Asset Management\",\"children\":[{\"titleEn\":\"Asset Overview\",\"checked\":true,\"attributes\":\"资产汇总\",\"id\":276,\"title\":\"资产汇总\",\"value\":276,\"key\":276},{\"titleEn\":\"Asset Ledger\",\"checked\":true,\"attributes\":\"资产台账\",\"id\":273,\"title\":\"资产台账\",\"value\":273,\"key\":273},{\"titleEn\":\"Device Ledger\",\"checked\":true,\"attributes\":\"设备台账\",\"id\":274,\"title\":\"设备台账\",\"value\":274,\"key\":274},{\"titleEn\":\"Asset Inventory\",\"checked\":true,\"attributes\":\"资产盘点\",\"id\":275,\"title\":\"资产盘点\",\"value\":275,\"key\":275}],\"attributes\":\"资产管理\",\"id\":272,\"title\":\"资产管理\",\"value\":272,\"key\":272},{\"titleEn\":\"Product Management\",\"children\":[{\"titleEn\":\"Product Categories\",\"checked\":true,\"attributes\":\"商品类别\",\"id\":22,\"title\":\"商品类别\",\"value\":22,\"key\":22},{\"titleEn\":\"Product Information\",\"checked\":true,\"attributes\":\"商品信息\",\"id\":23,\"title\":\"商品信息\",\"value\":23,\"key\":23},{\"titleEn\":\"Multiple Units\",\"checked\":true,\"attributes\":\"多单位\",\"id\":220,\"title\":\"多单位\",\"value\":220,\"key\":220},{\"titleEn\":\"Product Attributes\",\"checked\":true,\"attributes\":\"多属性\",\"id\":247,\"title\":\"多属性\",\"value\":247,\"key\":247}],\"attributes\":\"商品管理\",\"id\":21,\"title\":\"商品管理\",\"value\":21,\"key\":21},{\"titleEn\":\"Reports\",\"children\":[{\"titleEn\":\"Account Summary\",\"checked\":true,\"attributes\":\"账户统计\",\"id\":207,\"title\":\"账户统计\",\"value\":207,\"key\":207},{\"titleEn\":\"Retail Summary\",\"checked\":true,\"attributes\":\"零售统计\",\"id\":259,\"title\":\"零售统计\",\"value\":259,\"key\":259},{\"titleEn\":\"Purchase Summary\",\"checked\":true,\"attributes\":\"采购统计\",\"id\":208,\"title\":\"采购统计\",\"value\":208,\"key\":208},{\"titleEn\":\"Sales Summary\",\"checked\":true,\"attributes\":\"销售统计\",\"id\":209,\"title\":\"销售统计\",\"value\":209,\"key\":209},{\"titleEn\":\"Inbound Details\",\"checked\":true,\"attributes\":\"入库明细\",\"id\":226,\"title\":\"入库明细\",\"value\":226,\"key\":226},{\"titleEn\":\"Outbound Details\",\"checked\":true,\"attributes\":\"出库明细\",\"id\":227,\"title\":\"出库明细\",\"value\":227,\"key\":227},{\"titleEn\":\"Transfer Details\",\"checked\":true,\"attributes\":\"调拨明细\",\"id\":248,\"title\":\"调拨明细\",\"value\":248,\"key\":248},{\"titleEn\":\"Inbound Summary\",\"checked\":true,\"attributes\":\"入库汇总\",\"id\":228,\"title\":\"入库汇总\",\"value\":228,\"key\":228},{\"titleEn\":\"Outbound Summary\",\"checked\":true,\"attributes\":\"出库汇总\",\"id\":229,\"title\":\"出库汇总\",\"value\":229,\"key\":229},{\"titleEn\":\"Inventory Transaction Summary\",\"checked\":true,\"attributes\":\"进销存统计\",\"id\":59,\"title\":\"进销存统计\",\"value\":59,\"key\":59},{\"titleEn\":\"Customer Reconciliation\",\"checked\":true,\"attributes\":\"客户对账\",\"id\":235,\"title\":\"客户对账\",\"value\":235,\"key\":235},{\"titleEn\":\"Supplier Reconciliation\",\"checked\":true,\"attributes\":\"供应商对账\",\"id\":237,\"title\":\"供应商对账\",\"value\":237,\"key\":237},{\"titleEn\":\"Stock Alerts\",\"checked\":true,\"attributes\":\"库存预警\",\"id\":244,\"title\":\"库存预警\",\"value\":244,\"key\":244}],\"attributes\":\"报表查询\",\"id\":198,\"title\":\"报表查询\",\"value\":198,\"key\":198},{\"titleEn\":\"Master Data\",\"children\":[{\"titleEn\":\"Suppliers\",\"checked\":true,\"attributes\":\"供应商信息\",\"id\":25,\"title\":\"供应商信息\",\"value\":25,\"key\":25},{\"titleEn\":\"Customers\",\"checked\":true,\"attributes\":\"客户信息\",\"id\":217,\"title\":\"客户信息\",\"value\":217,\"key\":217},{\"titleEn\":\"Members\",\"checked\":true,\"attributes\":\"会员信息\",\"id\":218,\"title\":\"会员信息\",\"value\":218,\"key\":218},{\"titleEn\":\"Customer Categories\",\"checked\":false,\"attributes\":\"客户分类\",\"id\":267,\"title\":\"客户分类\",\"value\":267,\"key\":267},{\"titleEn\":\"Warehouses\",\"checked\":true,\"attributes\":\"仓库信息\",\"id\":26,\"title\":\"仓库信息\",\"value\":26,\"key\":26},{\"titleEn\":\"Income and Expense Items\",\"checked\":true,\"attributes\":\"收支项目\",\"id\":194,\"title\":\"收支项目\",\"value\":194,\"key\":194},{\"titleEn\":\"Settlement Accounts\",\"checked\":true,\"attributes\":\"结算账户\",\"id\":195,\"title\":\"结算账户\",\"value\":195,\"key\":195},{\"titleEn\":\"Operators\",\"checked\":true,\"attributes\":\"操作人员管理\",\"id\":31,\"title\":\"操作人员管理\",\"value\":31,\"key\":31}],\"attributes\":\"基础资料\",\"id\":24,\"title\":\"基础资料\",\"value\":24,\"key\":24},{\"titleEn\":\"System Management\",\"children\":[{\"titleEn\":\"Role Management\",\"checked\":true,\"attributes\":\"角色管理\",\"id\":13,\"title\":\"角色管理\",\"value\":13,\"key\":13},{\"titleEn\":\"User Management\",\"checked\":true,\"attributes\":\"用户管理\",\"id\":14,\"title\":\"用户管理\",\"value\":14,\"key\":14},{\"titleEn\":\"Department Management\",\"checked\":true,\"attributes\":\"部门管理\",\"id\":243,\"title\":\"部门管理\",\"value\":243,\"key\":243},{\"titleEn\":\"Log Management\",\"checked\":true,\"attributes\":\"日志管理\",\"id\":15,\"title\":\"日志管理\",\"value\":15,\"key\":15},{\"titleEn\":\"Product Properties\",\"checked\":true,\"attributes\":\"商品属性\",\"id\":236,\"title\":\"商品属性\",\"value\":236,\"key\":236},{\"titleEn\":\"System Configuration\",\"checked\":true,\"attributes\":\"系统配置\",\"id\":234,\"title\":\"系统配置\",\"value\":234,\"key\":234},{\"titleEn\":\"Resource Menus\",\"checked\":true,\"attributes\":\"菜单管理\",\"id\":16,\"title\":\"菜单管理\",\"value\":16,\"key\":16},{\"titleEn\":\"Plugin Management\",\"checked\":true,\"attributes\":\"插件管理\",\"id\":245,\"title\":\"插件管理\",\"value\":245,\"key\":245},{\"titleEn\":\"Dictionary Management\",\"checked\":true,\"attributes\":\"字典管理\",\"id\":260,\"title\":\"字典管理\",\"value\":260,\"key\":260},{\"titleEn\":\"Platform Configuration\",\"checked\":true,\"attributes\":\"平台配置\",\"id\":258,\"title\":\"平台配置\",\"value\":258,\"key\":258}],\"attributes\":\"系统管理\",\"id\":1,\"title\":\"系统管理\",\"value\":1,\"key\":1},{\"titleEn\":\"Retail Management\",\"checked\":true,\"attributes\":\"零售管理\",\"id\":225,\"title\":\"零售管理\",\"value\":225,\"key\":225}],\"attributes\":\"功能列表\",\"id\":0,\"title\":\"功能列表\",\"value\":0,\"key\":0}]'); +INSERT INTO `tbl_log` VALUES (9196, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:58:18', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9197, NULL, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 07:58:21', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9198, NULL, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 07:58:21', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9199, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:58:22', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9200, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 07:58:22', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9201, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 07:58:22', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9202, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 07:58:22', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9203, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 07:58:22', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9204, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 07:58:35', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9205, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-09-30 07:58:36', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9206, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 07:58:36', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9207, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 07:58:36', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9208, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 07:58:36', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9209, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 07:58:37', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9210, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 07:58:37', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9211, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:58:38', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9212, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 07:58:38', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9213, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 07:58:39', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9214, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 07:58:39', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9215, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 07:58:40', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9216, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:58:41', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9217, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 07:58:41', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9218, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 07:58:43', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9219, NULL, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 07:58:51', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9220, NULL, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:58:52', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9221, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-09-30 07:58:52', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9222, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 07:58:52', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9223, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 07:58:52', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9224, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 07:58:52', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9225, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 07:58:52', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9226, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 08:00:05', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9227, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 08:00:21', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-09-30\"}}'); +INSERT INTO `tbl_log` VALUES (9228, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 08:00:27', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9229, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-09-30 08:00:27', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9230, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 08:00:32', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-383\",\"assetName\":\"Epson Epson LQ-310\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"383\",\"externalSource\":\"HARDWARE\",\"id\":20,\"keeper\":\"Hab\",\"location\":\"Admin Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: R9DY417590\",\"source\":\"SAS\",\"specification\":\"Printer / Epson / Epson LQ-310\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Ad\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-384\",\"assetName\":\"H3C H3C UniServer R3950 G6\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"384\",\"externalSource\":\"HARDWARE\",\"id\":19,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 210235A4V0H259000004\",\"source\":\"SAS\",\"specification\":\"Server / H3C / H3C UniServer R3950 G6\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-385\",\"assetName\":\"TP-Link Omada SG3452\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"385\",\"externalSource\":\"HARDWARE\",\"id\":18,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 225B0AN000371;MAC: 6C-4C-BC-C9-F0-8A\",\"source\":\"SAS\",\"specification\":\"Switch / TP-Link / Omada SG3452\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-387\",\"assetName\":\"HP HP LaserJet MFP M236sdw\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"387\",\"externalSource\":\"HARDWARE\",\"id\":17,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: VNP5F19044\",\"source\":\"SAS\",\"specification\":\"Printer / HP / HP LaserJet MFP M236sdw\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Prod\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-389\",\"assetName\":\"Lenovo ThinkPad T14s 2-in-1\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"389\",\"externalSource\":\"HARDWARE\",\"id\":16,\"keeper\":\"Syed Bakri\",\"location\":\"Admin\",\"originalValue\":0.000000,\"purchaseDate\":1787169600000,\"quantity\":1.000000,\"remark\":\"序列号: PF6EN008\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad T14s 2-in-1 / Win 11 Home / Core Ultra 5 / 16G / 500G SSD\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"GM\"}]}}'); +INSERT INTO `tbl_log` VALUES (9231, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 08:00:40', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (9232, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 08:01:52', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9233, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 08:01:52', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9234, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 08:02:14', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9235, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 08:02:19', 0, 'UnitController.getList(..)', NULL, 'GET /apis/unit/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"basicUnit\":\"瓶\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"瓶/(箱=12瓶)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63},{\"basicUnit\":\"盒\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":20,\"name\":\"盒/(箱=8盒)\",\"otherUnit\":\"箱\",\"ratio\":8.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":19,\"name\":\"个/(盒=15个)\",\"otherUnit\":\"盒\",\"ratio\":15.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":15,\"name\":\"个/(箱=12个)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9236, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 08:02:30', 0, 'MaterialAttributeController.getList(..)', NULL, 'GET /apis/materialAttribute/list', '{\"search\":\"{\\\"attributeName\\\":\\\"\\\",\\\"attributeValue\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"attributeName\":\"自定义3\",\"deleteFlag\":\"0\",\"id\":5,\"tenantId\":63},{\"attributeName\":\"自定义2\",\"deleteFlag\":\"0\",\"id\":4,\"tenantId\":63},{\"attributeName\":\"自定义1\",\"attributeValue\":\"小米|华为\",\"deleteFlag\":\"0\",\"id\":3,\"tenantId\":63},{\"attributeName\":\"多尺寸\",\"attributeValue\":\"S|M|L|XL|XXL|XXXL\",\"deleteFlag\":\"0\",\"id\":2,\"tenantId\":63},{\"attributeName\":\"多颜色\",\"attributeValue\":\"红色|橙色|黄色|绿色|蓝色|紫色\",\"deleteFlag\":\"0\",\"id\":1,\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9237, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 08:02:35', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9238, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 08:02:35', 0, 'MaterialController.getList(..)', NULL, 'GET /apis/material/list', '{\"search\":\"{\\\"materialParam\\\":\\\"\\\",\\\"standard\\\":\\\"\\\",\\\"model\\\":\\\"\\\",\\\"color\\\":\\\"\\\",\\\"brand\\\":\\\"\\\",\\\"mfrs\\\":\\\"\\\",\\\"otherField1\\\":\\\"\\\",\\\"otherField2\\\":\\\"\\\",\\\"otherField3\\\":\\\"\\\",\\\"weight\\\":\\\"\\\",\\\"expiryNum\\\":\\\"\\\",\\\"position\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":24,\"rows\":[{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"commodityDecimal\":200.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":706,\"imgName\":\"\",\"initialStock\":0,\"lowDecimal\":200.000000,\"mBarCode\":\"1002\",\"materialOther\":\"\",\"mfrs\":\"SMT\",\"mnemonic\":\"MD-4G111(VF) 4G\",\"model\":\"MD-4G111(VF) 4G\",\"name\":\"MD-4G111(VF) 4G\",\"purchaseDecimal\":100.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) 4G\",\"stock\":0,\"unit\":\"只\",\"wholesaleDecimal\":200.000000},{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":34,\"categoryName\":\"包装\",\"commodityDecimal\":10.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":705,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":10.000000,\"mBarCode\":\"1001\",\"materialOther\":\"\",\"mnemonic\":\"MD-4G111(VF) bz\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 包装\",\"purchaseDecimal\":10.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"stock\":0.000000,\"unit\":\"件\",\"wholesaleDecimal\":10.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":340.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":340.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"remark\":\"Excel初始化;条码:3PH-APEC3-WC\",\"standard\":\"3PH APEC3-WC\",\"stock\":7223.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":340.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":73.500000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":73.500000,\"mBarCode\":\"1PH-WS79\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"remark\":\"Excel初始化;条码:1PH-WS79\",\"standard\":\"1PH WS79\",\"stock\":52400.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":73.500000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":24.300000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":24.300000,\"mBarCode\":\"C.4.T.0.00722\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"remark\":\"Excel初始化;条码:C.4.T.0.00722\",\"standard\":\"MD-RS178(VA)\",\"stock\":1000.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":24.300000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":142.560000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":142.560000,\"mBarCode\":\"C.4.T.0.0068900002\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"remark\":\"Excel初始化;条码:C.4.T.0.0068900002\",\"standard\":\"MD-RS114(VB)\",\"stock\":100.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":142.560000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":132.840000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":132.840000,\"mBarCode\":\"C.4.T.0.00686\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"remark\":\"Excel初始化;条码:C.4.T.0.00686\",\"standard\":\"TC160(VA)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":132.840000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":0.100000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":0.100000,\"mBarCode\":\"C.4.T.0.00654\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"remark\":\"Excel初始化;条码:C.4.T.0.00654\",\"standard\":\"MD-4G111(VF)\",\"stock\":76970.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":0.100000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":324.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":324.000000,\"mBarCode\":\"C.4.T.0.00562\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"remark\":\"Excel初始化;条码:C.4.T.0.00562\",\"standard\":\"MD-4GVIII(VB)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":324.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":129.600000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":129.600000,\"mBarCode\":\"C.4.T.0.00553\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"remark\":\"Excel初始化;条码:C.4.T.0.00553\",\"standard\":\"MT-P109(VA)\",\"stock\":500.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":129.600000}]}}'); +INSERT INTO `tbl_log` VALUES (9239, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 08:08:41', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/031PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"221\",\"externalSource\":\"HARDWARE\",\"id\":60,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU020\",\"assetName\":\"HP HP Pro 3330 MT\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"220\",\"externalSource\":\"HARDWARE\",\"id\":59,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: SGH221S6SH;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / HP Pro 3330 MT / Win 10 Pro / Core i7-2600 / 8G / 220G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/030PC\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"219\",\"externalSource\":\"HARDWARE\",\"id\":58,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDPN;用途: Testing / Lab;原备注: Windows License Key : QRWJ7-2N8MF-TM9WY-HKB42-VFR9C\\n\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"218\",\"externalSource\":\"HARDWARE\",\"id\":57,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMSP;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/029PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"217\",\"externalSource\":\"HARDWARE\",\"id\":56,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP19/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"216\",\"externalSource\":\"HARDWARE\",\"id\":55,\"keeper\":\"Hasmah\",\"location\":\"Not Specified\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified;原备注: RETURN TO SUPPLIER DUE THE PROBLEM\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"REPAIR\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP18/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"215\",\"externalSource\":\"HARDWARE\",\"id\":54,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP17/11112024\",\"assetName\":\"HP Pro Book 440\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"214\",\"externalSource\":\"HARDWARE\",\"id\":53,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Pro Book 440\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP16/11112024\",\"assetName\":\"HP Radeon Intel Core i5\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"213\",\"externalSource\":\"HARDWARE\",\"id\":52,\"keeper\":\"Hasmah\",\"location\":\"Stored with HR\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Stored\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Radeon Intel Core i5\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-212\",\"assetName\":\"HP All-in-One 24-dp0209d\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"212\",\"externalSource\":\"HARDWARE\",\"id\":51,\"keeper\":\"Hasmah\",\"location\":\"HR Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8CC10109F6\",\"source\":\"SAS\",\"specification\":\"All-In-One / HP / All-in-One 24-dp0209d / Win 10 Home / AMD Ryzen 5 4500U / 24G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Human Resources\"}]}}'); +INSERT INTO `tbl_log` VALUES (9240, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 08:08:45', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9241, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 08:08:58', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/041CPU\",\"assetName\":\"Dell ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"241\",\"externalSource\":\"HARDWARE\",\"id\":80,\"keeper\":\"X-Hadi\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMV4;用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/041PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"240\",\"externalSource\":\"HARDWARE\",\"id\":79,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/040CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"239\",\"externalSource\":\"HARDWARE\",\"id\":78,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/040PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"238\",\"externalSource\":\"HARDWARE\",\"id\":77,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/039CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"237\",\"externalSource\":\"HARDWARE\",\"id\":76,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/039PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"236\",\"externalSource\":\"HARDWARE\",\"id\":75,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/038CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"235\",\"externalSource\":\"HARDWARE\",\"id\":74,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/038PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"234\",\"externalSource\":\"HARDWARE\",\"id\":73,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/037CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"233\",\"externalSource\":\"HARDWARE\",\"id\":72,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/037PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"232\",\"externalSource\":\"HARDWARE\",\"id\":71,\"keeper\":\"Aqila\",\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Testing / Lab\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"}]}}'); +INSERT INTO `tbl_log` VALUES (9242, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 08:09:00', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/051PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"261\",\"externalSource\":\"HARDWARE\",\"id\":100,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/050CPU\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"260\",\"externalSource\":\"HARDWARE\",\"id\":99,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/050PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"259\",\"externalSource\":\"HARDWARE\",\"id\":98,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/049CPU\",\"assetName\":\"HP HP Pro 3330 MT\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"258\",\"externalSource\":\"HARDWARE\",\"id\":97,\"keeper\":\"Herman\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: SGH221S6SS;用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP / HP Pro 3330 MT / Win 7 Pro / Core i7-2600 / 6G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Quality\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/049PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"257\",\"externalSource\":\"HARDWARE\",\"id\":96,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/048CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"256\",\"externalSource\":\"HARDWARE\",\"id\":95,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/048PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"255\",\"externalSource\":\"HARDWARE\",\"id\":94,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-254\",\"assetName\":\"Smartboard NM-G750XS01\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"254\",\"externalSource\":\"HARDWARE\",\"id\":93,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: HH230216698\",\"source\":\"SAS\",\"specification\":\"Smartboard / Smartboard NM-G750XS01 / Win 10 / Core i5-2450M / 8G / 128G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Meeting Room\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAB/014CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"253\",\"externalSource\":\"HARDWARE\",\"id\":92,\"keeper\":\"Aliff\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMV4\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"PTC8320E-04\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"252\",\"externalSource\":\"HARDWARE\",\"id\":91,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMTV\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 16G / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"}]}}'); +INSERT INTO `tbl_log` VALUES (9243, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 08:09:04', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/020CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"311\",\"externalSource\":\"HARDWARE\",\"id\":150,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8DVSTC3;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 10 Pro / Core i3-10100 / 8G / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/020PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"310\",\"externalSource\":\"HARDWARE\",\"id\":149,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/019CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"309\",\"externalSource\":\"HARDWARE\",\"id\":148,\"keeper\":\"Mazidah\",\"location\":\"Prod 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 2H5TTC3;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/019PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"308\",\"externalSource\":\"HARDWARE\",\"id\":147,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/018CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"307\",\"externalSource\":\"HARDWARE\",\"id\":146,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: J26QLN2;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/018PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"306\",\"externalSource\":\"HARDWARE\",\"id\":145,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/017CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"305\",\"externalSource\":\"HARDWARE\",\"id\":144,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: FBNPLN2;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500GB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/017PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"304\",\"externalSource\":\"HARDWARE\",\"id\":143,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/016CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"303\",\"externalSource\":\"HARDWARE\",\"id\":142,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: CF7V7N2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/016PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"302\",\"externalSource\":\"HARDWARE\",\"id\":141,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"}]}}'); +INSERT INTO `tbl_log` VALUES (9244, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 08:09:05', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-361\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"361\",\"externalSource\":\"HARDWARE\",\"id\":200,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC2DX5Q0\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-360\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"360\",\"externalSource\":\"HARDWARE\",\"id\":199,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC1PQXP5\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-359\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"359\",\"externalSource\":\"HARDWARE\",\"id\":198,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC25J5KE\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-358\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"358\",\"externalSource\":\"HARDWARE\",\"id\":197,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC1WY69D\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-357\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"357\",\"externalSource\":\"HARDWARE\",\"id\":196,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC25J5KB\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-356\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"356\",\"externalSource\":\"HARDWARE\",\"id\":195,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC2DX5Q3\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-355\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"355\",\"externalSource\":\"HARDWARE\",\"id\":194,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC25J5K8\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-354\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"354\",\"externalSource\":\"HARDWARE\",\"id\":193,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC1PPJ3J\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"Production14\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"353\",\"externalSource\":\"HARDWARE\",\"id\":192,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 9DVSTC3\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 10 Pro / Core i3-10100 / 8G / 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production 2\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU002\",\"assetName\":\"Dell OptiPlex 3020\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"352\",\"externalSource\":\"HARDWARE\",\"id\":191,\"keeper\":\"Herman\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 7CTDR42\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3020 / Core i3-4160 / 6G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Quality\"}]}}'); +INSERT INTO `tbl_log` VALUES (9245, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-09-30 08:09:06', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702566\",\"assetName\":\"SIM卡 896019210381702566\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"26\",\"externalSource\":\"SIM\",\"id\":250,\"keeper\":\"SMT\",\"location\":\"GT3.1 (Nur)\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.123 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702565\",\"assetName\":\"SIM卡 896019210381702565\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"27\",\"externalSource\":\"SIM\",\"id\":249,\"keeper\":\"SMT\",\"location\":\"Menicon Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.136 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702564\",\"assetName\":\"SIM卡 896019210381702564\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"28\",\"externalSource\":\"SIM\",\"id\":248,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.10.11 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702563\",\"assetName\":\"SIM卡 896019210381702563\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"29\",\"externalSource\":\"SIM\",\"id\":247,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.141 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-2\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SOFTWARE\",\"id\":246,\"originalValue\":8700.000000,\"purchaseDate\":1694980800000,\"quantity\":15.000000,\"remark\":\"供应商: Amimo;发票号: INV230902\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-3\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SOFTWARE\",\"id\":245,\"originalValue\":1160.000000,\"purchaseDate\":1704916800000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-4\",\"assetName\":\"MS Office 2019 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SOFTWARE\",\"id\":244,\"originalValue\":0.000000,\"purchaseDate\":1727380800000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-5\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SOFTWARE\",\"id\":243,\"originalValue\":580.000000,\"purchaseDate\":1712088000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240402\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-6\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SOFTWARE\",\"id\":242,\"originalValue\":2320.000000,\"purchaseDate\":1736798400000,\"quantity\":4.000000,\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-7\",\"assetName\":\"MS Office 2021 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SOFTWARE\",\"id\":241,\"originalValue\":750.000000,\"purchaseDate\":1707768000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240201\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9246, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 08:09:08', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9247, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 08:09:15', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9248, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-09-30 08:09:27', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607786\",\"assetName\":\"SIM卡 896019210381607786\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"11\",\"externalSource\":\"SIM\",\"id\":260,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070013;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.208.37 / KM08-LTE Modem / 21070013\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702562\",\"assetName\":\"SIM卡 896019210381702562\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"12\",\"externalSource\":\"SIM\",\"id\":259,\"keeper\":\"SMT\",\"location\":\"Loan to Hanif/Adha (22-May-2026); \",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.144.61\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607780\",\"assetName\":\"SIM卡 896019210381607780\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"14\",\"externalSource\":\"SIM\",\"id\":258,\"keeper\":\"SMT\",\"location\":\"POC AEON\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.208.37\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500577\",\"assetName\":\"SIM卡 896019190221500577\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"15\",\"externalSource\":\"SIM\",\"id\":257,\"keeper\":\"SMT\",\"location\":\"Kompleks Pertama\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.144.61\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607779\",\"assetName\":\"SIM卡 896019210381607779\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"13\",\"externalSource\":\"SIM\",\"id\":256,\"keeper\":\"SMT\",\"location\":\"POC AEON\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702569\",\"assetName\":\"SIM卡 896019210381702569\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"18\",\"externalSource\":\"SIM\",\"id\":255,\"keeper\":\"SMT\",\"location\":\"With Amir\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.200\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702570\",\"assetName\":\"SIM卡 896019210381702570\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"19\",\"externalSource\":\"SIM\",\"id\":254,\"keeper\":\"SMT\",\"location\":\"With Amir\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.214.141\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702571\",\"assetName\":\"SIM卡 896019210381702571\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"23\",\"externalSource\":\"SIM\",\"id\":253,\"keeper\":\"SMT\",\"location\":\"R&D room, SMT\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.9.45\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702568\",\"assetName\":\"SIM卡 896019210381702568\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"24\",\"externalSource\":\"SIM\",\"id\":252,\"keeper\":\"SMT\",\"location\":\"Molnlycke Health Care\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.214.217 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702567\",\"assetName\":\"SIM卡 896019210381702567\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"25\",\"externalSource\":\"SIM\",\"id\":251,\"keeper\":\"SMT\",\"location\":\"Molnlycke Health Care\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.143 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9249, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-09-30 08:09:35', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702566\",\"assetName\":\"SIM卡 896019210381702566\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"26\",\"externalSource\":\"SIM\",\"id\":250,\"keeper\":\"SMT\",\"location\":\"GT3.1 (Nur)\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.123 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702565\",\"assetName\":\"SIM卡 896019210381702565\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"27\",\"externalSource\":\"SIM\",\"id\":249,\"keeper\":\"SMT\",\"location\":\"Menicon Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.136 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702564\",\"assetName\":\"SIM卡 896019210381702564\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"28\",\"externalSource\":\"SIM\",\"id\":248,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.10.11 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702563\",\"assetName\":\"SIM卡 896019210381702563\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"29\",\"externalSource\":\"SIM\",\"id\":247,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.141 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-2\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SOFTWARE\",\"id\":246,\"originalValue\":8700.000000,\"purchaseDate\":1694980800000,\"quantity\":15.000000,\"remark\":\"供应商: Amimo;发票号: INV230902\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-3\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SOFTWARE\",\"id\":245,\"originalValue\":1160.000000,\"purchaseDate\":1704916800000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-4\",\"assetName\":\"MS Office 2019 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SOFTWARE\",\"id\":244,\"originalValue\":0.000000,\"purchaseDate\":1727380800000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-5\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SOFTWARE\",\"id\":243,\"originalValue\":580.000000,\"purchaseDate\":1712088000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240402\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-6\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SOFTWARE\",\"id\":242,\"originalValue\":2320.000000,\"purchaseDate\":1736798400000,\"quantity\":4.000000,\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-7\",\"assetName\":\"MS Office 2021 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SOFTWARE\",\"id\":241,\"originalValue\":750.000000,\"purchaseDate\":1707768000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240201\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9250, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-09-30 08:09:42', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-8\",\"assetName\":\"MS Office 2021 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SOFTWARE\",\"id\":240,\"originalValue\":0.000000,\"purchaseDate\":1712088000000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240401;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-9\",\"assetName\":\"MS Office 2021 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SOFTWARE\",\"id\":239,\"originalValue\":0.000000,\"purchaseDate\":1718913600000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240601;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"HR\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-10\",\"assetName\":\"MS Office Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SOFTWARE\",\"id\":238,\"originalValue\":0.000000,\"purchaseDate\":1768939200000,\"quantity\":10.000000,\"remark\":\"供应商: Amimo;许可证: Smt@123;发票号: INV260101;原备注: Bundled with 10 unit of PC purchase for Lab.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-11\",\"assetName\":\"MS Office Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"11\",\"externalSource\":\"SOFTWARE\",\"id\":237,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;原备注: Bundled with 1 unit of Laptop\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"Tech & Technology\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-12\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"12\",\"externalSource\":\"SOFTWARE\",\"id\":236,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: BX27V-J9QMG-3VVWY-7JTYT-94CXB\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-13\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"13\",\"externalSource\":\"SOFTWARE\",\"id\":235,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: GTTC2-XH8PW-3WJFH-76VFQ-PHYX9\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-14\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"14\",\"externalSource\":\"SOFTWARE\",\"id\":234,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: WY8KV-GQ39X-2WQF2-V8R93-RY6CT\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-15\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"15\",\"externalSource\":\"SOFTWARE\",\"id\":233,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: YBDDT-C4QPP-J6T63-DQMB8-9XB29;原备注: Written: Burnny / Asus\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-16\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"16\",\"externalSource\":\"SOFTWARE\",\"id\":232,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: XG2WV-YRDV4-VQWQ2-XQQ26-XJ3FF;原备注: Written: SGH109RCWK\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-1\",\"assetName\":\"Linux 6.8.0-45\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SOFTWARE\",\"id\":231,\"originalValue\":0.000000,\"purchaseDate\":1728849600000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240902;原备注: For server\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9251, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 08:09:52', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9252, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 08:10:20', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-33\",\"assetName\":\"Ubuntu 24.04.1 LTS\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"33\",\"externalSource\":\"SOFTWARE\",\"id\":230,\"originalValue\":0.000000,\"purchaseDate\":1728849600000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240902;原备注: For server\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-32\",\"assetName\":\"MS Windows 2000 Server Client Access License\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"32\",\"externalSource\":\"SOFTWARE\",\"id\":229,\"originalValue\":0.000000,\"quantity\":5.000000,\"remark\":\"许可证: 13925763;原备注: Authorization Number: 13880917ZZS0307\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-31\",\"assetName\":\"MS Windows 2000 Server\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"31\",\"externalSource\":\"SOFTWARE\",\"id\":228,\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-30\",\"assetName\":\"MS SQL Server 2017 Standard\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"30\",\"externalSource\":\"SOFTWARE\",\"id\":227,\"originalValue\":3750.000000,\"purchaseDate\":1634846400000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;许可证: PHDV4-3VJWD-N7JVP-FGPKY-XBV89;发票号: INV211001;原备注: 4 Core License Key: 4TQHY-D7R86-VGBFG-PW7GV-8G2FY\",\"source\":\"SAS\",\"specification\":\"Amimo / CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-29\",\"assetName\":\"MS Office Home & Student 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"29\",\"externalSource\":\"SOFTWARE\",\"id\":226,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: GRQJ3-2TM6Q-BRFY4-DFJYQ-2BQKM\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-28\",\"assetName\":\"MS Office Home & Student 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"28\",\"externalSource\":\"SOFTWARE\",\"id\":225,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: TQ8C3-67C72-7B33C-BM4GF-33VB2\",\"source\":\"SAS\",\"specification\":\"CD\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-27\",\"assetName\":\"MS Office Home & Student\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"27\",\"externalSource\":\"SOFTWARE\",\"id\":224,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"原备注: Bundled with HP Laptop 14s-cf3022TX (SN 5CG03082BJ)\",\"source\":\"SAS\",\"specification\":\"Sticker\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-17\",\"assetName\":\"MS Office Home & Business 2010\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"17\",\"externalSource\":\"SOFTWARE\",\"id\":223,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"许可证: H7F93-PMMX8-8MHMT-4CY7W-W9QHM;原备注: Written: Khairul Bariyyah PC14\",\"source\":\"SAS\",\"specification\":\"Cert\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-25\",\"assetName\":\"MS Office Home & Student\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"25\",\"externalSource\":\"SOFTWARE\",\"id\":222,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"原备注: Bundled with HP Laptop - 14s-cf3022tx (5CG03082JK) {Adha}\",\"source\":\"SAS\",\"specification\":\"Sticker\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-24\",\"assetName\":\"MS Office Home & Student\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"24\",\"externalSource\":\"SOFTWARE\",\"id\":221,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"原备注: Bundled with HP Laptop 14s-cf2036TX (SN 5CG011D1W7); written off - spoilt\",\"source\":\"SAS\",\"specification\":\"Sticker\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613749000,\"useDepartment\":\"Account\"}]}}'); +INSERT INTO `tbl_log` VALUES (9253, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 08:10:22', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-371\",\"assetName\":\"Dell OptiPlex 790\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"371\",\"externalSource\":\"HARDWARE\",\"id\":210,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: CJN5F2S\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 790 / Win 7 Pro / Core i5-2400 / 4G / 480G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/062CPU,SMT/N04/CPU004\",\"assetName\":\"Dell Vostro 230\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"370\",\"externalSource\":\"HARDWARE\",\"id\":209,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 846R72S\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / Vostro 230 / Win 7 Pro / Core 2 Duo E7500 / 4G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production 2\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-369\",\"assetName\":\"TP-Link TP-Link TL-MR6400\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"369\",\"externalSource\":\"HARDWARE\",\"id\":208,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 22082D8000244;MAC: 60-32-B1-BD-FB-FA;用途: Testing\",\"source\":\"SAS\",\"specification\":\"Router / TP-Link / TP-Link TL-MR6400\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP21/112004\",\"assetName\":\"HP HP 14s-cf3022tx\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"368\",\"externalSource\":\"HARDWARE\",\"id\":207,\"keeper\":\"Hazif\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5CG03082BJ;原备注: Bundled with Office Home & Student\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / HP 14s-cf3022tx / Win 11 Home / Core i5-1035G1 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Store\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/STORE/054CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"367\",\"externalSource\":\"HARDWARE\",\"id\":206,\"keeper\":\"Wan Rosli\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDQ2\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Store\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/STORE/053CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"366\",\"externalSource\":\"HARDWARE\",\"id\":205,\"keeper\":\"Vacant\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 7DVSTC3\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Store\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP4/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"365\",\"externalSource\":\"HARDWARE\",\"id\":204,\"keeper\":\"x-Azam\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1VB7YC\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10510U / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-364\",\"assetName\":\"Lenovo Lenovo Thinkpad E14\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"364\",\"externalSource\":\"HARDWARE\",\"id\":203,\"keeper\":\"Aziman\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF-62CZQH\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / Lenovo Thinkpad E14 / Win 11 Pro / Core Ultra 5 225U / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-363\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"363\",\"externalSource\":\"HARDWARE\",\"id\":202,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC2DX5PF\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-362\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"362\",\"externalSource\":\"HARDWARE\",\"id\":201,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC1PQXP6\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"}]}}'); +INSERT INTO `tbl_log` VALUES (9254, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-09-30 08:10:24', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-361\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"361\",\"externalSource\":\"HARDWARE\",\"id\":200,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC2DX5Q0\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-360\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"360\",\"externalSource\":\"HARDWARE\",\"id\":199,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC1PQXP5\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-359\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"359\",\"externalSource\":\"HARDWARE\",\"id\":198,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC25J5KE\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-358\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"358\",\"externalSource\":\"HARDWARE\",\"id\":197,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC1WY69D\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-357\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"357\",\"externalSource\":\"HARDWARE\",\"id\":196,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC25J5KB\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-356\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"356\",\"externalSource\":\"HARDWARE\",\"id\":195,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC2DX5Q3\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-355\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"355\",\"externalSource\":\"HARDWARE\",\"id\":194,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC25J5K8\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-354\",\"assetName\":\"Lenovo Lenovo Thinkcentre M7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"354\",\"externalSource\":\"HARDWARE\",\"id\":193,\"location\":\"Laboratory\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PC1PPJ3J\",\"source\":\"SAS\",\"specification\":\"CPU / Lenovo / Lenovo Thinkcentre M7 / Win 11 Pro / Core i5-10500 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"Production14\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"353\",\"externalSource\":\"HARDWARE\",\"id\":192,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 9DVSTC3\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 10 Pro / Core i3-10100 / 8G / 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production 2\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/N02/CPU002\",\"assetName\":\"Dell OptiPlex 3020\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"352\",\"externalSource\":\"HARDWARE\",\"id\":191,\"keeper\":\"Herman\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 7CTDR42\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3020 / Core i3-4160 / 6G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Quality\"}]}}'); +INSERT INTO `tbl_log` VALUES (9255, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-09-30 08:10:26', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"No Code\",\"assetName\":\"D-Link DGS-1210-24\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"341\",\"externalSource\":\"HARDWARE\",\"id\":180,\"keeper\":\"Daniel\",\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: QB1A1A7002042;MAC: F0-7D-68-BB-F5-D0;用途: Network Switch\",\"source\":\"SAS\",\"specification\":\"Switch / D-Link / DGS-1210-24\",\"status\":\"REPAIR\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"No Code\",\"assetName\":\"D-link DGS-1210-24\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"340\",\"externalSource\":\"HARDWARE\",\"id\":179,\"keeper\":\"Daniel\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: QB1A1A8000282;MAC: F0-7D-68-C2-91-07;用途: Network Switch\",\"source\":\"SAS\",\"specification\":\"Switch / D-link / DGS-1210-24\",\"status\":\"REPAIR\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-339\",\"assetName\":\"TP-Link TP-Link AC1300\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"339\",\"externalSource\":\"HARDWARE\",\"id\":178,\"location\":\"CEO Room\",\"originalValue\":0.000000,\"purchaseDate\":1612555200000,\"quantity\":1.000000,\"remark\":\"序列号: 22085K6A00203;MAC: 84-D8-1B-42-07-74;用途: Wifi Router\",\"source\":\"SAS\",\"specification\":\"Router / TP-Link / TP-Link AC1300\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-338\",\"assetName\":\"TP-Link TP-Link AC1300\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"338\",\"externalSource\":\"HARDWARE\",\"id\":177,\"location\":\"Engineering\",\"originalValue\":0.000000,\"purchaseDate\":1612555200000,\"quantity\":1.000000,\"remark\":\"序列号: 22085K6B00203;MAC: 84-D8-1B-42-04-80;用途: Wifi Router\",\"source\":\"SAS\",\"specification\":\"Router / TP-Link / TP-Link AC1300\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/069MOD\",\"assetName\":\"TP-Link TP-Link AC1300\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"337\",\"externalSource\":\"HARDWARE\",\"id\":176,\"location\":\"Disccussion Area Level 1\",\"originalValue\":0.000000,\"purchaseDate\":1612555200000,\"quantity\":1.000000,\"remark\":\"序列号: 22085K6C00203;MAC: 84-D8-1B-42-01-30;用途: Wifi Router\",\"source\":\"SAS\",\"specification\":\"Router / TP-Link / TP-Link AC1300\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-336\",\"assetName\":\"TP-Link TP-Link TL-SG3428\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"336\",\"externalSource\":\"HARDWARE\",\"id\":175,\"location\":\"Production 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 2212005R00360 v2.0;MAC: 00-5F-67-77-B1-09;用途: Network Switch\",\"source\":\"SAS\",\"specification\":\"Switch / TP-Link / TP-Link TL-SG3428\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-335\",\"assetName\":\"TP-Link TP-Link TL-SG3428\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"335\",\"externalSource\":\"HARDWARE\",\"id\":174,\"location\":\"Production 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 2236057000952 v2.20;MAC: 40-ED-00-B6-41-03;用途: Network Switch\",\"source\":\"SAS\",\"specification\":\"Switch / TP-Link / TP-Link TL-SG3428\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/SERVER/066SN\",\"assetName\":\"TP-Link Omada SG3452\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"334\",\"externalSource\":\"HARDWARE\",\"id\":173,\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 22487K4000718;MAC: 7C-F1-7E-FD-1C-07;用途: Network Switch\",\"source\":\"SAS\",\"specification\":\"Switch / TP-Link / Omada SG3452\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/SERVER/064CPU\",\"assetName\":\"Dell OptiPlex 7010\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"333\",\"externalSource\":\"HARDWARE\",\"id\":172,\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: JNKWG24;用途: Firewall\",\"source\":\"SAS\",\"specification\":\"Server / Dell / OptiPlex 7010 / Core i5-12500 / 16G / 256G M2,2x 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/SERVER/065SN\",\"assetName\":\"TP-Link TP-Link T2600G-52TS\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"332\",\"externalSource\":\"HARDWARE\",\"id\":171,\"keeper\":\"Daniel\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 2194962000254;MAC: 98-DA-C4-3C-70-1F;用途: Network Switch\",\"source\":\"SAS\",\"specification\":\"Switch / TP-Link / TP-Link T2600G-52TS\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"}]}}'); +INSERT INTO `tbl_log` VALUES (9256, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-09-30 08:10:33', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9257, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 08:10:42', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/SERVER/054PC\",\"assetName\":\"Dell 1707FP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"331\",\"externalSource\":\"HARDWARE\",\"id\":170,\"keeper\":\"Daniel\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Server\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell / 1707FP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/NO2/PC058\",\"assetName\":\"Lenovo L24i-40 23.8\\\" FHD\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"330\",\"externalSource\":\"HARDWARE\",\"id\":169,\"keeper\":\"Daniel\",\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo / L24i-40 23.8\\\" FHD\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-329\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"329\",\"externalSource\":\"HARDWARE\",\"id\":168,\"keeper\":\"Izyanti\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDPM\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 10 Pro / Core i5-10500 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Quality\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-328\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"328\",\"externalSource\":\"HARDWARE\",\"id\":167,\"keeper\":\"Izyanti\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 51NNLN2\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Quality\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP8/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"327\",\"externalSource\":\"HARDWARE\",\"id\":166,\"keeper\":\"Izyanti\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1V7QYM;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10510U / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Quality\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-326\",\"assetName\":\"Dell OptiPlex 7070\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"326\",\"externalSource\":\"HARDWARE\",\"id\":165,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8D9VY23\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7070 / Win 11 Pro / Core i7-9700 / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-325\",\"assetName\":\"Dell OptiPlex 7070\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"325\",\"externalSource\":\"HARDWARE\",\"id\":164,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 7PGVY23\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7070 / Win 11 Pro / Core i7-9700 / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/046CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"324\",\"externalSource\":\"HARDWARE\",\"id\":163,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 1H5TTC3\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 12G / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/028PC\",\"assetName\":\"LG\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"323\",\"externalSource\":\"HARDWARE\",\"id\":162,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / LG\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/027PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"322\",\"externalSource\":\"HARDWARE\",\"id\":161,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"}]}}'); +INSERT INTO `tbl_log` VALUES (9258, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 08:10:47', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9259, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 08:11:11', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/026PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"321\",\"externalSource\":\"HARDWARE\",\"id\":160,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/025PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"320\",\"externalSource\":\"HARDWARE\",\"id\":159,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/024CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"319\",\"externalSource\":\"HARDWARE\",\"id\":158,\"keeper\":\"Herman\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE219BMTT;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/024PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"318\",\"externalSource\":\"HARDWARE\",\"id\":157,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/023CPU\",\"assetName\":\"Dell OptiPlex 3020\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"317\",\"externalSource\":\"HARDWARE\",\"id\":156,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: GJZ9YC2;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3020 / Win 10 Pro / Core i3-4160 / 8G / 240G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/023PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"316\",\"externalSource\":\"HARDWARE\",\"id\":155,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/022CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"315\",\"externalSource\":\"HARDWARE\",\"id\":154,\"keeper\":\"Hana\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: C7YQ7N2;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/022PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"314\",\"externalSource\":\"HARDWARE\",\"id\":153,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/021CPU\",\"assetName\":\"Dell OptiPlex 5040\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"313\",\"externalSource\":\"HARDWARE\",\"id\":152,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 7RCBHJ2;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 5040 / Win 10 Pro / Core i5-6500 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/021PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"312\",\"externalSource\":\"HARDWARE\",\"id\":151,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"}]}}'); +INSERT INTO `tbl_log` VALUES (9260, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-09-30 08:11:17', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/020CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"311\",\"externalSource\":\"HARDWARE\",\"id\":150,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8DVSTC3;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 10 Pro / Core i3-10100 / 8G / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/020PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"310\",\"externalSource\":\"HARDWARE\",\"id\":149,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/019CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"309\",\"externalSource\":\"HARDWARE\",\"id\":148,\"keeper\":\"Mazidah\",\"location\":\"Prod 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 2H5TTC3;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/019PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"308\",\"externalSource\":\"HARDWARE\",\"id\":147,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/018CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"307\",\"externalSource\":\"HARDWARE\",\"id\":146,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: J26QLN2;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/018PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"306\",\"externalSource\":\"HARDWARE\",\"id\":145,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/017CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"305\",\"externalSource\":\"HARDWARE\",\"id\":144,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: FBNPLN2;用途: Packing\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500GB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO1/017PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"304\",\"externalSource\":\"HARDWARE\",\"id\":143,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Packing\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/016CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"303\",\"externalSource\":\"HARDWARE\",\"id\":142,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: CF7V7N2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/016PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"302\",\"externalSource\":\"HARDWARE\",\"id\":141,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"}]}}'); +INSERT INTO `tbl_log` VALUES (9261, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 08:11:23', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9262, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-09-30 08:11:55', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/015CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"301\",\"externalSource\":\"HARDWARE\",\"id\":140,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 8L2YTK2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/015PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"300\",\"externalSource\":\"HARDWARE\",\"id\":139,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/014CPU\",\"assetName\":\"Dell Vostro 230\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"299\",\"externalSource\":\"HARDWARE\",\"id\":138,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 1VBK92S;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / Vostro 230 / Win 7 Pro / Core 2 Duo E7500 / 4G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production 2\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/014PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"298\",\"externalSource\":\"HARDWARE\",\"id\":137,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/013PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"297\",\"externalSource\":\"HARDWARE\",\"id\":136,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 4\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/012CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"296\",\"externalSource\":\"HARDWARE\",\"id\":135,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 3WRV9P2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/012PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"295\",\"externalSource\":\"HARDWARE\",\"id\":134,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/011CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"294\",\"externalSource\":\"HARDWARE\",\"id\":133,\"keeper\":\"Ma\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: JG5TTC3;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 12G / 1TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/011PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"293\",\"externalSource\":\"HARDWARE\",\"id\":132,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/010CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"292\",\"externalSource\":\"HARDWARE\",\"id\":131,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: GT8YPM2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"}]}}'); +INSERT INTO `tbl_log` VALUES (9263, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-09-30 08:12:04', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/010PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"291\",\"externalSource\":\"HARDWARE\",\"id\":130,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/009CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"290\",\"externalSource\":\"HARDWARE\",\"id\":129,\"keeper\":\"Mazidah\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: BB4W9P2;用途: RF;原备注: 3-Aug: Ram upgraded from 8Gb to 16Gb\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/009PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"289\",\"externalSource\":\"HARDWARE\",\"id\":128,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/008CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"288\",\"externalSource\":\"HARDWARE\",\"id\":127,\"keeper\":\"Mazidah\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 1P12LQ2;用途: RF;原备注: 3-Aug : Ram upgraded from 8Gb to 16Gb\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/008PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"287\",\"externalSource\":\"HARDWARE\",\"id\":126,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 3\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/007CPU,SMT/PRO2/013CPU\",\"assetName\":\"HP HP Pro 3330 MT\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"286\",\"externalSource\":\"HARDWARE\",\"id\":125,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: SGH221S6RS;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / HP / HP Pro 3330 MT / Core i7-2600\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/007PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"285\",\"externalSource\":\"HARDWARE\",\"id\":124,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/006CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"284\",\"externalSource\":\"HARDWARE\",\"id\":123,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 18TR7N2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/006PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"283\",\"externalSource\":\"HARDWARE\",\"id\":122,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/005CPU\",\"assetName\":\"Dell OPtiPlex 3020\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"282\",\"externalSource\":\"HARDWARE\",\"id\":121,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: FNL9YC2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OPtiPlex 3020 / Win 10 Pro / Core i3-4160 / 8G / 256G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"}]}}'); +INSERT INTO `tbl_log` VALUES (9264, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-09-30 08:12:24', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/005PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"281\",\"externalSource\":\"HARDWARE\",\"id\":120,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/004CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"280\",\"externalSource\":\"HARDWARE\",\"id\":119,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: B8MS9P2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 4G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/004PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"279\",\"externalSource\":\"HARDWARE\",\"id\":118,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/003CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"278\",\"externalSource\":\"HARDWARE\",\"id\":117,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 18TR7N2 / 1R22GL2;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Win 10 Pro / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/003PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"277\",\"externalSource\":\"HARDWARE\",\"id\":116,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/002CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"276\",\"externalSource\":\"HARDWARE\",\"id\":115,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: CDVSTC3;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Core i3-10100 / 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/002PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"275\",\"externalSource\":\"HARDWARE\",\"id\":114,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-274\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"274\",\"externalSource\":\"HARDWARE\",\"id\":113,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Production 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 3H5TTC3;用途: RF\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 10 Pro / Core i3-10100 / 8G / 480G, 1T\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/001CPU\",\"assetName\":\"Dell OptiPlex 7050\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"273\",\"externalSource\":\"HARDWARE\",\"id\":112,\"keeper\":\"Halimaton\",\"location\":\"Prod 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: FBHMLN2\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 7050 / Core i7-6700 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production 2\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/PRO2/001PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"272\",\"externalSource\":\"HARDWARE\",\"id\":111,\"keeper\":\"Halimaton/Syafiq\",\"location\":\"Prod 2 / Line 1\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: RF\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"}]}}'); +INSERT INTO `tbl_log` VALUES (9265, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-09-30 08:13:19', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP14/11112024,SMT/LAP14/112004\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"271\",\"externalSource\":\"HARDWARE\",\"id\":110,\"keeper\":\"Hana\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF267MWG;用途: Sticker/Print\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i5-8265U / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP10/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"270\",\"externalSource\":\"HARDWARE\",\"id\":109,\"keeper\":\"Halimaton\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1VB811;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10510U / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP7/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"269\",\"externalSource\":\"HARDWARE\",\"id\":108,\"keeper\":\"Mazidah\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF2685GY;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-8565U / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP12/11112024\",\"assetName\":\"HP Pro Book 440 G8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"268\",\"externalSource\":\"HARDWARE\",\"id\":107,\"keeper\":\"Syafiq\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5CD14257QY;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / Pro Book 440 G8 / Win 11 Pro / Core i5-1135G7 / 8G / 240G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP1/11112024\",\"assetName\":\"Acer Acer Spin 3\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"267\",\"externalSource\":\"HARDWARE\",\"id\":106,\"keeper\":\"Arif\",\"location\":\"Personal Carry\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: NXA9VSM00414307CD96600;用途: Personal Work\",\"source\":\"SAS\",\"specification\":\"Laptop / Acer / Acer Spin 3 / Win 11 Home / Core i7-1165G7 / 16G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Operation\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/STORE/054PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"266\",\"externalSource\":\"HARDWARE\",\"id\":105,\"keeper\":\"Not Specified\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/STORE/053PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"265\",\"externalSource\":\"HARDWARE\",\"id\":104,\"keeper\":\"Not Specified\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/052CPU\",\"assetName\":\"CPU 硬件资产 264\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"264\",\"externalSource\":\"HARDWARE\",\"id\":103,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/052PC\",\"assetName\":\"LG\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"263\",\"externalSource\":\"HARDWARE\",\"id\":102,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / LG\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/051CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"262\",\"externalSource\":\"HARDWARE\",\"id\":101,\"keeper\":\"Not Specified\",\"location\":\"Office 2\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Not Specified\"}]}}'); +INSERT INTO `tbl_log` VALUES (9266, NULL, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 08:17:25', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9267, NULL, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 08:17:25', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9268, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-09-30 08:17:26', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9269, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-30 08:17:26', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9270, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-30 08:17:26', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9271, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 08:17:26', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9272, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 08:17:26', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9273, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 08:17:36', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9274, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 08:17:36', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9275, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 08:17:36', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9276, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 08:17:36', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9277, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 08:17:36', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9278, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 08:17:50', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":2,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":200.000000,\"currentStockMovePrice\":66938.400000000000,\"currentStockPrice\":66938.400000000000,\"currentUnitPrice\":334.692000,\"currentWeight\":0E-12,\"id\":694,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00421\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR62(VB)\",\"name\":\"MD-LR62(VB)\",\"position\":\"\",\"purchaseDecimal\":334.692000,\"standard\":\"MD-LR62(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":34473.000000,\"currentStockMovePrice\":27476359.920000000000,\"currentStockPrice\":27476359.920000000000,\"currentUnitPrice\":797.040000,\"currentWeight\":0E-12,\"id\":693,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00038\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VJ)\",\"name\":\"三相四线多功能电能表T46(VJ)\",\"position\":\"\",\"purchaseDecimal\":797.040000,\"standard\":\"DTSD1226-T46(VJ)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":275400.000000000000,\"currentStockPrice\":275400.000000000000,\"currentUnitPrice\":550.800000,\"currentWeight\":0E-12,\"id\":692,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00036\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VH)\",\"name\":\"三相四线多功能电能表T46(VH)\",\"position\":\"\",\"purchaseDecimal\":550.800000,\"standard\":\"DTSD1226-T46(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":14460.000000,\"currentStockMovePrice\":7027560.000000000000,\"currentStockPrice\":7027560.000000000000,\"currentUnitPrice\":486.000000,\"currentWeight\":0E-12,\"id\":691,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"name\":\"三相四线多功能电能表T46(VC)\",\"position\":\"\",\"purchaseDecimal\":486.000000,\"standard\":\"DTSD1226-T46(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":13070.000000,\"currentStockMovePrice\":6775488.000000000000,\"currentStockPrice\":6775488.000000000000,\"currentUnitPrice\":518.400000,\"currentWeight\":0E-12,\"id\":690,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VK)\",\"name\":\"三相四线多功能电能表SXVI(VK)-新\",\"position\":\"\",\"purchaseDecimal\":518.400000,\"standard\":\"DTSD1226-SXVI(VK)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":120.000000,\"currentStockMovePrice\":82814.400000000000,\"currentStockPrice\":82814.400000000000,\"currentUnitPrice\":690.120000,\"currentWeight\":0E-12,\"id\":689,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00026\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VH)\",\"name\":\"三相四线多功能电能表SXVI(VH)-新\",\"position\":\"\",\"purchaseDecimal\":690.120000,\"standard\":\"DTSD1226-SXVI(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":400.000000,\"currentStockMovePrice\":245592.000000000000,\"currentStockPrice\":245592.000000000000,\"currentUnitPrice\":613.980000,\"currentWeight\":0E-12,\"id\":688,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00020\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VG)\",\"name\":\"三相四线多功能电能表SXVI(VG)-新\",\"position\":\"\",\"purchaseDecimal\":613.980000,\"standard\":\"DTSD1226-SXVI(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":48041.000000,\"currentStockMovePrice\":23153359.950000000000,\"currentStockPrice\":23153359.950000000000,\"currentUnitPrice\":481.950000,\"currentWeight\":0E-12,\"id\":687,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.C.2.00025\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-CXVI(VA)\",\"name\":\"三相四线多功能电能表CXVI(VA)-新\",\"position\":\"\",\"purchaseDecimal\":481.950000,\"standard\":\"DTSD1226-CXVI(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":42490.000000,\"currentStockMovePrice\":17139616.200000000000,\"currentStockPrice\":17139616.200000000000,\"currentUnitPrice\":403.380000,\"currentWeight\":0E-12,\"id\":686,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.0004500005\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VH)\",\"name\":\"单相多功能电能表T49(VH)_(马来市场)\",\"position\":\"\",\"purchaseDecimal\":403.380000,\"standard\":\"DDSD1226-T49(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":40000.000000,\"currentStockMovePrice\":8748000.000000000000,\"currentStockPrice\":8748000.000000000000,\"currentUnitPrice\":218.700000,\"currentWeight\":0E-12,\"id\":685,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.00032\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"name\":\"单相多功能电能表T49(VB)\",\"position\":\"\",\"purchaseDecimal\":218.700000,\"standard\":\"DDSD1226-T49(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9279, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-30 08:17:57', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false,\"mId\":688}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"unitPrice\":613.980000,\"number\":\"SM2503280024\",\"materialName\":\"三相四线多功能电能表SXVI(VG)-新\",\"depotName\":\"半成品仓库\",\"allPrice\":245592.000000000000,\"basicNumber\":400.000000,\"type\":\"总部入库入库\",\"barCode\":\"C.3.S.0.00020\",\"operTime\":\"2025-03-28 00:00:00\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9280, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-30 08:17:59', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"SM2503280024\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1743105600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":245592.000000,\"defaultNumber\":\"SM2503280024\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"总部入库入库\",\"discount\":100.000000,\"discountLastMoney\":245592.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1276,\"lastDebt\":245592.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":400.000000,\"materialsList\":\"DTSD1226-SXVI(VG)\",\"number\":\"SM2503280024\",\"operTime\":1743105600000,\"operTimeStr\":\"2025-03-28 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":245592.000000,\"type\":\"入库\"}}'); +INSERT INTO `tbl_log` VALUES (9281, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 08:17:59', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"SM2503280024\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1743105600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":245592.000000,\"defaultNumber\":\"SM2503280024\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"总部入库入库\",\"discount\":100.000000,\"discountLastMoney\":245592.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1276,\"lastDebt\":245592.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":400.000000,\"materialsList\":\"DTSD1226-SXVI(VG)\",\"number\":\"SM2503280024\",\"operTime\":1743105600000,\"operTimeStr\":\"2025-03-28 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":245592.000000,\"type\":\"入库\"}}'); +INSERT INTO `tbl_log` VALUES (9282, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 08:17:59', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1276}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9283, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 08:17:59', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1276,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"DTSD1226-SXVI(VG)\",\"materialExtendId\":108,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":400.000000,\"depotId\":25,\"remark\":\"来源单据:SH2503280021\",\"purchaseDecimal\":613.980000,\"imgName\":\"\",\"operNumber\":400.000000,\"anotherDepotId\":\"\",\"basicNumber\":400.000000,\"taxLastMoney\":245592.000000,\"model\":\"DTSD1226-SXVI(VG)\",\"id\":1080,\"enableSerialNumber\":\"0\",\"stock\":400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":613.980000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"半成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":0.000000,\"imgSmall\":\"\",\"barCode\":\"C.3.S.0.00020\",\"taxUnitPrice\":613.980000,\"taxRate\":0.000000,\"unit\":\"件\",\"allPrice\":245592.000000,\"name\":\"三相四线多功能电能表SXVI(VG)-新\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":245592.000000,\"finishPurchaseNumber\":0,\"operNumber\":400.000000,\"taxLastMoney\":245592.000000,\"weight\":0,\"taxMoney\":0.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (9284, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 08:17:59', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"SM2503280024\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9285, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 08:17:59', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9286, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 08:17:59', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9287, NULL, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 08:18:05', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9288, NULL, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 08:18:05', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9289, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-09-30 08:18:05', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9290, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-30 08:18:05', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9291, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-30 08:18:06', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9292, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 08:18:06', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9293, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-30 08:18:06', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9294, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 08:18:06', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9295, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 08:18:06', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9296, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 08:18:06', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9297, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 08:18:06', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9298, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 08:18:09', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":2,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":200.000000,\"currentStockMovePrice\":66938.400000000000,\"currentStockPrice\":66938.400000000000,\"currentUnitPrice\":334.692000,\"currentWeight\":0E-12,\"id\":694,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00421\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR62(VB)\",\"name\":\"MD-LR62(VB)\",\"position\":\"\",\"purchaseDecimal\":334.692000,\"standard\":\"MD-LR62(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":34473.000000,\"currentStockMovePrice\":27476359.920000000000,\"currentStockPrice\":27476359.920000000000,\"currentUnitPrice\":797.040000,\"currentWeight\":0E-12,\"id\":693,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00038\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VJ)\",\"name\":\"三相四线多功能电能表T46(VJ)\",\"position\":\"\",\"purchaseDecimal\":797.040000,\"standard\":\"DTSD1226-T46(VJ)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":275400.000000000000,\"currentStockPrice\":275400.000000000000,\"currentUnitPrice\":550.800000,\"currentWeight\":0E-12,\"id\":692,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00036\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VH)\",\"name\":\"三相四线多功能电能表T46(VH)\",\"position\":\"\",\"purchaseDecimal\":550.800000,\"standard\":\"DTSD1226-T46(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":14460.000000,\"currentStockMovePrice\":7027560.000000000000,\"currentStockPrice\":7027560.000000000000,\"currentUnitPrice\":486.000000,\"currentWeight\":0E-12,\"id\":691,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"name\":\"三相四线多功能电能表T46(VC)\",\"position\":\"\",\"purchaseDecimal\":486.000000,\"standard\":\"DTSD1226-T46(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":13070.000000,\"currentStockMovePrice\":6775488.000000000000,\"currentStockPrice\":6775488.000000000000,\"currentUnitPrice\":518.400000,\"currentWeight\":0E-12,\"id\":690,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VK)\",\"name\":\"三相四线多功能电能表SXVI(VK)-新\",\"position\":\"\",\"purchaseDecimal\":518.400000,\"standard\":\"DTSD1226-SXVI(VK)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":120.000000,\"currentStockMovePrice\":82814.400000000000,\"currentStockPrice\":82814.400000000000,\"currentUnitPrice\":690.120000,\"currentWeight\":0E-12,\"id\":689,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00026\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VH)\",\"name\":\"三相四线多功能电能表SXVI(VH)-新\",\"position\":\"\",\"purchaseDecimal\":690.120000,\"standard\":\"DTSD1226-SXVI(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":400.000000,\"currentStockMovePrice\":245592.000000000000,\"currentStockPrice\":245592.000000000000,\"currentUnitPrice\":613.980000,\"currentWeight\":0E-12,\"id\":688,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00020\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VG)\",\"name\":\"三相四线多功能电能表SXVI(VG)-新\",\"position\":\"\",\"purchaseDecimal\":613.980000,\"standard\":\"DTSD1226-SXVI(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":48041.000000,\"currentStockMovePrice\":23153359.950000000000,\"currentStockPrice\":23153359.950000000000,\"currentUnitPrice\":481.950000,\"currentWeight\":0E-12,\"id\":687,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.C.2.00025\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-CXVI(VA)\",\"name\":\"三相四线多功能电能表CXVI(VA)-新\",\"position\":\"\",\"purchaseDecimal\":481.950000,\"standard\":\"DTSD1226-CXVI(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":42490.000000,\"currentStockMovePrice\":17139616.200000000000,\"currentStockPrice\":17139616.200000000000,\"currentUnitPrice\":403.380000,\"currentWeight\":0E-12,\"id\":686,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.0004500005\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VH)\",\"name\":\"单相多功能电能表T49(VH)_(马来市场)\",\"position\":\"\",\"purchaseDecimal\":403.380000,\"standard\":\"DDSD1226-T49(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":40000.000000,\"currentStockMovePrice\":8748000.000000000000,\"currentStockPrice\":8748000.000000000000,\"currentUnitPrice\":218.700000,\"currentWeight\":0E-12,\"id\":685,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.00032\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"name\":\"单相多功能电能表T49(VB)\",\"position\":\"\",\"purchaseDecimal\":218.700000,\"standard\":\"DDSD1226-T49(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9299, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 08:18:13', 0, 'MaterialController.getMaterialDepotStock(..)', NULL, 'GET /apis/material/getMaterialDepotStock', '{\"depotIds\":\"\",\"mId\":689}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"allPrice\":82814.400000000000,\"currentNumber\":120.000000,\"currentUnitPrice\":690.120000,\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":139,\"materialId\":689,\"purchaseDecimal\":690.120000,\"unitPrice\":690.120000}]}}'); +INSERT INTO `tbl_log` VALUES (9300, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 08:18:27', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":3,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":112400.000000,\"currentStockMovePrice\":9013356.000000000000,\"currentStockPrice\":9013356.000000000000,\"currentUnitPrice\":80.190000,\"currentWeight\":0E-12,\"id\":684,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.C.2.00023\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDS1226-C8(VG)\",\"name\":\"单相有功电能表C8(VG)\",\"position\":\"\",\"purchaseDecimal\":80.190000,\"standard\":\"DDS1226-C8(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":20000.000000,\"currentStockMovePrice\":1717200.000000000000,\"currentStockPrice\":1717200.000000000000,\"currentUnitPrice\":85.860000,\"currentWeight\":0E-12,\"id\":683,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.C.2.00021\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDS1226-C8(VD)\",\"name\":\"单相有功电能表C8(VD)\",\"position\":\"\",\"purchaseDecimal\":85.860000,\"standard\":\"DDS1226-C8(VD)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9301, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-09-30 08:18:29', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9302, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 08:18:29', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9303, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 08:18:29', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9304, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 08:18:29', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9305, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-30 08:18:29', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9306, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 08:18:29', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9307, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 08:18:29', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9308, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-09-30 08:18:35', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9309, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 08:18:35', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9310, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 08:18:35', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9311, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-30 08:18:35', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售,采购退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":167,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9312, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 08:18:35', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9313, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 08:18:35', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9314, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 08:18:35', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9315, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-09-30 08:18:37', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9316, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-09-30 08:18:37', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9317, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-09-30 08:18:37', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9318, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-09-30 08:18:37', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9319, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 08:18:37', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9320, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 08:18:37', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9321, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-09-30 08:18:37', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":41,\"rows\":[{\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718802000,\"creator\":63,\"debt\":595000.000000,\"defaultNumber\":\"SM2609180001\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discountLastMoney\":595000.000000,\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1721,\"lastDebt\":595000.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79\",\"number\":\"SM2609180001\",\"operTime\":1789733163000,\"operTimeStr\":\"2026-09-18 16:06:03\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"totalPrice\":595000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":183.600000,\"defaultNumber\":\"SM2608070007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1423,\"lastDebt\":183.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1836.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608070007\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":183.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":2077650.000000,\"defaultNumber\":\"SM2608070002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1422,\"lastDebt\":2077650.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":9500.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608070002\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":2077650.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2608060005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1421,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608060005\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":816.000000,\"defaultNumber\":\"SM2608060004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1420,\"lastDebt\":816.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":8160.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608060004\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784836800000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2607240005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1419,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607240005\",\"operTime\":1784836800000,\"operTimeStr\":\"2026-07-24 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":551124.000000,\"defaultNumber\":\"SM2607230004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1418,\"lastDebt\":551124.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230004\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":551124.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":1285956.000000,\"defaultNumber\":\"SM2607230002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1417,\"lastDebt\":1285956.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5880.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230002\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1285956.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":1020.000000,\"defaultNumber\":\"SM2607220006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1416,\"lastDebt\":1020.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":10200.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607220006\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":275562.000000,\"defaultNumber\":\"SM2607220004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1415,\"lastDebt\":275562.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607220004\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":275562.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9322, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-09-30 08:18:40', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1,\"organId\":89}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9323, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-09-30 08:18:40', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9324, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-09-30 08:18:40', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9325, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-09-30 08:18:40', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9326, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-09-30 08:18:40', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9327, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-09-30 08:18:40', 0, 'SystemConfigController.fileSizeLimit(..)', NULL, 'GET /apis/systemConfig/fileSizeLimit', '{}', '{\"code\":200,\"data\":10485760}'); +INSERT INTO `tbl_log` VALUES (9328, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-09-30 08:18:40', 0, 'HeadquartersInboundController.details(..)', NULL, 'GET /apis/headquartersInbound/details', '{\"headerId\":1420}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"id\":747,\"depotId\":\"25\",\"depotName\":\"半成品仓库\",\"barCode\":\"C.4.T.0.00547\",\"materialCode\":\"C.4.T.0.00547\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"materialName\":\"MT-3NSXL(VC)RF通讯模块\",\"standard\":\"MT-3NSXL(VC)\",\"specification\":\"MT-3NSXL(VC)\",\"operNumber\":8160.000000,\"qtyPriceAmount\":8160.000000,\"unitPrice\":0.100000,\"finallyPrice\":0.100000,\"totalNetMoney\":816.000000,\"allPrice\":816.000000,\"totalMoney\":816.000000,\"itemJson\":\"{\\\"出货量\\\": 8160.0, \\\"价税合计\\\": 816.0, \\\"商品单价\\\": 0.1, \\\"成品名称\\\": \\\"MT-3NSXL(VC)RF通讯模块\\\", \\\"未税金额\\\": 816.0, \\\"规格型号\\\": \\\"MT-3NSXL(VC)\\\", \\\"成品物料代码\\\": \\\"C.4.T.0.00547\\\"}\",\"sourceDocNo\":\"SH2608060003\"}]}}'); +INSERT INTO `tbl_log` VALUES (9329, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-09-30 08:19:09', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":41,\"rows\":[{\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718802000,\"creator\":63,\"debt\":595000.000000,\"defaultNumber\":\"SM2609180001\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discountLastMoney\":595000.000000,\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1721,\"lastDebt\":595000.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79\",\"number\":\"SM2609180001\",\"operTime\":1789733163000,\"operTimeStr\":\"2026-09-18 16:06:03\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"totalPrice\":595000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":183.600000,\"defaultNumber\":\"SM2608070007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1423,\"lastDebt\":183.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1836.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608070007\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":183.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":2077650.000000,\"defaultNumber\":\"SM2608070002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1422,\"lastDebt\":2077650.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":9500.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608070002\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":2077650.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2608060005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1421,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608060005\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":816.000000,\"defaultNumber\":\"SM2608060004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1420,\"lastDebt\":816.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":8160.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608060004\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784836800000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2607240005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1419,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607240005\",\"operTime\":1784836800000,\"operTimeStr\":\"2026-07-24 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":551124.000000,\"defaultNumber\":\"SM2607230004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1418,\"lastDebt\":551124.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230004\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":551124.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":1285956.000000,\"defaultNumber\":\"SM2607230002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1417,\"lastDebt\":1285956.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5880.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230002\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1285956.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":1020.000000,\"defaultNumber\":\"SM2607220006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1416,\"lastDebt\":1020.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":10200.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607220006\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":275562.000000,\"defaultNumber\":\"SM2607220004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1415,\"lastDebt\":275562.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607220004\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":275562.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9330, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-09-30 08:19:18', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9331, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-09-30 08:19:18', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9332, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-09-30 08:19:18', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9333, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-09-30 08:19:18', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9334, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-09-30 08:19:18', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9335, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-09-30 08:19:18', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (9336, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-09-30 08:19:18', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9337, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-09-30 08:19:18', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9338, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-09-30 08:19:18', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2107-14\",\"billTime\":1783281600000,\"billTimeStr\":\"2026-07-06 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":102,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2107-14\",\"sourceTime\":\"2026-06-06 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2102-11\",\"billTime\":1782763200000,\"billTimeStr\":\"2026-06-30 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":101,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2102\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2102-11\",\"sourceTime\":\"2026-05-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9339, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-09-30 08:19:18', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (9340, NULL, '接口日志', '43.152.142.142/1.9.116.218', '2026-09-30 08:19:22', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (9341, NULL, '接口日志', '43.174.51.49/1.9.116.218', '2026-09-30 08:19:22', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9342, NULL, '接口日志', '43.152.142.108/1.9.116.218', '2026-09-30 08:19:22', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9343, NULL, '接口日志', '43.152.142.40/1.9.116.218', '2026-09-30 08:19:23', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3t4g8cqh3XzAcsrHK8Y49KayzLKWiCMhViQ7HO/gLjrgYBzx/WmyssrmMRO0kTBgSCoBwSCG7jscZ64PevnXV9dsfD/7UM2r6zL9ktIMCV9rSbc2QUcKCSCSO3fnHNAH0GrRR3t3dSzvEkZEREk37v7qndg8A84/D3p8t2kd0i/aIwvmCJ43HJJAxt9/mXPUY9K4Hwz8bfCvibWYtItxfWt1PkQNfokccj5+WMMrNgnOBkc4xySAfQ/JjW3QPHjy8OAhJ2kdl746jHpxjHFADrmUQQmRpIo1DLuaVsKBkZ59cdPfFE+4wkK0ikkDdGASMkeoI+vtXzh4c0yP43eMdVudYvLq10Sx+SytoJMSK0hJUncHBJWJy7E5JCgfKABt/DXU7nwL8U9U+Hk0r3Omyl5bJtm6SP5POUMcKeYydyhT8/QDLEgHtTz3y3Z22rvAAQBuRfTnqSc4OOnUA9crJLILm3n8qWWGSFmXcEJKsB/d/iBBBx3z69JnkiYywvh9qBnTbnKnI6d84PFeTr+0J4PfT52jj1WCaFV8uOe2WRpckA4xJjIHJ3Mv4nigD1WFLmKGTzZlnlJLJ8vlqOOF78Z78mkK3Je2LOoCs3mBBw3BAPJ4HfHPOPTNcl4A+I2heN0ubfTHkhntQGNtcII5NhxllUMwKZOODxkAgfKW6u+vIdMtLvUbyfy7K2gMsp2E7FQMzNxknjsB296AGyP8AaWjaG6NvKGdFRsESbWw2V7/d7EEZqwfNRWx+9JJ25woHGRk+meMgdx7mvI5/2hvCEV86C21a5hiZgki2kfzHJAZS0gIUg8AqDg89xXpGi+I7LXtIsNR06eO7t7xnWORAY9wUsrMFfDcFeR29+4BsAklgVIwcAnHPv/n0pah8jy7eOG3bylj2gcbvlBGRz6gYz71NQBHHKsjuqg/IcEnjn0x19D9CMV846/fafpv7U5u9UktYrOOeAtJdLmNCbVArH0IYqQx4UgEkAZr6Le6jSZIsO7M2w+WhYIcZ+Yj7vUdfWuP1L4c+HbzXrjWrzQ4r7UJGQJcTStICNqx4eN9yHC9DtPC5PzckA8r+N2rab4j8VeFIfCeoWl5rQdkWewmUsGZ0EI80HAIbeQN3y5zxnJ99lybjOZpJ4I0YrCFUNuJBxuPfacgnHTuAa5nRfhv4N8L6vFqukWENnc7Ht0kaZ5SHbA+TzGYBsBhwM8kdMiurgmhmZWiIn2DYZ1ZTjuQcfQZGO4/AGfP3wT1PT/A3irxToHiC+trKf93tuJpVjgfymdTtZyCdwkVl45UE8VN4VhHi79pDU9c0p5JdK08OJLlmJDAQfZxtdcg7jllJIJVSc5Fev+JPh/4V8W3MVzrejxXNxEpVZVkeJiPQlCCwGOM5xk4xk1NpXh7SvCNjHZaNbxWNluYhDIcByrFnclsyHAUcngLwQBwCNgKvyJOm+Qqybiu7K98kAAZwCRwM+uK+a/gBr+haFf682q3mn2d1LDELaW7kEeQGbcocjABJjJGewODtOPpSN5ntIXVoWkYIWZSShHG4r+GcfhXz38HPhzHqen+JrPxb4ZmTcLcW7Xtu8DqR5hby3IDL/BnHbGcg4oAi8OTxah+0bqF7o9/G+mKkjXd1bP5UUg8pULnbt3AzlCcZyfmyR81eu+Ptbm8LfDzWNUWxjvFVFjFre5kXDsIz5mWO5fm+6Pp3JGn4b8I6L4Ot2g0HSYrRbmQNclZWduFOMs5LEA8AdBuJwMmta7igNlPFcwtdW8uUkhZPMDK3DAr3Xk5HPGfpQB8t33ivxTrXgq/u77xp4dSx1AyyS6PJErXBbd90IIWKkkKVO7jg5GCR6P8As8xyS+ALtE3Io1eSQyK2MERwfKR3BG724rrYPhB4BsPNMfh+22zRmCTz5ZJflbj5d7nY2cYYfMOxGa6Lw34W0bwjp0lhodn9ktZJTMyea8mXIAJy5J6KPyoAuSusnnIbdZ2UhZIfMB+XqpAPGee+OnfAzcqJjODJtWNhx5eWK/UHg/XPvjHGTLQAySKOXb5kavsYMu4ZwR0I96fRRQAxoo2OSozuD5HBz0z+XH04pyqqjCgAZJwB3PJoooAWiiigApjxJI0bMMmNty89Dgj+RNFFADtqhi2BuIAJxyR/kmloooAY8SSNGzDJjbcpz0OCP5E0+iigAooooA//2Q==\",\"uuid\":\"faf29452b6d2406184c55769a33589b6\"}}'); +INSERT INTO `tbl_log` VALUES (9344, NULL, '接口日志', '43.152.142.62/1.9.116.218', '2026-09-30 08:19:23', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9345, NULL, '接口日志', '125.94.247.76/125.118.93.243', '2026-09-30 11:38:59', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9346, NULL, '接口日志', '222.79.116.201/125.118.93.243', '2026-09-30 11:39:00', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9347, NULL, '接口日志', '183.131.72.24/183.128.210.126', '2026-09-30 13:24:45', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9348, NULL, '接口日志', '60.163.165.218/183.128.210.126', '2026-09-30 13:24:45', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9349, 63, '接口日志', '60.163.165.27/183.128.210.126', '2026-09-30 13:24:47', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9350, 63, '接口日志', '60.163.165.87/183.128.210.126', '2026-09-30 13:24:48', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9351, 63, '接口日志', '60.163.165.87/183.128.210.126', '2026-09-30 13:24:49', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9352, 63, '接口日志', '60.163.165.98/183.128.210.126', '2026-09-30 13:24:49', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9353, 63, '接口日志', '60.163.165.157/183.128.210.126', '2026-09-30 13:24:49', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-04\",\"inbound\":100669.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9354, 63, '接口日志', '183.131.72.180/183.128.210.126', '2026-09-30 13:28:31', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9355, 63, '接口日志', '60.163.165.98/183.128.210.126', '2026-09-30 13:28:31', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9356, 63, '接口日志', '183.131.72.24/183.128.210.126', '2026-09-30 13:28:31', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9357, 63, '接口日志', '60.163.165.229/183.128.210.126', '2026-09-30 13:28:31', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9358, 63, '接口日志', '60.163.165.218/183.128.210.126', '2026-09-30 13:28:31', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9359, 63, '接口日志', '183.131.72.35/183.128.210.126', '2026-09-30 13:28:31', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9360, 63, '接口日志', '60.163.165.27/183.128.210.126', '2026-09-30 13:28:31', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-06-30\\\",\\\"endTime\\\":\\\"2026-09-30\\\",\\\"createTimeRange\\\":[\\\"2026-06-29T16:00:00.000Z\\\",\\\"2026-09-29T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1782936000000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303429-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1569,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303429-1PH-WS79-ADD1\",\"operTime\":1782936000000,\"operTimeStr\":\"2026-07-02 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303429\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9361, 63, '接口日志', '120.226.176.193/183.128.210.126', '2026-09-30 13:28:32', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9362, 63, '接口日志', '60.163.165.157/183.128.210.126', '2026-09-30 13:28:33', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9363, NULL, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-02 07:39:23', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9364, NULL, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-02 07:39:23', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9365, NULL, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-02 07:39:25', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9366, NULL, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-02 07:39:25', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3kB2lbE4IWTlQo4G37v5kNUMUb2qtGskly0agjzJfnIJ5yMAduCe+RwKjWeOKd5ZBFK3mGFZosNJjlthAGeOOBn1IHNfPXjnxTH4z+JOpaJq/iBtD8KaWxhuVUEPc+XIqsNq7vMcycrkEKoLbchgQD6QzFcfdk3eW/PlyEYYdjg/oaYqTbI0Nwxljj+ZjGNrkjGSPqM4BFeLfDrwh8PZ/EqXng3xbqlxc2g3XVrMTH50JBAGPLjJAfy2yMgFRwCVI9taZY4lkkBQMVXB5ILEADj3IFADJrgwxIWVfNbGE3YDHjIBOBn0Bxn25wwC6edSo8mL77hzuJPA24zxxuzjvtPPIr5K8O2Fj4v8AEl//AMJ74guLK6t2EYhuJVtypLtvAZwVjCOf9WF/jJAAU11vwthk0340XugeGtYl1PwwizNcksPLlj2AAlTwxEhRN6j5gMj5SaAPoNRNayP5t8jBm83MsZ+WNQA3O4Adjnpkk454vblDBdw3EEgZ5IH/AOsVBdW5mCvGYknTOyV4t5TIwccjBr5/+L3ii78U31z4Q0CeMafo1q93qckcyLFOUVSFUDJIQ4G3P3jyBs3UBc+gI1nScb7hZN4OU2hdoHde/pnJPXt0M0b+ZEj7WXcAdrDBHsfevHf2ct3/AAgt5+6BX+05syZGVPlQcY9+f++a9E8ReKbHw/4Tutf1G1nl0+OONikSqzusjKoG0kDOW5GcY7npQBsXwkaylESM8m35FV9hJ7cgjj156VC87RxT3V07R2oXGwI29BxkkjnOd3IyMAEEck+Uy/tH+FQY/J0zWSN43h4Yh8vtiTr0/wA816R4X8TW3irwxZa3YxTLFdhxGsybDuVmU7tpYKCUPc9R34oA1ESQzTFg8ZLKQyyblYDtg/dPHOB36k9LFIpLKCVKkjOD1H5UtAFa9UtGF+zGYEEfLt3ISMZAbjoT/gcmvnbTtH0XQvj7rsfjmOxa3uFuLyza7XbbyvIwdT8+E+6ZF+Y7Q6kAkgGvouQxR3MTlG8yU+UGX6FufyOPTPuawPFvhHQvFNura/plvcx2h3xyNJIrKv8AHymD0zxkgkCgDw6/TSLv9oDw1/wg8drCN1u92mnSqsQKlmmCsp2EeSBkLweQRuJFfR80nl3MXmS+XGflXLKA7HopyM57jB9c9s4/hvwP4a8I+YdD0iC0kkyGmy0khBxld7ktt+UHbnGRnGa1ZFiv4UkiaOXaMhX5Vgy9GHbKnrjIz6EggHzL4NGheMfFuu3HxJ1AQ38AItrTUryWGKP533x7mYMuxioCbs4LcHkjb+Gl6uj/ABuu/D/hW+nv/DEiy+Zh3eFCI1LSLg7eJFEYc5ypAycg16d4p+HvhPX9XW6v/DgmvXi8qOVJXiWUohKqwRgOAMZOD8qgZA42/C/g7RvB1pdxaJp0Nr9pcSOodnJIUAKXbLFQdxHpuPHJyATeJ59VTwpq82kCWHUYLaZ7bEKyvI6oSuxcnJJwACD9K+ddH1LX/DHgvxHaXfw+1+e91eCY3+sXZmAXKON5UxYAUO5JLZJLZOMAfUAKziORJG2qxOBxngjBH49PUVS1DToNQsJLC6k82weOSK6R5SpaNkIILDnGG9j0OcjkA8I+AXiS90+L+yE8N3s9hc3crzavCsjRwnylIRlVCCcoMZYY8z8/cdb1SPw5pt5rWoXZGn2kLyumEDMR91VzjLEkqBkZO0dckweGvCeg+FNNSy0S2aG3kkMuRM772IXLEknqI19Bx78ya3pGn+JUuNF1S0knspY18+NpHRXUMGUgo3BDKODgn1wMEA+a/wC05fjH45+1eJtdsdD0S1+7FNdpH5UZP3Ig5G+RsfM+MDGTwESvp3Q303+x7KLRJIJtJigWG2lt5xKm1Pk2hsnOMYzk9Dn34z/hTHw8NwYl8NuQv3mN3cgDIyMEvgj6Hjj8Oy8P6PYaBodvpmmWTWVnBu8uB5C5TcxY8lmzkknqetAFq1SIPM8Yc7nyXY8PkZBHYjBxn/ZA7CrNRkMcP5cZkB2g56KSM849ADj1H41JQBEbeEo6eWoV23NtGMt68d/frUtFFACOiyIyOoZWGCpGQRTBBCFKiJApQIQFGNo6D6cnj3oooAeqqihVAVQMAAYAFLRRQAxYYkk8xYkD4I3BRnBOTz9eaVI0jACIq4UKNoxwOg+lFFADqKKKAEdFkRkdQyMMMrDII9DQiLGioihUUYVVGAB6CiigBaKKKAP/2Q==\",\"uuid\":\"5b8f2e7bcf01474aa1cc475fd82eb510\"}}'); +INSERT INTO `tbl_log` VALUES (9367, 63, '用户', '43.174.32.33/1.9.116.218', '2026-10-02 07:39:41', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9368, NULL, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-02 07:39:41', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"684z\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"5b8f2e7bcf01474aa1cc475fd82eb510\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (9369, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-10-02 07:39:42', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9370, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-02 07:39:42', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (9371, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-02 07:39:42', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9372, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-10-02 07:39:42', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9373, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-02 07:39:42', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9374, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-02 07:39:42', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9375, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-10-02 07:39:45', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9376, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-02 07:39:45', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9377, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-02 07:39:45', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9378, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-02 07:39:45', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9379, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-02 07:39:45', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9380, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-02 07:39:45', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9381, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-02 07:39:45', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9382, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-02 07:39:45', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-02\\\",\\\"endTime\\\":\\\"2026-10-02\\\",\\\"createTimeRange\\\":[\\\"2026-07-01T16:00:00.000Z\\\",\\\"2026-10-01T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":32,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9383, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-02 07:39:45', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9384, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-02 07:39:56', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9385, 63, '接口日志', '43.152.156.79/1.9.116.218', '2026-10-02 07:39:56', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (9386, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-02 07:39:56', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9387, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-02 07:39:56', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"零售\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-02\\\",\\\"endTime\\\":\\\"2026-10-02\\\",\\\"createTimeRange\\\":[\\\"2026-07-01T16:00:00.000Z\\\",\\\"2026-10-01T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9388, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-02 07:39:56', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9389, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-02 07:39:56', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9390, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-02 07:39:56', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9391, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-02 07:39:56', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9392, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-02 07:39:58', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9393, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-02 07:39:58', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9394, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-02 07:40:00', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9395, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-02 07:40:00', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9396, NULL, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:00:50', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9397, NULL, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:00:50', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9398, NULL, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-06 06:00:53', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9399, NULL, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-06 06:00:53', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3eU3Ko0cA3SfeWSXGz733eOeB04/GmPJNceSbdjHiTbMrKCVA5II9eAOOzZ54NR2085nuYvspQq7kF5927ptPcgN83TgbTXzz8d4bCT4u6HHqc8sGny2duLuVCS0cRnkDsoweQuTgA89jQB9Fu80clz5zeXb7VMcqkEqTkHtwBwecjknOOBKgkjGZZN+do+VMYPQ468fXpzz6eJfCbwl8PH8SQ6r4d8R319q1ghla2lAjVVdCh+VowWA3HlTgErnqM+3KsbpjaWXeThwTyGz39+n4Y7UAN3pJcbUuPmi/1kSlT1HG7jI9R0pXiZyR5rBGyGUccEY4IwQe+c9z7Y8vu/jp4Z0zWtR0zUV1OO402WaFzHbp5dw6HbhfmJByDjJA4ySM4rqPCnjvS/F+g3ev2Iv4bO3uDA0VzGgbcFU8BSeDvXqeo7CgGdO8bzF1LSRKOFKMOehDdOxyMdDzkGpHTeoG5l5Bypx0OaqWUUckZlD+YnnvJGNhTYTkEEHknJbr69BxXk+q/HbwRb3sot4NV1FkZGinjgRU4IYhWchwMkggj1A4waAPW/tsEl5LZLIyzKoyQOhIJAGeM4GcfzwcJaqVkYJJI0ZUMwlR9xY9wScAY/hA4Pp0rG8KeLtK8YWg1TSJfMtpP3Tb4THJFIqqxjYnhiA+fl464J61B4z8RwaD4G1LxA9uJ5rOMiOKSI8SOQqK6kg7dzITzyBkdqAOolljgjMkrhEBALHoMnH9aYZJXK+XGBtk2yCTI+XHVcZz2P5jg18p6TH4U8UIda+JPjm+/tG53GG3tlaRoow7feIjdUBbcRGAMAg9GFe9fDPTtL0XwhDHoWpXmqaTd3JltDMyu1sjINyMQcAbldiMAgvgjdnIB243ZOSCM8YHQUtVJ4ZnnDjAVThHj4dQeD14I4z7+mVGbdAEAxdCRJYWVY5Rt3H72MMGGO2f5c9xXCa7qvw71DxBdpqcvh6TV7aKKCY6yg/dqdzoqrIMH77btpyuRu6AV3jSsJvLZokLEeXlss4HLfLx/M+vtXJa98PvCHiW7B1HRbKS7hdIxIJmjkkXav3jGwZiFUhd2cbeOM0AeMaw2it+0F4c/wCEISBYxNai6/sk5iLbj5u3Zxt8rAbGBw2f4q+mFijWR5FRQ743MBy2OmT3rltF8F+E/DNvNDodha2E9zvRZ2JeXOQCAzktgMqnaDjIB6811MalIwGbc3Unnk98ZJwPbtQB86fD3SrPVP2hvFTXdvFM9nPe3NsZVLLHMLlVV8Z5I3HGehwRggEfQq29qXuVWBVaVw85EZXzW2gAk/xfKqjvwADxxWHo/gzQdH8T6lrthpgt9Quy4muPPlYy72Ej/Kx2j5gD8v046VuRgSRrJbzMAz7juy2exXB5X6cYI6dQQDJ12507w14c1C+8lD9ls5JktzMUMvlruCg84OQOQCQST1Jz8+2PjPxf4m8O3sw8Y+FdB0uNDbtpNwqJ+6SJQRHF5bsUI42gnJ3ADtX0quYrhGmALuCC+fkXkDjPILHb8uccdyOeQt/hV4FtNWS8Phy0lvHkZmUB2hXcGOTCzFAvBAGMA4xjAwAec/sy/wDM0/8Abp/7Wr0n4m6Pe+Ifhxr2n6aDJL5YdYXikLyNHIspCnktkKQoAwSQMgdL3hXwfoXhS3uLrw3potY72FHkhaWRndlBKgl3YL94jgd+tdJM7LsVXVHclV3KWBO0nsR6Z/CgDwT4af8ACrv+FXj/AISH+w/7Q/f/AG77Xt+09Tjy8/P/AKvZjy++cfNmrH7NtrfJpHiC98sNbPNFFbl5ML5gBMgA5I4aLJxzgenHoGq/CjwRruo3OrXOhwT3N1+9Z47iWJZHI+8djBeeCSByck5JrptLsoNG01re3s4rdIwZPs1nHtiQnqIwAAMkE49WPrQBeKyidWVgYyMMh7e4P6EH26Y5kqk1+yvGTaTmF1z5qAOASMjhSTjrz0z9au0AFJtUOXCjcQATjkgdP5n86KKAAopcOVG4AgNjkA4yP0H5UbVLBsDcBgHHIH+QKKKAFooooAKTaocuFG4gAnHJA6fzP50UUALRRRQAiqqDCqFGScAY5Jyf1paKKACiiigD/9k=\",\"uuid\":\"378a9538c1c14c73b21fb36d581b305a\"}}'); +INSERT INTO `tbl_log` VALUES (9400, 63, '用户', '43.152.142.45/1.9.116.218', '2026-10-06 06:01:18', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9401, NULL, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:01:18', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"5ra6\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"378a9538c1c14c73b21fb36d581b305a\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (9402, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:01:18', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9403, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 06:01:18', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (9404, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-06 06:01:18', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9405, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:01:18', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9406, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-10-06 06:01:18', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9407, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-06 06:01:18', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9408, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 06:01:30', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9409, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-06 06:01:30', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"orderNumber\\\":\\\"\\\",\\\"sourceNumber\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9410, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-06 06:01:32', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9411, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 06:01:32', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9412, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 06:01:32', 0, 'ProductionRequisitionController.getList(..)', NULL, 'GET /apis/productionRequisition/list', '{\"search\":\"{\\\"requisitionNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1790242827000,\"createTime\":1789720317000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":9,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"1\"},{\"createTime\":1789719809000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":8,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (9413, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:02:42', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9414, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:02:42', 0, 'ProductionReportController.getList(..)', NULL, 'GET /apis/productionReport/list', '{\"search\":\"{\\\"reportNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9415, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-06 06:02:45', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9416, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:03:04', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9417, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 06:03:04', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9418, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-10-06 06:03:05', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9419, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:03:05', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9420, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-06 06:03:05', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9421, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-06 06:03:05', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9422, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 06:03:05', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":33,\"rows\":[{\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718802000,\"creator\":63,\"debt\":595000.000000,\"defaultNumber\":\"SM2609180001\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discountLastMoney\":595000.000000,\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1721,\"lastDebt\":595000.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79\",\"number\":\"SM2609180001\",\"operTime\":1789733163000,\"operTimeStr\":\"2026-09-18 16:06:03\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"totalPrice\":595000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":183.600000,\"defaultNumber\":\"SM2608070007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1423,\"lastDebt\":183.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1836.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608070007\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":183.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":2077650.000000,\"defaultNumber\":\"SM2608070002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1422,\"lastDebt\":2077650.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":9500.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608070002\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":2077650.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2608060005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1421,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608060005\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":816.000000,\"defaultNumber\":\"SM2608060004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1420,\"lastDebt\":816.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":8160.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608060004\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784836800000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2607240005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1419,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607240005\",\"operTime\":1784836800000,\"operTimeStr\":\"2026-07-24 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":551124.000000,\"defaultNumber\":\"SM2607230004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1418,\"lastDebt\":551124.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230004\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":551124.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":1285956.000000,\"defaultNumber\":\"SM2607230002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1417,\"lastDebt\":1285956.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5880.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230002\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1285956.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":1020.000000,\"defaultNumber\":\"SM2607220006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1416,\"lastDebt\":1020.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":10200.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607220006\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":275562.000000,\"defaultNumber\":\"SM2607220004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1415,\"lastDebt\":275562.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607220004\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":275562.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9423, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-10-06 06:03:05', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9424, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:03:05', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9425, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:03:05', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9426, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:03:05', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9427, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 06:03:05', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售,采购退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":167,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9428, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:03:05', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9429, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:03:05', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9430, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-10-06 06:03:08', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9431, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-06 06:03:08', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9432, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-06 06:03:08', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9433, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-06 06:03:08', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9434, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:03:08', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9435, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-10-06 06:03:08', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9436, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:03:08', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9437, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:03:09', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9438, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-06 06:03:09', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9439, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-06 06:03:09', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9440, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 06:03:09', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9441, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-06 06:03:09', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9442, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-06 06:03:17', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-10-06\"}}'); +INSERT INTO `tbl_log` VALUES (9443, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 06:03:26', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false,\"mId\":704}', '{\"code\":200,\"data\":{\"total\":69,\"rows\":[{\"unitPrice\":317.500000,\"number\":\"CGRK-260606-01-21\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":839470.000000000000,\"basicNumber\":2644.000000,\"type\":\"采购入库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-27 00:00:00\"},{\"unitPrice\":340.000000,\"number\":\"XSCK-3PH-APEC3-WC-OV-28\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":-50660.000000000000,\"basicNumber\":-149.000000,\"type\":\"销售出库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-23 00:00:00\"},{\"unitPrice\":340.000000,\"number\":\"XSCK-INV_2110-25\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":-340000.000000000000,\"basicNumber\":-1000.000000,\"type\":\"销售出库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-23 00:00:00\"},{\"unitPrice\":340.000000,\"number\":\"XSCK-3PH-APEC3-WC-OV-26\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":-340000.000000000000,\"basicNumber\":-1000.000000,\"type\":\"销售出库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-23 00:00:00\"},{\"unitPrice\":340.000000,\"number\":\"XSCK-3PH-APEC3-WC-OV-27\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":-289340.000000000000,\"basicNumber\":-851.000000,\"type\":\"销售出库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-23 00:00:00\"},{\"unitPrice\":317.500000,\"number\":\"CGRK-260529-01-17\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":1066800.000000000000,\"basicNumber\":3360.000000,\"type\":\"采购入库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-18 00:00:00\"},{\"unitPrice\":340.000000,\"number\":\"XSCK-3PH-APEC3-WC-OV-21\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":-250240.000000000000,\"basicNumber\":-736.000000,\"type\":\"销售出库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-16 00:00:00\"},{\"unitPrice\":340.000000,\"number\":\"XSCK-3PH-APEC3-WC-OV-22\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":-89760.000000000000,\"basicNumber\":-264.000000,\"type\":\"销售出库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-16 00:00:00\"},{\"unitPrice\":340.000000,\"number\":\"XSCK-3PH-APEC3-WC-OV-20\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":-340000.000000000000,\"basicNumber\":-1000.000000,\"type\":\"销售出库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-16 00:00:00\"},{\"unitPrice\":340.000000,\"number\":\"XSCK-3PH-APEC3-WC-OV-19\",\"materialName\":\"3PH APEC3-WC\",\"depotName\":\"成品仓库\",\"allPrice\":-95200.000000000000,\"basicNumber\":-280.000000,\"type\":\"销售出库\",\"barCode\":\"3PH-APEC3-WC\",\"operTime\":\"2026-06-16 00:00:00\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9444, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 06:03:42', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-3PH-APEC3-WC-OV-20\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1781553600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":374000.000000,\"defaultNumber\":\"XSCK-3PH-APEC3-WC-OV-20\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":374000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1703,\"lastDebt\":374000.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42260527-3PH-APEC3-WC-OV\",\"materialCount\":1000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSCK-3PH-APEC3-WC-OV-20\",\"operTime\":1781553600000,\"operTimeStr\":\"2026-06-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":374000.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (9445, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:03:42', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-3PH-APEC3-WC-OV-20\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1781553600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":374000.000000,\"defaultNumber\":\"XSCK-3PH-APEC3-WC-OV-20\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":374000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1703,\"lastDebt\":374000.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42260527-3PH-APEC3-WC-OV\",\"materialCount\":1000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSCK-3PH-APEC3-WC-OV-20\",\"operTime\":1781553600000,\"operTimeStr\":\"2026-06-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:3PH APEC3 WC(OV)-12,749;客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":374000.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (9446, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:03:42', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1703}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9447, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-06 06:03:42', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSCK-3PH-APEC3-WC-OV-20\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9448, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-06 06:03:42', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9449, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:03:42', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9450, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:03:42', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1703,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"3PH APEC3-WC\",\"materialExtendId\":124,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":1000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":317.500000,\"imgName\":\"\",\"operNumber\":1000.000000,\"anotherDepotId\":\"\",\"basicNumber\":1000.000000,\"taxLastMoney\":374000.000000,\"model\":\"3PH APEC3-WC\",\"id\":1508,\"enableSerialNumber\":\"0\",\"stock\":7223.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":340.000000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":34000.000000,\"imgSmall\":\"\",\"barCode\":\"3PH-APEC3-WC\",\"taxUnitPrice\":374.000000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":340000.000000,\"name\":\"3PH APEC3-WC\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":340000.000000,\"finishPurchaseNumber\":0,\"operNumber\":1000.000000,\"taxLastMoney\":374000.000000,\"weight\":0,\"taxMoney\":34000.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (9451, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:07:28', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9452, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 06:07:28', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9453, NULL, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:20:12', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9454, NULL, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:20:12', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9455, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:20:13', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9456, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:20:13', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9457, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:20:14', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9458, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:20:14', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9459, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:20:14', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9460, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:20:20', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9461, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:20:20', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9462, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:20:20', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9463, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:20:20', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9464, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:20:20', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9465, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:20:20', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9466, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:20:20', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9467, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:20:20', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9468, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:20:20', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9469, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:20:36', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9470, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:20:36', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9471, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:20:36', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9472, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:20:36', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"付款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":947751.900000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":104,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":947751.900000,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"billTime\":1785700800000,\"billTimeStr\":\"2026-08-03 00:00:00\",\"changeAmount\":954860.058400,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":100,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260415-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":954860.058400,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":236946.640000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":92,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260414-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":236946.640000,\"type\":\"付款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9473, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:20:36', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9474, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:20:36', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (9475, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:20:36', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9476, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:20:36', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"vendor\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (9477, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:20:39', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9478, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:20:39', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9479, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:20:40', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (9480, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:20:41', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9481, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:20:41', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9482, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:20:49', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9483, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:20:49', 0, 'AssetDeviceController.options()', NULL, 'GET /apis/assetDevice/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"creator\":63,\"purchaseDate\":\"2025-01-15\",\"assetCode\":\"FA-IT-2025-006\",\"serialNumber\":\"CN-R760-25011501\",\"keeper\":\"赵敏\",\"enabledDate\":\"2025-01-22\",\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"updateTime\":1789718123000,\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"manufacturer\":\"Dell\",\"deleteFlag\":\"0\",\"useDepartment\":\"信息技术部\",\"deviceCategory\":\"服务器\",\"createTime\":1789718123000,\"assetId\":6,\"nextMaintenanceDate\":\"2026-12-15\",\"location\":\"数据中心 A03-U18\",\"model\":\"PowerEdge R760\",\"id\":8,\"status\":\"IN_USE\"},{\"creator\":63,\"lastInventoryTime\":\"2026-09-21\",\"purchaseDate\":\"2024-04-06\",\"assetCode\":\"FA-QC-2024-003\",\"serialNumber\":\"KY-Z2-24040615\",\"keeper\":\"陈晨\",\"enabledDate\":\"2024-04-18\",\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"updateTime\":1790003830000,\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"manufacturer\":\"Koh Young\",\"deleteFlag\":\"0\",\"useDepartment\":\"品质部\",\"deviceCategory\":\"检测设备\",\"createTime\":1789718123000,\"assetId\":3,\"nextMaintenanceDate\":\"2026-11-05\",\"location\":\"一车间 AOI 检测区\",\"model\":\"Zenith 2\",\"id\":5,\"status\":\"IN_USE\"},{\"creator\":63,\"lastInventoryTime\":\"2026-09-21\",\"purchaseDate\":\"2024-04-06\",\"assetCode\":\"FA-QC-2024-004\",\"serialNumber\":\"KY-8030-24040608\",\"keeper\":\"陈晨\",\"enabledDate\":\"2024-04-18\",\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"updateTime\":1789986959000,\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"manufacturer\":\"Koh Young\",\"deleteFlag\":\"0\",\"useDepartment\":\"品质部\",\"deviceCategory\":\"检测设备\",\"createTime\":1789718123000,\"assetId\":4,\"nextMaintenanceDate\":\"2026-11-06\",\"location\":\"一车间 印刷检测区\",\"model\":\"KY8030-3\",\"id\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-18\",\"assetCode\":\"FA-SMT-2024-001\",\"serialNumber\":\"NPMD3A24031801\",\"keeper\":\"王磊\",\"enabledDate\":\"2024-04-08\",\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"updateTime\":1789718123000,\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"manufacturer\":\"Panasonic\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"deviceCategory\":\"贴装设备\",\"createTime\":1789718123000,\"assetId\":1,\"nextMaintenanceDate\":\"2026-10-15\",\"location\":\"一车间 SMT-01 线 A 工位\",\"model\":\"Panasonic NPM-D3A\",\"id\":2,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-18\",\"assetCode\":\"FA-SMT-2024-001\",\"serialNumber\":\"NPMW2S24031802\",\"keeper\":\"王磊\",\"enabledDate\":\"2024-04-08\",\"remark\":\"负责异形件及高精度元件贴装\",\"updateTime\":1789718123000,\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"manufacturer\":\"Panasonic\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"deviceCategory\":\"贴装设备\",\"createTime\":1789718123000,\"assetId\":1,\"nextMaintenanceDate\":\"2026-10-16\",\"location\":\"一车间 SMT-01 线 B 工位\",\"model\":\"Panasonic NPM-W2S\",\"id\":3,\"status\":\"IN_USE\"},{\"creator\":63,\"lastInventoryTime\":\"2026-09-18\",\"purchaseDate\":\"2024-03-18\",\"assetCode\":\"FA-SMT-2024-001\",\"serialNumber\":\"DEK24NH03187\",\"keeper\":\"王磊\",\"enabledDate\":\"2024-04-08\",\"remark\":\"配置 2D 检测与自动擦网单元\",\"updateTime\":1789726082000,\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"manufacturer\":\"ASMPT\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"deviceCategory\":\"印刷设备\",\"createTime\":1789718123000,\"assetId\":1,\"nextMaintenanceDate\":\"2026-10-08\",\"location\":\"一车间 SMT-01 线前段\",\"model\":\"DEK NeoHorizon 03iX\",\"id\":1,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-18\",\"assetCode\":\"FA-SMT-2024-002\",\"serialNumber\":\"HLR1936-2403268\",\"keeper\":\"王磊\",\"enabledDate\":\"2024-04-10\",\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"updateTime\":1789718123000,\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"manufacturer\":\"Heller Industries\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"deviceCategory\":\"焊接设备\",\"createTime\":1789718123000,\"assetId\":2,\"nextMaintenanceDate\":\"2026-10-20\",\"location\":\"一车间 SMT-01 线后段\",\"model\":\"HELLER 1936MK7\",\"id\":4,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-02-10\",\"assetCode\":\"FA-TOOL-2025-008\",\"serialNumber\":\"SAWA-A1000-250210\",\"keeper\":\"王磊\",\"enabledDate\":\"2025-02-18\",\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"updateTime\":1789718123000,\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"manufacturer\":\"SAWA\",\"deleteFlag\":\"0\",\"useDepartment\":\"SMT生产部\",\"deviceCategory\":\"工装设备\",\"createTime\":1789718123000,\"assetId\":8,\"nextMaintenanceDate\":\"2026-11-10\",\"location\":\"一车间 钢网房\",\"model\":\"SC-A1000\",\"id\":10,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2023-11-20\",\"assetCode\":\"FA-UTIL-2023-005\",\"serialNumber\":\"AC-GA22-2311209\",\"keeper\":\"陈晨\",\"enabledDate\":\"2023-12-01\",\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"updateTime\":1789718123000,\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"manufacturer\":\"Atlas Copco\",\"deleteFlag\":\"0\",\"useDepartment\":\"设备动力部\",\"deviceCategory\":\"动力设备\",\"createTime\":1789718123000,\"assetId\":5,\"nextMaintenanceDate\":\"2026-10-01\",\"location\":\"动力站 1 号机位\",\"model\":\"GA22 VSD+\",\"id\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-22\",\"assetCode\":\"FA-WH-2024-007\",\"serialNumber\":\"TY-8FBE20-240722\",\"keeper\":\"张伟\",\"enabledDate\":\"2024-08-01\",\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"updateTime\":1789718123000,\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"manufacturer\":\"Toyota\",\"deleteFlag\":\"0\",\"useDepartment\":\"仓储物流部\",\"deviceCategory\":\"物流设备\",\"createTime\":1789718123000,\"assetId\":7,\"nextMaintenanceDate\":\"2026-10-25\",\"location\":\"原材料仓充电区\",\"model\":\"8FBE20\",\"id\":9,\"status\":\"IN_USE\"}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9484, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:20:49', 0, 'AssetController.options()', NULL, 'GET /apis/asset/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"creator\":63,\"assetCode\":\"SIM-896019200694297052\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"UITM Dungun\",\"externalId\":\"6\",\"originalValue\":0.000000,\"specification\":\"183.171.146.98\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019200694297052\",\"location\":\"SMT (???)\",\"id\":270,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2020-12-16\",\"assetCode\":\"SIM-896019190221500578\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"5\",\"originalValue\":0.000000,\"specification\":\"183.171.14.125\",\"remark\":\"启用日期: 2020-12-16\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500578\",\"location\":\"UITM Dungun\",\"id\":269,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2020-12-16\",\"assetCode\":\"SIM-896019190221500576\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"1\",\"originalValue\":0.000000,\"specification\":\"183.171.144.65\",\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500576\",\"location\":\"Genting\",\"id\":268,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-22\",\"assetCode\":\"SIM-896019210381607778\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"2\",\"originalValue\":0.000000,\"specification\":\"183.171.15.60\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607778\",\"location\":\"Genting\",\"id\":267,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-22\",\"assetCode\":\"SIM-896019210381607781\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"9\",\"originalValue\":0.000000,\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607781\",\"location\":\"SMT (RnD) Modem RnD\",\"id\":266,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-15\",\"assetCode\":\"SIM-896019210381607777\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"3\",\"originalValue\":0.000000,\"specification\":\"183.171.40.182\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607777\",\"location\":\"Genting\",\"id\":265,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-15\",\"assetCode\":\"SIM-896019210381607782\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"4\",\"originalValue\":0.000000,\"specification\":\"183.171.40.117\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607782\",\"location\":\"Genting\",\"id\":264,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-29\",\"assetCode\":\"SIM-896019210381607784\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"7\",\"originalValue\":0.000000,\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607784\",\"location\":\"SMT (Modem-Production)\",\"id\":263,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-29\",\"assetCode\":\"SIM-896019210381607783\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"8\",\"originalValue\":0.000000,\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607783\",\"location\":\"SMT (RnD) Modem Store\",\"id\":262,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607785\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"10\",\"originalValue\":0.000000,\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607785\",\"location\":\"SMT (RnD) Alyaa\",\"id\":261,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607786\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"11\",\"originalValue\":0.000000,\"specification\":\"183.171.208.37 / KM08-LTE Modem / 21070013\",\"remark\":\"设备序列号: 21070013;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607786\",\"location\":\"SMT (RnD) Alyaa\",\"id\":260,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381702562\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"12\",\"originalValue\":0.000000,\"specification\":\"183.171.144.61\",\"remark\":\"启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702562\",\"location\":\"Loan to Hanif/Adha (22-May-2026); \",\"id\":259,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607780\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"14\",\"originalValue\":0.000000,\"specification\":\"183.171.208.37\",\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607780\",\"location\":\"POC AEON\",\"id\":258,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019190221500577\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"15\",\"originalValue\":0.000000,\"specification\":\"183.171.144.61\",\"remark\":\"启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500577\",\"location\":\"Kompleks Pertama\",\"id\":257,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607779\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"13\",\"originalValue\":0.000000,\"specification\":\"183.171.151.171\",\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607779\",\"location\":\"POC AEON\",\"id\":256,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702569\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"18\",\"originalValue\":0.000000,\"specification\":\"183.171.11.200\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702569\",\"location\":\"With Amir\",\"id\":255,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702570\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"19\",\"originalValue\":0.000000,\"specification\":\"183.171.214.141\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702570\",\"location\":\"With Amir\",\"id\":254,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702571\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"23\",\"originalValue\":0.000000,\"specification\":\"183.171.9.45\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702571\",\"location\":\"R&D room, SMT\",\"id\":253,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702568\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"24\",\"originalValue\":0.000000,\"specification\":\"183.171.214.217 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702568\",\"location\":\"Molnlycke Health Care\",\"id\":252,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702567\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"25\",\"originalValue\":0.000000,\"specification\":\"183.171.12.143 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702567\",\"location\":\"Molnlycke Health Care\",\"id\":251,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702566\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"26\",\"originalValue\":0.000000,\"specification\":\"183.171.11.123 / Lora Gateway\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702566\",\"location\":\"GT3.1 (Nur)\",\"id\":250,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702565\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"27\",\"originalValue\":0.000000,\"specification\":\"183.171.12.136 / Lora Gateway\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702565\",\"location\":\"Menicon Malaysia\",\"id\":249,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702564\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"28\",\"originalValue\":0.000000,\"specification\":\"183.171.10.11 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702564\",\"location\":\"First Solar Malaysia\",\"id\":248,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702563\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"29\",\"originalValue\":0.000000,\"specification\":\"183.171.11.141 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702563\",\"location\":\"First Solar Malaysia\",\"id\":247,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2023-09-18\",\"assetCode\":\"SAS-SW-2\",\"quantity\":15.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"2\",\"originalValue\":8700.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV230902\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Home & Business\",\"id\":246,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-01-11\",\"assetCode\":\"SAS-SW-3\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"3\",\"originalValue\":1160.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240101\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Home & Business\",\"id\":245,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-27\",\"assetCode\":\"SAS-SW-4\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"4\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro\",\"id\":244,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-03\",\"assetCode\":\"SAS-SW-5\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"5\",\"originalValue\":580.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240402\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro Plus\",\"id\":243,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-01-14\",\"assetCode\":\"SAS-SW-6\",\"quantity\":4.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"6\",\"originalValue\":2320.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro Plus\",\"id\":242,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-02-13\",\"assetCode\":\"SAS-SW-7\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"7\",\"originalValue\":750.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240201\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Home & Business\",\"id\":241,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-03\",\"assetCode\":\"SAS-SW-8\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"8\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240401;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Pro\",\"id\":240,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-06-21\",\"assetCode\":\"SAS-SW-9\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"9\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240601;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"HR\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Pro\",\"id\":239,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-01-21\",\"assetCode\":\"SAS-SW-10\",\"quantity\":10.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"10\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;许可证: Smt@123;发票号: INV260101;原备注: Bundled with 10 unit of PC purchase for Lab.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"Laboratory\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business\",\"id\":238,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-11\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"11\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;原备注: Bundled with 1 unit of Laptop\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"Tech & Technology\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business\",\"id\":237,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-12\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"12\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: BX27V-J9QMG-3VVWY-7JTYT-94CXB\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":236,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-13\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"13\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: GTTC2-XH8PW-3WJFH-76VFQ-PHYX9\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":235,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-14\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"14\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: WY8KV-GQ39X-2WQF2-V8R93-RY6CT\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":234,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-15\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"15\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: YBDDT-C4QPP-J6T63-DQMB8-9XB29;原备注: Written: Burnny / Asus\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":233,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-16\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"16\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: XG2WV-YRDV4-VQWQ2-XQQ26-XJ3FF;原备注: Written: SGH109RCWK\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":232,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-10-14\",\"assetCode\":\"SAS-SW-1\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"1\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240902;原备注: For server\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"Linux 6.8.0-45\",\"id\":231,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-10-14\",\"assetCode\":\"SAS-SW-33\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"33\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Ami...[已截断]'); +INSERT INTO `tbl_log` VALUES (9485, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:21:12', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9486, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:21:14', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9487, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:21:14', 0, 'MaterialController.getList(..)', NULL, 'GET /apis/material/list', '{\"search\":\"{\\\"materialParam\\\":\\\"\\\",\\\"standard\\\":\\\"\\\",\\\"model\\\":\\\"\\\",\\\"color\\\":\\\"\\\",\\\"brand\\\":\\\"\\\",\\\"mfrs\\\":\\\"\\\",\\\"otherField1\\\":\\\"\\\",\\\"otherField2\\\":\\\"\\\",\\\"otherField3\\\":\\\"\\\",\\\"weight\\\":\\\"\\\",\\\"expiryNum\\\":\\\"\\\",\\\"position\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":24,\"rows\":[{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"commodityDecimal\":200.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":706,\"imgName\":\"\",\"initialStock\":0,\"lowDecimal\":200.000000,\"mBarCode\":\"1002\",\"materialOther\":\"\",\"mfrs\":\"SMT\",\"mnemonic\":\"MD-4G111(VF) 4G\",\"model\":\"MD-4G111(VF) 4G\",\"name\":\"MD-4G111(VF) 4G\",\"purchaseDecimal\":100.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) 4G\",\"stock\":0,\"unit\":\"只\",\"wholesaleDecimal\":200.000000},{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":34,\"categoryName\":\"包装\",\"commodityDecimal\":10.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":705,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":10.000000,\"mBarCode\":\"1001\",\"materialOther\":\"\",\"mnemonic\":\"MD-4G111(VF) bz\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 包装\",\"purchaseDecimal\":10.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"stock\":0.000000,\"unit\":\"件\",\"wholesaleDecimal\":10.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":340.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":340.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"remark\":\"Excel初始化;条码:3PH-APEC3-WC\",\"standard\":\"3PH APEC3-WC\",\"stock\":7223.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":340.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":73.500000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":73.500000,\"mBarCode\":\"1PH-WS79\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"remark\":\"Excel初始化;条码:1PH-WS79\",\"standard\":\"1PH WS79\",\"stock\":52400.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":73.500000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":24.300000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":24.300000,\"mBarCode\":\"C.4.T.0.00722\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"remark\":\"Excel初始化;条码:C.4.T.0.00722\",\"standard\":\"MD-RS178(VA)\",\"stock\":1000.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":24.300000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":142.560000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":142.560000,\"mBarCode\":\"C.4.T.0.0068900002\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"remark\":\"Excel初始化;条码:C.4.T.0.0068900002\",\"standard\":\"MD-RS114(VB)\",\"stock\":100.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":142.560000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":132.840000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":132.840000,\"mBarCode\":\"C.4.T.0.00686\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"remark\":\"Excel初始化;条码:C.4.T.0.00686\",\"standard\":\"TC160(VA)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":132.840000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":0.100000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":0.100000,\"mBarCode\":\"C.4.T.0.00654\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"remark\":\"Excel初始化;条码:C.4.T.0.00654\",\"standard\":\"MD-4G111(VF)\",\"stock\":76970.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":0.100000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":324.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":324.000000,\"mBarCode\":\"C.4.T.0.00562\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"remark\":\"Excel初始化;条码:C.4.T.0.00562\",\"standard\":\"MD-4GVIII(VB)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":324.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":129.600000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":129.600000,\"mBarCode\":\"C.4.T.0.00553\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"remark\":\"Excel初始化;条码:C.4.T.0.00553\",\"standard\":\"MT-P109(VA)\",\"stock\":500.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":129.600000}]}}'); +INSERT INTO `tbl_log` VALUES (9488, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:21:29', 0, 'UnitController.getList(..)', NULL, 'GET /apis/unit/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"basicUnit\":\"瓶\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"瓶/(箱=12瓶)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63},{\"basicUnit\":\"盒\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":20,\"name\":\"盒/(箱=8盒)\",\"otherUnit\":\"箱\",\"ratio\":8.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":19,\"name\":\"个/(盒=15个)\",\"otherUnit\":\"盒\",\"ratio\":15.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":15,\"name\":\"个/(箱=12个)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9489, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:21:30', 0, 'MaterialAttributeController.getList(..)', NULL, 'GET /apis/materialAttribute/list', '{\"search\":\"{\\\"attributeName\\\":\\\"\\\",\\\"attributeValue\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":5,\"rows\":[{\"attributeName\":\"自定义3\",\"deleteFlag\":\"0\",\"id\":5,\"tenantId\":63},{\"attributeName\":\"自定义2\",\"deleteFlag\":\"0\",\"id\":4,\"tenantId\":63},{\"attributeName\":\"自定义1\",\"attributeValue\":\"小米|华为\",\"deleteFlag\":\"0\",\"id\":3,\"tenantId\":63},{\"attributeName\":\"多尺寸\",\"attributeValue\":\"S|M|L|XL|XXL|XXXL\",\"deleteFlag\":\"0\",\"id\":2,\"tenantId\":63},{\"attributeName\":\"多颜色\",\"attributeValue\":\"红色|橙色|黄色|绿色|蓝色|紫色\",\"deleteFlag\":\"0\",\"id\":1,\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9490, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:21:34', 0, 'AccountController.getStatistics(..)', NULL, 'GET /apis/account/getStatistics', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"allCurrentAmount\":\"4375818.53\",\"allMonthAmount\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9491, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:21:34', 0, 'AccountController.listWithBalance(..)', NULL, 'GET /apis/account/listWithBalance', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9492, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:21:36', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9493, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:21:36', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9494, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:21:36', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9495, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:21:52', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9496, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:22:06', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9497, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:22:31', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9498, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:22:43', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9499, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:22:45', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9500, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:22:45', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9501, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:22:45', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9502, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:22:45', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9503, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:22:45', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"出库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":2,\"priceSumTotal\":2940000.000000,\"numSumTotal\":50000.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":0.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":40000.000000,\"priceSum\":2940000.000000,\"standard\":\"1PH WS79\"}]}}'); +INSERT INTO `tbl_log` VALUES (9504, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:22:46', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9505, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:22:46', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9506, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:22:46', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"入库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":7,\"priceSumTotal\":15130522.700000,\"numSumTotal\":102117.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":100000.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":10000.000000,\"priceSum\":595000.000000,\"standard\":\"1PH WS79\"},{\"barCode\":\"C.4.T.0.00654\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"MD-4G111(VF) 4G模块\",\"materialId\":699,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"numSum\":7.000000,\"priceSum\":0.700000,\"standard\":\"MD-4G111(VF)\"},{\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"MT-3NSXL(VC)RF通讯模块\",\"materialId\":696,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"numSum\":37520.000000,\"priceSum\":3752.000000,\"standard\":\"MT-3NSXL(VC)\"},{\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"三相四线多功能电能表T46(VC)\",\"materialId\":691,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"numSum\":10890.000000,\"priceSum\":5292540.000000,\"standard\":\"DTSD1226-T46(VC)\"},{\"barCode\":\"C.3.C.2.00025\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"三相四线多功能电能表CXVI(VA)-新\",\"materialId\":687,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-CXVI(VA)\",\"numSum\":6720.000000,\"priceSum\":3238704.000000,\"standard\":\"DTSD1226-CXVI(VA)\"},{\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"单相多功能电能表T49(VB)\",\"materialId\":685,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"numSum\":26980.000000,\"priceSum\":5900526.000000,\"standard\":\"DDSD1226-T49(VB)\"}]}}'); +INSERT INTO `tbl_log` VALUES (9507, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:22:46', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9508, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:22:46', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9509, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:22:47', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9510, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:22:48', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9511, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:22:48', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9512, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:22:48', 0, 'DepotHeadController.findInOutDetail(..)', NULL, 'GET /apis/depotHead/findInOutDetail', '{\"currentPage\":1,\"pageSize\":10,\"number\":\"\",\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"出库\",\"remark\":\"\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":33,\"operNumberTotal\":50000.000000,\"rows\":[{\"allPrice\":0.000000,\"barCode\":\"1001\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mname\":\"MD-4G111(VF) 包装\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"生产领料出库\",\"number\":\"LL20260924134027104\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-24\",\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"taxLastMoney\":0.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.000000},{\"allPrice\":735000.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"\",\"newType\":\"销售出库\",\"number\":\"XSCK00000001728\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":808500.000000,\"taxMoney\":73500.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159 \",\"newType\":\"销售出库\",\"number\":\"XSCK-INV_2159-86\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-10\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写 \",\"newType\":\"销售出库\",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-10\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158 \",\"newType\":\"销售出库\",\"number\":\"XSCK-DO_2158-85\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157 \",\"newType\":\"销售出库\",\"number\":\"XSCK-DO_2157-83\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写 \",\"newType\":\"销售出库\",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150 \",\"newType\":\"销售出库\",\"number\":\"XSCK-INV_2150-69\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-29\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2148 \",\"newType\":\"销售出库\",\"number\":\"XSCK-do_2148-60\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-27\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2147 \",\"newType\":\"销售出库\",\"number\":\"XSCK-do_2147-59\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-27\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000}],\"allPriceTotal\":2940000.000000}}'); +INSERT INTO `tbl_log` VALUES (9513, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:22:48', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9514, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:22:48', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9515, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:22:49', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9516, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:22:49', 0, 'DepotHeadController.findInOutDetail(..)', NULL, 'GET /apis/depotHead/findInOutDetail', '{\"currentPage\":1,\"pageSize\":10,\"number\":\"\",\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"入库\",\"remark\":\"\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":35,\"operNumberTotal\":102117.000000,\"rows\":[{\"allPrice\":100000.000000,\"barCode\":\"1001\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mname\":\"MD-4G111(VF) 包装\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MD-4G111(VF) packing\",\"taxLastMoney\":100000.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":10.000000},{\"allPrice\":595000.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"\",\"newType\":\"总部入库入库\",\"number\":\"SM2609180001\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"1PH WS79\",\"taxLastMoney\":595000.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":59.500000},{\"allPrice\":0.700000,\"barCode\":\"C.4.T.0.00654\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MD-4G111(VF) 4G模块\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operNumber\":7.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MD-4G111(VF)\",\"taxLastMoney\":0.700000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":183.600000,\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MT-3NSXL(VC)RF通讯模块\",\"model\":\"MT-3NSXL(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060003\",\"newType\":\"总部入库入库\",\"number\":\"SM2608070007\",\"operNumber\":1836.000000,\"operTime\":\"2026-08-07\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MT-3NSXL(VC)\",\"taxLastMoney\":183.600000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":2077650.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060001\",\"newType\":\"总部入库入库\",\"number\":\"SM2608070002\",\"operNumber\":9500.000000,\"operTime\":\"2026-08-07\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":2077650.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":91854.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060001\",\"newType\":\"总部入库入库\",\"number\":\"SM2608060005\",\"operNumber\":420.000000,\"operTime\":\"2026-08-06\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":91854.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":816.000000,\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MT-3NSXL(VC)RF通讯模块\",\"model\":\"MT-3NSXL(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060003\",\"newType\":\"总部入库入库\",\"number\":\"SM2608060004\",\"operNumber\":8160.000000,\"operTime\":\"2026-08-06\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MT-3NSXL(VC)\",\"taxLastMoney\":816.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":91854.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607240005\",\"operNumber\":420.000000,\"operTime\":\"2026-07-24\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":91854.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":551124.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607230004\",\"operNumber\":2520.000000,\"operTime\":\"2026-07-23\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":551124.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":1285956.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607230002\",\"operNumber\":5880.000000,\"operTime\":\"2026-07-23\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":1285956.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000}],\"allPriceTotal\":15130522.700000}}'); +INSERT INTO `tbl_log` VALUES (9517, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:22:49', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9518, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:22:49', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9519, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:22:49', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9520, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:22:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9521, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:22:53', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9522, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:22:53', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9523, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:22:53', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9524, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:22:53', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9525, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:22:53', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9526, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:22:56', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9527, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:22:56', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9528, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:22:56', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9529, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:22:56', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9530, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:22:56', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9531, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:22:56', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":33,\"rows\":[{\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718802000,\"creator\":63,\"debt\":595000.000000,\"defaultNumber\":\"SM2609180001\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discountLastMoney\":595000.000000,\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1721,\"lastDebt\":595000.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79\",\"number\":\"SM2609180001\",\"operTime\":1789733163000,\"operTimeStr\":\"2026-09-18 16:06:03\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"totalPrice\":595000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":183.600000,\"defaultNumber\":\"SM2608070007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1423,\"lastDebt\":183.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1836.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608070007\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":183.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":2077650.000000,\"defaultNumber\":\"SM2608070002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1422,\"lastDebt\":2077650.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":9500.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608070002\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":2077650.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2608060005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1421,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608060005\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":816.000000,\"defaultNumber\":\"SM2608060004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1420,\"lastDebt\":816.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":8160.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608060004\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784836800000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2607240005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1419,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607240005\",\"operTime\":1784836800000,\"operTimeStr\":\"2026-07-24 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":551124.000000,\"defaultNumber\":\"SM2607230004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1418,\"lastDebt\":551124.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230004\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":551124.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":1285956.000000,\"defaultNumber\":\"SM2607230002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1417,\"lastDebt\":1285956.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5880.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230002\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1285956.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":1020.000000,\"defaultNumber\":\"SM2607220006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1416,\"lastDebt\":1020.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":10200.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607220006\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":275562.000000,\"defaultNumber\":\"SM2607220004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1415,\"lastDebt\":275562.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607220004\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":275562.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9532, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:22:56', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9533, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:23:47', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9534, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:23:58', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-10-06\"}}'); +INSERT INTO `tbl_log` VALUES (9535, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:24:17', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-383\",\"assetName\":\"Epson Epson LQ-310\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"383\",\"externalSource\":\"HARDWARE\",\"id\":20,\"keeper\":\"Hab\",\"location\":\"Admin Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: R9DY417590\",\"source\":\"SAS\",\"specification\":\"Printer / Epson / Epson LQ-310\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Ad\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-384\",\"assetName\":\"H3C H3C UniServer R3950 G6\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"384\",\"externalSource\":\"HARDWARE\",\"id\":19,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 210235A4V0H259000004\",\"source\":\"SAS\",\"specification\":\"Server / H3C / H3C UniServer R3950 G6\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-385\",\"assetName\":\"TP-Link Omada SG3452\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"385\",\"externalSource\":\"HARDWARE\",\"id\":18,\"keeper\":\"Haslim\",\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 225B0AN000371;MAC: 6C-4C-BC-C9-F0-8A\",\"source\":\"SAS\",\"specification\":\"Switch / TP-Link / Omada SG3452\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-387\",\"assetName\":\"HP HP LaserJet MFP M236sdw\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"387\",\"externalSource\":\"HARDWARE\",\"id\":17,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: VNP5F19044\",\"source\":\"SAS\",\"specification\":\"Printer / HP / HP LaserJet MFP M236sdw\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Prod\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-389\",\"assetName\":\"Lenovo ThinkPad T14s 2-in-1\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"389\",\"externalSource\":\"HARDWARE\",\"id\":16,\"keeper\":\"Syed Bakri\",\"location\":\"Admin\",\"originalValue\":0.000000,\"purchaseDate\":1787169600000,\"quantity\":1.000000,\"remark\":\"序列号: PF6EN008\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad T14s 2-in-1 / Win 11 Home / Core Ultra 5 / 16G / 500G SSD\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"GM\"}]}}'); +INSERT INTO `tbl_log` VALUES (9536, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:24:19', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/047CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"201\",\"externalSource\":\"HARDWARE\",\"id\":40,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/047PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"200\",\"externalSource\":\"HARDWARE\",\"id\":39,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/046CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"199\",\"externalSource\":\"HARDWARE\",\"id\":38,\"keeper\":\"Ariffin\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: LH5TTC3;用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Core i3-10100\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/046PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"198\",\"externalSource\":\"HARDWARE\",\"id\":37,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/045CPU\",\"assetName\":\"Cooto\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"197\",\"externalSource\":\"HARDWARE\",\"id\":36,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / Cooto\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/045PC\",\"assetName\":\"Dell\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"196\",\"externalSource\":\"HARDWARE\",\"id\":35,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Dell\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/044CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"195\",\"externalSource\":\"HARDWARE\",\"id\":34,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BFHW;用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 240G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/044PC\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"194\",\"externalSource\":\"HARDWARE\",\"id\":33,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/043CPU\",\"assetName\":\"HP\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"193\",\"externalSource\":\"HARDWARE\",\"id\":32,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"CPU / HP\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/TECH/043PC\",\"assetName\":\"Lenovo\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"192\",\"externalSource\":\"HARDWARE\",\"id\":31,\"keeper\":\"Azam\",\"location\":\"Tech Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"用途: Not Specified\",\"source\":\"SAS\",\"specification\":\"Monitor / Lenovo\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"}]}}'); +INSERT INTO `tbl_log` VALUES (9537, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:24:44', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9538, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:24:50', 0, 'AssetController.options()', NULL, 'GET /apis/asset/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"creator\":63,\"assetCode\":\"SIM-896019200694297052\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"UITM Dungun\",\"externalId\":\"6\",\"originalValue\":0.000000,\"specification\":\"183.171.146.98\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019200694297052\",\"location\":\"SMT (???)\",\"id\":270,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2020-12-16\",\"assetCode\":\"SIM-896019190221500578\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"5\",\"originalValue\":0.000000,\"specification\":\"183.171.14.125\",\"remark\":\"启用日期: 2020-12-16\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500578\",\"location\":\"UITM Dungun\",\"id\":269,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2020-12-16\",\"assetCode\":\"SIM-896019190221500576\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"1\",\"originalValue\":0.000000,\"specification\":\"183.171.144.65\",\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500576\",\"location\":\"Genting\",\"id\":268,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-22\",\"assetCode\":\"SIM-896019210381607778\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"2\",\"originalValue\":0.000000,\"specification\":\"183.171.15.60\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607778\",\"location\":\"Genting\",\"id\":267,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-03-22\",\"assetCode\":\"SIM-896019210381607781\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"9\",\"originalValue\":0.000000,\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607781\",\"location\":\"SMT (RnD) Modem RnD\",\"id\":266,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-15\",\"assetCode\":\"SIM-896019210381607777\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"3\",\"originalValue\":0.000000,\"specification\":\"183.171.40.182\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607777\",\"location\":\"Genting\",\"id\":265,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-07-15\",\"assetCode\":\"SIM-896019210381607782\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"4\",\"originalValue\":0.000000,\"specification\":\"183.171.40.117\",\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607782\",\"location\":\"Genting\",\"id\":264,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-29\",\"assetCode\":\"SIM-896019210381607784\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"7\",\"originalValue\":0.000000,\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607784\",\"location\":\"SMT (Modem-Production)\",\"id\":263,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-29\",\"assetCode\":\"SIM-896019210381607783\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"8\",\"originalValue\":0.000000,\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607783\",\"location\":\"SMT (RnD) Modem Store\",\"id\":262,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607785\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"10\",\"originalValue\":0.000000,\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607785\",\"location\":\"SMT (RnD) Alyaa\",\"id\":261,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607786\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"11\",\"originalValue\":0.000000,\"specification\":\"183.171.208.37 / KM08-LTE Modem / 21070013\",\"remark\":\"设备序列号: 21070013;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607786\",\"location\":\"SMT (RnD) Alyaa\",\"id\":260,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381702562\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"12\",\"originalValue\":0.000000,\"specification\":\"183.171.144.61\",\"remark\":\"启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702562\",\"location\":\"Loan to Hanif/Adha (22-May-2026); \",\"id\":259,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607780\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"14\",\"originalValue\":0.000000,\"specification\":\"183.171.208.37\",\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607780\",\"location\":\"POC AEON\",\"id\":258,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019190221500577\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"15\",\"originalValue\":0.000000,\"specification\":\"183.171.144.61\",\"remark\":\"启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019190221500577\",\"location\":\"Kompleks Pertama\",\"id\":257,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2025-12-23\",\"assetCode\":\"SIM-896019210381607779\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"13\",\"originalValue\":0.000000,\"specification\":\"183.171.151.171\",\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381607779\",\"location\":\"POC AEON\",\"id\":256,\"categoryId\":7,\"status\":\"SCRAPPED\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702569\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"18\",\"originalValue\":0.000000,\"specification\":\"183.171.11.200\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702569\",\"location\":\"With Amir\",\"id\":255,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702570\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"19\",\"originalValue\":0.000000,\"specification\":\"183.171.214.141\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702570\",\"location\":\"With Amir\",\"id\":254,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702571\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"23\",\"originalValue\":0.000000,\"specification\":\"183.171.9.45\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702571\",\"location\":\"R&D room, SMT\",\"id\":253,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702568\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"24\",\"originalValue\":0.000000,\"specification\":\"183.171.214.217 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702568\",\"location\":\"Molnlycke Health Care\",\"id\":252,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702567\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"25\",\"originalValue\":0.000000,\"specification\":\"183.171.12.143 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702567\",\"location\":\"Molnlycke Health Care\",\"id\":251,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702566\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"26\",\"originalValue\":0.000000,\"specification\":\"183.171.11.123 / Lora Gateway\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702566\",\"location\":\"GT3.1 (Nur)\",\"id\":250,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702565\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"27\",\"originalValue\":0.000000,\"specification\":\"183.171.12.136 / Lora Gateway\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702565\",\"location\":\"Menicon Malaysia\",\"id\":249,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702564\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"28\",\"originalValue\":0.000000,\"specification\":\"183.171.10.11 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702564\",\"location\":\"First Solar Malaysia\",\"id\":248,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-06-03\",\"assetCode\":\"SIM-896019210381702563\",\"quantity\":1.000000,\"assetCategory\":\"SIM卡\",\"keeper\":\"SMT\",\"externalId\":\"29\",\"originalValue\":0.000000,\"specification\":\"183.171.11.141 / 4G Modem\",\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"updateTime\":1790613750000,\"categoryCode\":\"SIM_CARD\",\"source\":\"SAS\",\"externalSource\":\"SIM\",\"deleteFlag\":\"0\",\"unit\":\"张\",\"createTime\":1790613750000,\"assetName\":\"SIM卡 896019210381702563\",\"location\":\"First Solar Malaysia\",\"id\":247,\"categoryId\":7,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2023-09-18\",\"assetCode\":\"SAS-SW-2\",\"quantity\":15.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"2\",\"originalValue\":8700.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV230902\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Home & Business\",\"id\":246,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-01-11\",\"assetCode\":\"SAS-SW-3\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"3\",\"originalValue\":1160.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240101\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Home & Business\",\"id\":245,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-09-27\",\"assetCode\":\"SAS-SW-4\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"4\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro\",\"id\":244,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-03\",\"assetCode\":\"SAS-SW-5\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"5\",\"originalValue\":580.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240402\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro Plus\",\"id\":243,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2025-01-14\",\"assetCode\":\"SAS-SW-6\",\"quantity\":4.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"6\",\"originalValue\":2320.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2019 Pro Plus\",\"id\":242,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-02-13\",\"assetCode\":\"SAS-SW-7\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"7\",\"originalValue\":750.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240201\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Home & Business\",\"id\":241,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-04-03\",\"assetCode\":\"SAS-SW-8\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"8\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240401;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Pro\",\"id\":240,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-06-21\",\"assetCode\":\"SAS-SW-9\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"9\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240601;原备注: Price bundled with PC purchase.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"HR\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office 2021 Pro\",\"id\":239,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2026-01-21\",\"assetCode\":\"SAS-SW-10\",\"quantity\":10.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"10\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;许可证: Smt@123;发票号: INV260101;原备注: Bundled with 10 unit of PC purchase for Lab.\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"Laboratory\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business\",\"id\":238,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-11\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"11\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;原备注: Bundled with 1 unit of Laptop\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"useDepartment\":\"Tech & Technology\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business\",\"id\":237,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-12\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"12\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: BX27V-J9QMG-3VVWY-7JTYT-94CXB\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":236,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-13\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"13\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: GTTC2-XH8PW-3WJFH-76VFQ-PHYX9\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":235,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-14\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"14\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: WY8KV-GQ39X-2WQF2-V8R93-RY6CT\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":234,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-15\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"15\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: YBDDT-C4QPP-J6T63-DQMB8-9XB29;原备注: Written: Burnny / Asus\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":233,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"assetCode\":\"SAS-SW-16\",\"quantity\":1.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"16\",\"originalValue\":0.000000,\"specification\":\"CD\",\"remark\":\"许可证: XG2WV-YRDV4-VQWQ2-XQQ26-XJ3FF;原备注: Written: SGH109RCWK\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"MS Office Home & Business 2010\",\"id\":232,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-10-14\",\"assetCode\":\"SAS-SW-1\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"1\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Amimo;发票号: INV240902;原备注: For server\",\"updateTime\":1790613750000,\"categoryCode\":\"SOFTWARE\",\"source\":\"SAS\",\"externalSource\":\"SOFTWARE\",\"deleteFlag\":\"0\",\"unit\":\"套\",\"createTime\":1790613750000,\"assetName\":\"Linux 6.8.0-45\",\"id\":231,\"categoryId\":6,\"status\":\"IN_USE\"},{\"creator\":63,\"purchaseDate\":\"2024-10-14\",\"assetCode\":\"SAS-SW-33\",\"quantity\":2.000000,\"assetCategory\":\"软件资产\",\"externalId\":\"33\",\"originalValue\":0.000000,\"specification\":\"Amimo\",\"remark\":\"供应商: Ami...[已截断]'); +INSERT INTO `tbl_log` VALUES (9539, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:25:00', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9540, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:25:00', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9541, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:25:00', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9542, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:25:00', 0, 'DepotItemController.saleOut(..)', NULL, 'GET /apis/depotItem/saleOut', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":1,\"realityPriceTotal\":2940000.000000,\"rows\":[{\"outInSumPrice\":2940000.000000,\"otherField1\":\"\",\"materialMfrs\":\"浙江瑞银电子有限公司\",\"materialModel\":\"1PH WS79\",\"materialStandard\":\"1PH WS79\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"materialUnit\":\"件\",\"outSum\":40000.000000,\"barCode\":\"1PH-WS79\",\"materialName\":\"1PH WS79\",\"outSumPrice\":2940000.000000,\"inSum\":0.000000,\"inSumPrice\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (9543, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:25:00', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9544, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:25:02', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9545, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:25:02', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9546, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:25:02', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9547, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:25:02', 0, 'DepotItemController.buyIn(..)', NULL, 'GET /apis/depotItem/buyIn', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":2,\"realityPriceTotal\":100000.700000,\"rows\":[{\"materialModel\":\"MD-4G111(VF)\",\"materialStandard\":\"MD-4G111(VF) packing\",\"materialUnit\":\"件\",\"outSum\":0.000000,\"barCode\":\"1001\",\"materialName\":\"MD-4G111(VF) 包装\",\"inOutSumPrice\":100000.000000,\"outSumPrice\":0.000000,\"inSum\":10000.000000,\"inSumPrice\":100000.000000},{\"otherField1\":\"\",\"materialMfrs\":\"浙江瑞银电子有限公司\",\"materialModel\":\"MD-4G111(VF)\",\"materialStandard\":\"MD-4G111(VF)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"materialUnit\":\"件\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00654\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"inOutSumPrice\":0.700000,\"outSumPrice\":0.000000,\"inSum\":7.000000,\"inSumPrice\":0.700000}]}}'); +INSERT INTO `tbl_log` VALUES (9548, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:25:02', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9549, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:25:08', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9550, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:25:08', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9551, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:25:08', 0, 'DepotItemController.getInOutStock(..)', NULL, 'GET /apis/depotItem/getInOutStock', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-09-06\",\"endTime\":\"2026-10-06\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":23,\"rows\":[{\"unitPrice\":10.000000,\"materialModel\":\"MD-4G111(VF)\",\"unitName\":\"件\",\"thisSum\":0.000000,\"materialStandard\":\"MD-4G111(VF) packing\",\"outSum\":10000.000000,\"barCode\":\"1001\",\"bigUnitStock\":\"\",\"prevSum\":0.000000,\"imgName\":\"\",\"materialName\":\"MD-4G111(VF) 包装\",\"id\":705,\"inSum\":10000.000000,\"thisAllPrice\":0E-12},{\"unitPrice\":317.500000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"3PH APEC3-WC\",\"unitName\":\"件\",\"thisSum\":7372.000000,\"materialStandard\":\"3PH APEC3-WC\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"3PH-APEC3-WC\",\"bigUnitStock\":\"\",\"prevSum\":7372.000000,\"imgName\":\"\",\"materialName\":\"3PH APEC3-WC\",\"id\":704,\"inSum\":0,\"thisAllPrice\":2340610.000000000000},{\"unitPrice\":59.500000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"1PH WS79\",\"unitName\":\"件\",\"thisSum\":52400.000000,\"materialStandard\":\"1PH WS79\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":10000.000000,\"barCode\":\"1PH-WS79\",\"bigUnitStock\":\"\",\"prevSum\":52400.000000,\"imgName\":\"\",\"materialName\":\"1PH WS79\",\"id\":703,\"inSum\":10000.000000,\"thisAllPrice\":3117800.000000000000},{\"unitPrice\":24.300000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-RS178(VA)\",\"unitName\":\"件\",\"thisSum\":1000.000000,\"materialStandard\":\"MD-RS178(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00722\",\"bigUnitStock\":\"\",\"prevSum\":1000.000000,\"imgName\":\"\",\"materialName\":\"MD-RS178(VA) RS485分线器\",\"id\":702,\"inSum\":0,\"thisAllPrice\":24300.000000000000},{\"unitPrice\":142.560000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-RS114(VB)\",\"unitName\":\"件\",\"thisSum\":100.000000,\"materialStandard\":\"MD-RS114(VB)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.0068900002\",\"bigUnitStock\":\"\",\"prevSum\":100.000000,\"imgName\":\"\",\"materialName\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"id\":701,\"inSum\":0,\"thisAllPrice\":14256.000000000000},{\"unitPrice\":132.840000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"TC160(VA)\",\"unitName\":\"件\",\"thisSum\":50.000000,\"materialStandard\":\"TC160(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00686\",\"bigUnitStock\":\"\",\"prevSum\":50.000000,\"imgName\":\"\",\"materialName\":\"TC160(VA) 通讯模块供电盒\",\"id\":700,\"inSum\":0,\"thisAllPrice\":6642.000000000000},{\"unitPrice\":0.100000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-4G111(VF)\",\"unitName\":\"件\",\"thisSum\":76970.000000,\"materialStandard\":\"MD-4G111(VF)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00654\",\"bigUnitStock\":\"\",\"prevSum\":76963.000000,\"imgName\":\"\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"id\":699,\"inSum\":7.000000,\"thisAllPrice\":7697.000000000000},{\"unitPrice\":324.000000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-4GVIII(VB)\",\"unitName\":\"件\",\"thisSum\":50.000000,\"materialStandard\":\"MD-4GVIII(VB)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00562\",\"bigUnitStock\":\"\",\"prevSum\":50.000000,\"imgName\":\"\",\"materialName\":\"MD-4GVIII(VB)\",\"id\":698,\"inSum\":0,\"thisAllPrice\":16200.000000000000},{\"unitPrice\":129.600000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MT-P109(VA)\",\"unitName\":\"件\",\"thisSum\":500.000000,\"materialStandard\":\"MT-P109(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00553\",\"bigUnitStock\":\"\",\"prevSum\":500.000000,\"imgName\":\"\",\"materialName\":\"MT-P109(VA)\",\"id\":697,\"inSum\":0,\"thisAllPrice\":64800.000000000000},{\"unitPrice\":0.100000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MT-3NSXL(VC)\",\"unitName\":\"件\",\"thisSum\":54656.000000,\"materialStandard\":\"MT-3NSXL(VC)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00547\",\"bigUnitStock\":\"\",\"prevSum\":54656.000000,\"imgName\":\"\",\"materialName\":\"MT-3NSXL(VC)RF通讯模块\",\"id\":696,\"inSum\":0,\"thisAllPrice\":5465.600000000000}]}}'); +INSERT INTO `tbl_log` VALUES (9552, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:25:08', 0, 'DepotItemController.getInOutStockCountMoney(..)', NULL, 'GET /apis/depotItem/getInOutStockCountMoney', '{\"endTime\":\"2026-10-06\",\"materialParam\":\"\"}', '{\"code\":200,\"data\":{\"showStockPrice\":true,\"totalStock\":519352.000000,\"totalCount\":107419830.670000000000}}'); +INSERT INTO `tbl_log` VALUES (9553, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:25:13', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9554, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:25:13', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"hasDebt\":1,\"supplierType\":\"供应商\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":103509293.334800,\"lastMoney\":116500257.436400,\"rows\":[{\"allNeed\":116500257.436400,\"backMoney\":2139558.598400,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":15130522.700000,\"email\":\"\",\"id\":89,\"phoneNum\":\"\",\"preBackMoney\":10686582.135200,\"preDebtMoney\":114195875.470000,\"preNeed\":103509293.334800,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"浙江瑞银电子有限公司\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (9555, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:25:16', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9556, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:25:16', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9557, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:25:16', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"hasDebt\":1,\"supplierType\":\"客户\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":13532266.000000,\"lastMoney\":12430066.000000,\"rows\":[{\"allNeed\":12430066.000000,\"backMoney\":4336200.000000,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":3234000.000000,\"email\":\"\",\"id\":90,\"phoneNum\":\"\",\"preBackMoney\":10677700.000000,\"preDebtMoney\":24209966.000000,\"preNeed\":13532266.000000,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"TNB\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (9558, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:25:16', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9559, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:25:22', 0, 'AccountController.findAccountInOutList(..)', NULL, 'GET /apis/account/findAccountInOutList', '{\"currentPage\":1,\"pageSize\":10,\"accountId\":17,\"initialAmount\":100,\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\"}', '{\"code\":200,\"data\":{\"total\":100,\"rows\":[{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":-236946.640000,\"fromType\":\"financial\",\"number\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":-947751.900000,\"fromType\":\"financial\",\"number\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":-947751.900000,\"fromType\":\"financial\",\"number\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":80850.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2133-65\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":-236946.640000,\"fromType\":\"financial\",\"number\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"supplierName\":\"浙江瑞银电子有限公司\",\"type\":\"付款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4375618.532800,\"changeAmount\":80850.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2133-65\",\"operTime\":\"2026-08-14 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":6583315.612800,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2129-11\",\"operTime\":\"2026-08-13 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":6583315.612800,\"changeAmount\":1122000.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2129-11\",\"operTime\":\"2026-08-13 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4339315.612800,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2130-44\",\"operTime\":\"2026-08-07 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"supplierName\":\"TNB\",\"type\":\"收款\"},{\"aList\":\"\",\"accountId\":17,\"amList\":\"\",\"balance\":4339315.612800,\"changeAmount\":242550.000000,\"fromType\":\"financial\",\"number\":\"SK-INV_2130-44\",\"operTime\":\"2026-08-07 00:00:00\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"supplierName\":\"TNB\",\"type\":\"收款\"}]}}'); +INSERT INTO `tbl_log` VALUES (9560, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:29:07', 0, 'MaterialController.getMaterialDepotStock(..)', NULL, 'GET /apis/material/getMaterialDepotStock', '{\"depotIds\":\"\",\"mId\":695}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"allPrice\":100375.200000000000,\"currentNumber\":100.000000,\"currentUnitPrice\":1003.752000,\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":134,\"materialId\":695,\"purchaseDecimal\":1003.752000,\"unitPrice\":1003.752000}]}}'); +INSERT INTO `tbl_log` VALUES (9561, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:29:16', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9562, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:29:16', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9563, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:29:16', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9564, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:29:16', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9565, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:29:16', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9566, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:29:16', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售,采购退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":167,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9567, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:29:16', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9568, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:29:17', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9569, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:29:17', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9570, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:29:17', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9571, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:29:17', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9572, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:29:17', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9573, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:29:17', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9574, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:29:17', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9575, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:29:27', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"currentStock\",\"order\":\"asc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":120.000000,\"currentStockMovePrice\":82814.400000000000,\"currentStockPrice\":82814.400000000000,\"currentUnitPrice\":690.120000,\"currentWeight\":0E-12,\"id\":689,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00026\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VH)\",\"name\":\"三相四线多功能电能表SXVI(VH)-新\",\"position\":\"\",\"purchaseDecimal\":690.120000,\"standard\":\"DTSD1226-SXVI(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":200.000000,\"currentStockMovePrice\":66938.400000000000,\"currentStockPrice\":66938.400000000000,\"currentUnitPrice\":334.692000,\"currentWeight\":0E-12,\"id\":694,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00421\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR62(VB)\",\"name\":\"MD-LR62(VB)\",\"position\":\"\",\"purchaseDecimal\":334.692000,\"standard\":\"MD-LR62(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":400.000000,\"currentStockMovePrice\":245592.000000000000,\"currentStockPrice\":245592.000000000000,\"currentUnitPrice\":613.980000,\"currentWeight\":0E-12,\"id\":688,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00020\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VG)\",\"name\":\"三相四线多功能电能表SXVI(VG)-新\",\"position\":\"\",\"purchaseDecimal\":613.980000,\"standard\":\"DTSD1226-SXVI(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":275400.000000000000,\"currentStockPrice\":275400.000000000000,\"currentUnitPrice\":550.800000,\"currentWeight\":0E-12,\"id\":692,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00036\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VH)\",\"name\":\"三相四线多功能电能表T46(VH)\",\"position\":\"\",\"purchaseDecimal\":550.800000,\"standard\":\"DTSD1226-T46(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9576, NULL, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:29:30', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9577, NULL, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:29:30', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9578, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:29:31', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9579, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:29:31', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9580, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:29:32', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9581, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:29:32', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9582, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:29:32', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9583, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:29:32', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9584, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:29:32', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9585, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:29:32', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9586, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:29:32', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9587, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:29:41', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":2,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":200.000000,\"currentStockMovePrice\":66938.400000000000,\"currentStockPrice\":66938.400000000000,\"currentUnitPrice\":334.692000,\"currentWeight\":0E-12,\"id\":694,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00421\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR62(VB)\",\"name\":\"MD-LR62(VB)\",\"position\":\"\",\"purchaseDecimal\":334.692000,\"standard\":\"MD-LR62(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":34473.000000,\"currentStockMovePrice\":27476359.920000000000,\"currentStockPrice\":27476359.920000000000,\"currentUnitPrice\":797.040000,\"currentWeight\":0E-12,\"id\":693,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00038\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VJ)\",\"name\":\"三相四线多功能电能表T46(VJ)\",\"position\":\"\",\"purchaseDecimal\":797.040000,\"standard\":\"DTSD1226-T46(VJ)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":275400.000000000000,\"currentStockPrice\":275400.000000000000,\"currentUnitPrice\":550.800000,\"currentWeight\":0E-12,\"id\":692,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00036\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VH)\",\"name\":\"三相四线多功能电能表T46(VH)\",\"position\":\"\",\"purchaseDecimal\":550.800000,\"standard\":\"DTSD1226-T46(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":14460.000000,\"currentStockMovePrice\":7027560.000000000000,\"currentStockPrice\":7027560.000000000000,\"currentUnitPrice\":486.000000,\"currentWeight\":0E-12,\"id\":691,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"name\":\"三相四线多功能电能表T46(VC)\",\"position\":\"\",\"purchaseDecimal\":486.000000,\"standard\":\"DTSD1226-T46(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":13070.000000,\"currentStockMovePrice\":6775488.000000000000,\"currentStockPrice\":6775488.000000000000,\"currentUnitPrice\":518.400000,\"currentWeight\":0E-12,\"id\":690,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VK)\",\"name\":\"三相四线多功能电能表SXVI(VK)-新\",\"position\":\"\",\"purchaseDecimal\":518.400000,\"standard\":\"DTSD1226-SXVI(VK)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":120.000000,\"currentStockMovePrice\":82814.400000000000,\"currentStockPrice\":82814.400000000000,\"currentUnitPrice\":690.120000,\"currentWeight\":0E-12,\"id\":689,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00026\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VH)\",\"name\":\"三相四线多功能电能表SXVI(VH)-新\",\"position\":\"\",\"purchaseDecimal\":690.120000,\"standard\":\"DTSD1226-SXVI(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":400.000000,\"currentStockMovePrice\":245592.000000000000,\"currentStockPrice\":245592.000000000000,\"currentUnitPrice\":613.980000,\"currentWeight\":0E-12,\"id\":688,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00020\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VG)\",\"name\":\"三相四线多功能电能表SXVI(VG)-新\",\"position\":\"\",\"purchaseDecimal\":613.980000,\"standard\":\"DTSD1226-SXVI(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":48041.000000,\"currentStockMovePrice\":23153359.950000000000,\"currentStockPrice\":23153359.950000000000,\"currentUnitPrice\":481.950000,\"currentWeight\":0E-12,\"id\":687,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.C.2.00025\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-CXVI(VA)\",\"name\":\"三相四线多功能电能表CXVI(VA)-新\",\"position\":\"\",\"purchaseDecimal\":481.950000,\"standard\":\"DTSD1226-CXVI(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":42490.000000,\"currentStockMovePrice\":17139616.200000000000,\"currentStockPrice\":17139616.200000000000,\"currentUnitPrice\":403.380000,\"currentWeight\":0E-12,\"id\":686,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.0004500005\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VH)\",\"name\":\"单相多功能电能表T49(VH)_(马来市场)\",\"position\":\"\",\"purchaseDecimal\":403.380000,\"standard\":\"DDSD1226-T49(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":40000.000000,\"currentStockMovePrice\":8748000.000000000000,\"currentStockPrice\":8748000.000000000000,\"currentUnitPrice\":218.700000,\"currentWeight\":0E-12,\"id\":685,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.00032\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"name\":\"单相多功能电能表T49(VB)\",\"position\":\"\",\"purchaseDecimal\":218.700000,\"standard\":\"DDSD1226-T49(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9588, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:30:57', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":2,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"currentStockPrice\",\"order\":\"asc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":400.000000,\"currentStockMovePrice\":245592.000000000000,\"currentStockPrice\":245592.000000000000,\"currentUnitPrice\":613.980000,\"currentWeight\":0E-12,\"id\":688,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00020\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VG)\",\"name\":\"三相四线多功能电能表SXVI(VG)-新\",\"position\":\"\",\"purchaseDecimal\":613.980000,\"standard\":\"DTSD1226-SXVI(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":275400.000000000000,\"currentStockPrice\":275400.000000000000,\"currentUnitPrice\":550.800000,\"currentWeight\":0E-12,\"id\":692,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00036\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VH)\",\"name\":\"三相四线多功能电能表T46(VH)\",\"position\":\"\",\"purchaseDecimal\":550.800000,\"standard\":\"DTSD1226-T46(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":20000.000000,\"currentStockMovePrice\":1717200.000000000000,\"currentStockPrice\":1717200.000000000000,\"currentUnitPrice\":85.860000,\"currentWeight\":0E-12,\"id\":683,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.C.2.00021\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDS1226-C8(VD)\",\"name\":\"单相有功电能表C8(VD)\",\"position\":\"\",\"purchaseDecimal\":85.860000,\"standard\":\"DDS1226-C8(VD)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":13070.000000,\"currentStockMovePrice\":6775488.000000000000,\"currentStockPrice\":6775488.000000000000,\"currentUnitPrice\":518.400000,\"currentWeight\":0E-12,\"id\":690,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VK)\",\"name\":\"三相四线多功能电能表SXVI(VK)-新\",\"position\":\"\",\"purchaseDecimal\":518.400000,\"standard\":\"DTSD1226-SXVI(VK)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":14460.000000,\"currentStockMovePrice\":7027560.000000000000,\"currentStockPrice\":7027560.000000000000,\"currentUnitPrice\":486.000000,\"currentWeight\":0E-12,\"id\":691,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"name\":\"三相四线多功能电能表T46(VC)\",\"position\":\"\",\"purchaseDecimal\":486.000000,\"standard\":\"DTSD1226-T46(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":40000.000000,\"currentStockMovePrice\":8748000.000000000000,\"currentStockPrice\":8748000.000000000000,\"currentUnitPrice\":218.700000,\"currentWeight\":0E-12,\"id\":685,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.00032\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"name\":\"单相多功能电能表T49(VB)\",\"position\":\"\",\"purchaseDecimal\":218.700000,\"standard\":\"DDSD1226-T49(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":112400.000000,\"currentStockMovePrice\":9013356.000000000000,\"currentStockPrice\":9013356.000000000000,\"currentUnitPrice\":80.190000,\"currentWeight\":0E-12,\"id\":684,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.C.2.00023\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDS1226-C8(VG)\",\"name\":\"单相有功电能表C8(VG)\",\"position\":\"\",\"purchaseDecimal\":80.190000,\"standard\":\"DDS1226-C8(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":42490.000000,\"currentStockMovePrice\":17139616.200000000000,\"currentStockPrice\":17139616.200000000000,\"currentUnitPrice\":403.380000,\"currentWeight\":0E-12,\"id\":686,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.0004500005\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VH)\",\"name\":\"单相多功能电能表T49(VH)_(马来市场)\",\"position\":\"\",\"purchaseDecimal\":403.380000,\"standard\":\"DDSD1226-T49(VH)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9589, NULL, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:31:00', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9590, NULL, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:31:00', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9591, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:31:00', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9592, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:31:00', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9593, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:31:01', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9594, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:31:01', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9595, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:31:01', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9596, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:31:01', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9597, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:31:01', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9598, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:31:01', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9599, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:31:01', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9600, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:31:17', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9601, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:31:17', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9602, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:31:17', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9603, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:31:27', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9604, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:31:28', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9605, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:31:31', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9606, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:32:05', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9607, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:32:05', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"hasDebt\":1,\"supplierType\":\"供应商\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":103509293.334800,\"lastMoney\":116500257.436400,\"rows\":[{\"allNeed\":116500257.436400,\"backMoney\":2139558.598400,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":15130522.700000,\"email\":\"\",\"id\":89,\"phoneNum\":\"\",\"preBackMoney\":10686582.135200,\"preDebtMoney\":114195875.470000,\"preNeed\":103509293.334800,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"浙江瑞银电子有限公司\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (9608, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:32:06', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9609, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:32:06', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9610, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:32:06', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"hasDebt\":1,\"supplierType\":\"客户\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":13532266.000000,\"lastMoney\":12430066.000000,\"rows\":[{\"allNeed\":12430066.000000,\"backMoney\":4336200.000000,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":3234000.000000,\"email\":\"\",\"id\":90,\"phoneNum\":\"\",\"preBackMoney\":10677700.000000,\"preDebtMoney\":24209966.000000,\"preNeed\":13532266.000000,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"TNB\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (9611, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:32:06', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9612, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:32:07', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9613, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:32:07', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9614, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:32:07', 0, 'DepotItemController.getInOutStock(..)', NULL, 'GET /apis/depotItem/getInOutStock', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-09-06\",\"endTime\":\"2026-10-06\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":23,\"rows\":[{\"unitPrice\":10.000000,\"materialModel\":\"MD-4G111(VF)\",\"unitName\":\"件\",\"thisSum\":0.000000,\"materialStandard\":\"MD-4G111(VF) packing\",\"outSum\":10000.000000,\"barCode\":\"1001\",\"bigUnitStock\":\"\",\"prevSum\":0.000000,\"imgName\":\"\",\"materialName\":\"MD-4G111(VF) 包装\",\"id\":705,\"inSum\":10000.000000,\"thisAllPrice\":0E-12},{\"unitPrice\":317.500000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"3PH APEC3-WC\",\"unitName\":\"件\",\"thisSum\":7372.000000,\"materialStandard\":\"3PH APEC3-WC\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"3PH-APEC3-WC\",\"bigUnitStock\":\"\",\"prevSum\":7372.000000,\"imgName\":\"\",\"materialName\":\"3PH APEC3-WC\",\"id\":704,\"inSum\":0,\"thisAllPrice\":2340610.000000000000},{\"unitPrice\":59.500000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"1PH WS79\",\"unitName\":\"件\",\"thisSum\":52400.000000,\"materialStandard\":\"1PH WS79\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":10000.000000,\"barCode\":\"1PH-WS79\",\"bigUnitStock\":\"\",\"prevSum\":52400.000000,\"imgName\":\"\",\"materialName\":\"1PH WS79\",\"id\":703,\"inSum\":10000.000000,\"thisAllPrice\":3117800.000000000000},{\"unitPrice\":24.300000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-RS178(VA)\",\"unitName\":\"件\",\"thisSum\":1000.000000,\"materialStandard\":\"MD-RS178(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00722\",\"bigUnitStock\":\"\",\"prevSum\":1000.000000,\"imgName\":\"\",\"materialName\":\"MD-RS178(VA) RS485分线器\",\"id\":702,\"inSum\":0,\"thisAllPrice\":24300.000000000000},{\"unitPrice\":142.560000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-RS114(VB)\",\"unitName\":\"件\",\"thisSum\":100.000000,\"materialStandard\":\"MD-RS114(VB)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.0068900002\",\"bigUnitStock\":\"\",\"prevSum\":100.000000,\"imgName\":\"\",\"materialName\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"id\":701,\"inSum\":0,\"thisAllPrice\":14256.000000000000},{\"unitPrice\":132.840000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"TC160(VA)\",\"unitName\":\"件\",\"thisSum\":50.000000,\"materialStandard\":\"TC160(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00686\",\"bigUnitStock\":\"\",\"prevSum\":50.000000,\"imgName\":\"\",\"materialName\":\"TC160(VA) 通讯模块供电盒\",\"id\":700,\"inSum\":0,\"thisAllPrice\":6642.000000000000},{\"unitPrice\":0.100000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-4G111(VF)\",\"unitName\":\"件\",\"thisSum\":76970.000000,\"materialStandard\":\"MD-4G111(VF)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00654\",\"bigUnitStock\":\"\",\"prevSum\":76963.000000,\"imgName\":\"\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"id\":699,\"inSum\":7.000000,\"thisAllPrice\":7697.000000000000},{\"unitPrice\":324.000000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-4GVIII(VB)\",\"unitName\":\"件\",\"thisSum\":50.000000,\"materialStandard\":\"MD-4GVIII(VB)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00562\",\"bigUnitStock\":\"\",\"prevSum\":50.000000,\"imgName\":\"\",\"materialName\":\"MD-4GVIII(VB)\",\"id\":698,\"inSum\":0,\"thisAllPrice\":16200.000000000000},{\"unitPrice\":129.600000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MT-P109(VA)\",\"unitName\":\"件\",\"thisSum\":500.000000,\"materialStandard\":\"MT-P109(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00553\",\"bigUnitStock\":\"\",\"prevSum\":500.000000,\"imgName\":\"\",\"materialName\":\"MT-P109(VA)\",\"id\":697,\"inSum\":0,\"thisAllPrice\":64800.000000000000},{\"unitPrice\":0.100000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MT-3NSXL(VC)\",\"unitName\":\"件\",\"thisSum\":54656.000000,\"materialStandard\":\"MT-3NSXL(VC)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00547\",\"bigUnitStock\":\"\",\"prevSum\":54656.000000,\"imgName\":\"\",\"materialName\":\"MT-3NSXL(VC)RF通讯模块\",\"id\":696,\"inSum\":0,\"thisAllPrice\":5465.600000000000}]}}'); +INSERT INTO `tbl_log` VALUES (9615, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:32:07', 0, 'DepotItemController.getInOutStockCountMoney(..)', NULL, 'GET /apis/depotItem/getInOutStockCountMoney', '{\"endTime\":\"2026-10-06\",\"materialParam\":\"\"}', '{\"code\":200,\"data\":{\"showStockPrice\":true,\"totalStock\":519352.000000,\"totalCount\":107419830.670000000000}}'); +INSERT INTO `tbl_log` VALUES (9616, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:32:08', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9617, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:32:08', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9618, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:32:08', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9619, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:32:08', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9620, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:32:08', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"出库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":2,\"priceSumTotal\":2940000.000000,\"numSumTotal\":50000.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":0.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":40000.000000,\"priceSum\":2940000.000000,\"standard\":\"1PH WS79\"}]}}'); +INSERT INTO `tbl_log` VALUES (9621, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:32:42', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"出库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":2,\"priceSumTotal\":2940000.000000,\"numSumTotal\":50000.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":0.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":40000.000000,\"priceSum\":2940000.000000,\"standard\":\"1PH WS79\"}]}}'); +INSERT INTO `tbl_log` VALUES (9622, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:32:47', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9623, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:32:47', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9624, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:32:47', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9625, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:32:47', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9626, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:32:47', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"入库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":7,\"priceSumTotal\":15130522.700000,\"numSumTotal\":102117.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":100000.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":10000.000000,\"priceSum\":595000.000000,\"standard\":\"1PH WS79\"},{\"barCode\":\"C.4.T.0.00654\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"MD-4G111(VF) 4G模块\",\"materialId\":699,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"numSum\":7.000000,\"priceSum\":0.700000,\"standard\":\"MD-4G111(VF)\"},{\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"MT-3NSXL(VC)RF通讯模块\",\"materialId\":696,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"numSum\":37520.000000,\"priceSum\":3752.000000,\"standard\":\"MT-3NSXL(VC)\"},{\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"三相四线多功能电能表T46(VC)\",\"materialId\":691,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"numSum\":10890.000000,\"priceSum\":5292540.000000,\"standard\":\"DTSD1226-T46(VC)\"},{\"barCode\":\"C.3.C.2.00025\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"三相四线多功能电能表CXVI(VA)-新\",\"materialId\":687,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-CXVI(VA)\",\"numSum\":6720.000000,\"priceSum\":3238704.000000,\"standard\":\"DTSD1226-CXVI(VA)\"},{\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"单相多功能电能表T49(VB)\",\"materialId\":685,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"numSum\":26980.000000,\"priceSum\":5900526.000000,\"standard\":\"DDSD1226-T49(VB)\"}]}}'); +INSERT INTO `tbl_log` VALUES (9627, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:32:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9628, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:32:49', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9629, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:32:49', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9630, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:32:49', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9631, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:32:49', 0, 'DepotHeadController.findInOutDetail(..)', NULL, 'GET /apis/depotHead/findInOutDetail', '{\"currentPage\":1,\"pageSize\":10,\"number\":\"\",\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"出库\",\"remark\":\"\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":33,\"operNumberTotal\":50000.000000,\"rows\":[{\"allPrice\":0.000000,\"barCode\":\"1001\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mname\":\"MD-4G111(VF) 包装\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"生产领料出库\",\"number\":\"LL20260924134027104\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-24\",\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"taxLastMoney\":0.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.000000},{\"allPrice\":735000.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"\",\"newType\":\"销售出库\",\"number\":\"XSCK00000001728\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":808500.000000,\"taxMoney\":73500.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159 \",\"newType\":\"销售出库\",\"number\":\"XSCK-INV_2159-86\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-10\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写 \",\"newType\":\"销售出库\",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-10\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158 \",\"newType\":\"销售出库\",\"number\":\"XSCK-DO_2158-85\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157 \",\"newType\":\"销售出库\",\"number\":\"XSCK-DO_2157-83\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写 \",\"newType\":\"销售出库\",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operNumber\":1000.000000,\"operTime\":\"2026-08-05\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150 \",\"newType\":\"销售出库\",\"number\":\"XSCK-INV_2150-69\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-29\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2148 \",\"newType\":\"销售出库\",\"number\":\"XSCK-do_2148-60\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-27\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000},{\"allPrice\":73500.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2147 \",\"newType\":\"销售出库\",\"number\":\"XSCK-do_2147-59\",\"operNumber\":1000.000000,\"operTime\":\"2026-07-27\",\"sname\":\"TNB\",\"standard\":\"1PH WS79\",\"taxLastMoney\":80850.000000,\"taxMoney\":7350.000000,\"taxRate\":10.000000,\"unitPrice\":73.500000}],\"allPriceTotal\":2940000.000000}}'); +INSERT INTO `tbl_log` VALUES (9632, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:32:49', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9633, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:32:50', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9634, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:32:50', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9635, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:32:50', 0, 'DepotItemController.saleOut(..)', NULL, 'GET /apis/depotItem/saleOut', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":1,\"realityPriceTotal\":2940000.000000,\"rows\":[{\"outInSumPrice\":2940000.000000,\"otherField1\":\"\",\"materialMfrs\":\"浙江瑞银电子有限公司\",\"materialModel\":\"1PH WS79\",\"materialStandard\":\"1PH WS79\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"materialUnit\":\"件\",\"outSum\":40000.000000,\"barCode\":\"1PH-WS79\",\"materialName\":\"1PH WS79\",\"outSumPrice\":2940000.000000,\"inSum\":0.000000,\"inSumPrice\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (9636, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:32:50', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9637, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:32:50', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9638, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:32:51', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (9639, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:32:51', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9640, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:32:51', 0, 'DepotItemController.retailOut(..)', NULL, 'GET /apis/depotItem/retailOut', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"realityPriceTotal\":0.000000,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9641, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:32:51', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9642, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:32:51', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9643, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:32:52', 0, 'AccountController.getStatistics(..)', NULL, 'GET /apis/account/getStatistics', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"allCurrentAmount\":\"4375818.53\",\"allMonthAmount\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9644, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:32:52', 0, 'AccountController.listWithBalance(..)', NULL, 'GET /apis/account/listWithBalance', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9645, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:32:55', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9646, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:32:55', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9647, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:32:56', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (9648, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:32:57', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9649, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:32:57', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9650, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:32:58', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-10-06\"}}'); +INSERT INTO `tbl_log` VALUES (9651, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:33:52', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{\\\"categoryId\\\":12}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9652, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:33:54', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{\\\"categoryId\\\":15}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9653, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:33:57', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{\\\"categoryId\\\":14}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9654, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:33:59', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{\\\"categoryId\\\":5}\"}', '{\"code\":200,\"data\":{\"total\":198,\"rows\":[{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-374\",\"assetName\":\"N/A Server\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"374\",\"externalSource\":\"HARDWARE\",\"id\":213,\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: N/A\",\"source\":\"SAS\",\"specification\":\"Server / N/A / Server / Ubuntu 24.04.1 LTS / 8TB,1TB M2,512MB M2\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-373\",\"assetName\":\"N/A Server\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"373\",\"externalSource\":\"HARDWARE\",\"id\":212,\"location\":\"Server Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: N/A;用途: Seafile\",\"source\":\"SAS\",\"specification\":\"Server / N/A / Server / Linux CentOS / 8TB\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-372\",\"assetName\":\"Hisense Hisense S02BDS7AA21E\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"372\",\"externalSource\":\"HARDWARE\",\"id\":211,\"location\":\"Meeting Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 3TB86B2303620 194VK21652\",\"source\":\"SAS\",\"specification\":\"Smartboard / Hisense / Hisense S02BDS7AA21E / Win 11 Pro / Core i7-10700 / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Admin\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-371\",\"assetName\":\"Dell OptiPlex 790\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"371\",\"externalSource\":\"HARDWARE\",\"id\":210,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: CJN5F2S\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 790 / Win 7 Pro / Core i5-2400 / 4G / 480G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/OFFICE2/062CPU,SMT/N04/CPU004\",\"assetName\":\"Dell Vostro 230\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"370\",\"externalSource\":\"HARDWARE\",\"id\":209,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 846R72S\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / Vostro 230 / Win 7 Pro / Core 2 Duo E7500 / 4G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Production 2\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SAS-HW-369\",\"assetName\":\"TP-Link TP-Link TL-MR6400\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"369\",\"externalSource\":\"HARDWARE\",\"id\":208,\"location\":\"R&D Room\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 22082D8000244;MAC: 60-32-B1-BD-FB-FA;用途: Testing\",\"source\":\"SAS\",\"specification\":\"Router / TP-Link / TP-Link TL-MR6400\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Technical & Technologies\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP21/112004\",\"assetName\":\"HP HP 14s-cf3022tx\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"368\",\"externalSource\":\"HARDWARE\",\"id\":207,\"keeper\":\"Hazif\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 5CG03082BJ;原备注: Bundled with Office Home & Student\",\"source\":\"SAS\",\"specification\":\"Laptop / HP / HP 14s-cf3022tx / Win 11 Home / Core i5-1035G1 / 8G / 500G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Store\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/STORE/054CPU\",\"assetName\":\"HP ProDesk 400 G7\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"367\",\"externalSource\":\"HARDWARE\",\"id\":206,\"keeper\":\"Wan Rosli\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 4CE216BDQ2\",\"source\":\"SAS\",\"specification\":\"CPU / HP / ProDesk 400 G7 / Win 11 Pro / Core i5-10500 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Store\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/STORE/053CPU\",\"assetName\":\"Dell OptiPlex 3080\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"366\",\"externalSource\":\"HARDWARE\",\"id\":205,\"keeper\":\"Vacant\",\"location\":\"Store Office\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: 7DVSTC3\",\"source\":\"SAS\",\"specification\":\"CPU / Dell / OptiPlex 3080 / Win 11 Pro / Core i3-10100 / 8G / 250G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Store\"},{\"assetCategory\":\"硬件资产\",\"assetCode\":\"SMT/LAP4/11112024\",\"assetName\":\"Lenovo ThinkPad X1 Carbon Gen 8\",\"categoryCode\":\"HARDWARE\",\"categoryId\":5,\"createTime\":1790613749000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"365\",\"externalSource\":\"HARDWARE\",\"id\":204,\"keeper\":\"x-Azam\",\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"序列号: PF1VB7YC\",\"source\":\"SAS\",\"specification\":\"Laptop / Lenovo / ThinkPad X1 Carbon Gen 8 / Win 11 Pro / Core i7-10510U / 16G / 512G\",\"status\":\"IN_USE\",\"unit\":\"台\",\"updateTime\":1790613749000,\"useDepartment\":\"Engineering\"}]}}'); +INSERT INTO `tbl_log` VALUES (9655, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:34:01', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{\\\"categoryId\\\":6}\"}', '{\"code\":200,\"data\":{\"total\":33,\"rows\":[{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-2\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SOFTWARE\",\"id\":246,\"originalValue\":8700.000000,\"purchaseDate\":1694980800000,\"quantity\":15.000000,\"remark\":\"供应商: Amimo;发票号: INV230902\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-3\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SOFTWARE\",\"id\":245,\"originalValue\":1160.000000,\"purchaseDate\":1704916800000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-4\",\"assetName\":\"MS Office 2019 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SOFTWARE\",\"id\":244,\"originalValue\":0.000000,\"purchaseDate\":1727380800000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-5\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SOFTWARE\",\"id\":243,\"originalValue\":580.000000,\"purchaseDate\":1712088000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240402\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-6\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SOFTWARE\",\"id\":242,\"originalValue\":2320.000000,\"purchaseDate\":1736798400000,\"quantity\":4.000000,\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-7\",\"assetName\":\"MS Office 2021 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SOFTWARE\",\"id\":241,\"originalValue\":750.000000,\"purchaseDate\":1707768000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240201\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-8\",\"assetName\":\"MS Office 2021 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SOFTWARE\",\"id\":240,\"originalValue\":0.000000,\"purchaseDate\":1712088000000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240401;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-9\",\"assetName\":\"MS Office 2021 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SOFTWARE\",\"id\":239,\"originalValue\":0.000000,\"purchaseDate\":1718913600000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240601;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"HR\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-10\",\"assetName\":\"MS Office Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SOFTWARE\",\"id\":238,\"originalValue\":0.000000,\"purchaseDate\":1768939200000,\"quantity\":10.000000,\"remark\":\"供应商: Amimo;许可证: Smt@123;发票号: INV260101;原备注: Bundled with 10 unit of PC purchase for Lab.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"Laboratory\"},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-11\",\"assetName\":\"MS Office Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"11\",\"externalSource\":\"SOFTWARE\",\"id\":237,\"originalValue\":0.000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;原备注: Bundled with 1 unit of Laptop\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000,\"useDepartment\":\"Tech & Technology\"}]}}'); +INSERT INTO `tbl_log` VALUES (9656, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:34:03', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{\\\"categoryId\\\":7}\"}', '{\"code\":200,\"data\":{\"total\":24,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9657, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:34:09', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9658, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:34:12', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9659, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:34:36', 0, 'AssetController.categoryList(..)', NULL, 'GET /apis/asset/category/list', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9660, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:34:58', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9661, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:34:58', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9662, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:35:52', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9663, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:36:24', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607786\",\"assetName\":\"SIM卡 896019210381607786\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"11\",\"externalSource\":\"SIM\",\"id\":260,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070013;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.208.37 / KM08-LTE Modem / 21070013\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702562\",\"assetName\":\"SIM卡 896019210381702562\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"12\",\"externalSource\":\"SIM\",\"id\":259,\"keeper\":\"SMT\",\"location\":\"Loan to Hanif/Adha (22-May-2026); \",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.144.61\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607780\",\"assetName\":\"SIM卡 896019210381607780\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"14\",\"externalSource\":\"SIM\",\"id\":258,\"keeper\":\"SMT\",\"location\":\"POC AEON\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.208.37\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500577\",\"assetName\":\"SIM卡 896019190221500577\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"15\",\"externalSource\":\"SIM\",\"id\":257,\"keeper\":\"SMT\",\"location\":\"Kompleks Pertama\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.144.61\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607779\",\"assetName\":\"SIM卡 896019210381607779\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"13\",\"externalSource\":\"SIM\",\"id\":256,\"keeper\":\"SMT\",\"location\":\"POC AEON\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Months;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171\",\"status\":\"SCRAPPED\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702569\",\"assetName\":\"SIM卡 896019210381702569\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"18\",\"externalSource\":\"SIM\",\"id\":255,\"keeper\":\"SMT\",\"location\":\"With Amir\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.200\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702570\",\"assetName\":\"SIM卡 896019210381702570\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"19\",\"externalSource\":\"SIM\",\"id\":254,\"keeper\":\"SMT\",\"location\":\"With Amir\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.214.141\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702571\",\"assetName\":\"SIM卡 896019210381702571\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"23\",\"externalSource\":\"SIM\",\"id\":253,\"keeper\":\"SMT\",\"location\":\"R&D room, SMT\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.9.45\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702568\",\"assetName\":\"SIM卡 896019210381702568\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"24\",\"externalSource\":\"SIM\",\"id\":252,\"keeper\":\"SMT\",\"location\":\"Molnlycke Health Care\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.214.217 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702567\",\"assetName\":\"SIM卡 896019210381702567\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"25\",\"externalSource\":\"SIM\",\"id\":251,\"keeper\":\"SMT\",\"location\":\"Molnlycke Health Care\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.143 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9664, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:36:25', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9665, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:36:45', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702566\",\"assetName\":\"SIM卡 896019210381702566\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"26\",\"externalSource\":\"SIM\",\"id\":250,\"keeper\":\"SMT\",\"location\":\"GT3.1 (Nur)\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.123 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702565\",\"assetName\":\"SIM卡 896019210381702565\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"27\",\"externalSource\":\"SIM\",\"id\":249,\"keeper\":\"SMT\",\"location\":\"Menicon Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.12.136 / Lora Gateway\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702564\",\"assetName\":\"SIM卡 896019210381702564\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"28\",\"externalSource\":\"SIM\",\"id\":248,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.10.11 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381702563\",\"assetName\":\"SIM卡 896019210381702563\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"29\",\"externalSource\":\"SIM\",\"id\":247,\"keeper\":\"SMT\",\"location\":\"First Solar Malaysia\",\"originalValue\":0.000000,\"purchaseDate\":1780430400000,\"quantity\":1.000000,\"remark\":\"使用期限: 12 months;启用日期: 2026-06-03\",\"source\":\"SAS\",\"specification\":\"183.171.11.141 / 4G Modem\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-2\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SOFTWARE\",\"id\":246,\"originalValue\":8700.000000,\"purchaseDate\":1694980800000,\"quantity\":15.000000,\"remark\":\"供应商: Amimo;发票号: INV230902\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-3\",\"assetName\":\"MS Office 2019 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SOFTWARE\",\"id\":245,\"originalValue\":1160.000000,\"purchaseDate\":1704916800000,\"quantity\":2.000000,\"remark\":\"供应商: Amimo;发票号: INV240101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-4\",\"assetName\":\"MS Office 2019 Pro\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SOFTWARE\",\"id\":244,\"originalValue\":0.000000,\"purchaseDate\":1727380800000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240901;原备注: Price bundled with PC purchase.\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-5\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SOFTWARE\",\"id\":243,\"originalValue\":580.000000,\"purchaseDate\":1712088000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240402\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-6\",\"assetName\":\"MS Office 2019 Pro Plus\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SOFTWARE\",\"id\":242,\"originalValue\":2320.000000,\"purchaseDate\":1736798400000,\"quantity\":4.000000,\"remark\":\"供应商: Amimo;发票号: QUO250101\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000},{\"assetCategory\":\"软件资产\",\"assetCode\":\"SAS-SW-7\",\"assetName\":\"MS Office 2021 Home & Business\",\"categoryCode\":\"SOFTWARE\",\"categoryId\":6,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SOFTWARE\",\"id\":241,\"originalValue\":750.000000,\"purchaseDate\":1707768000000,\"quantity\":1.000000,\"remark\":\"供应商: Amimo;发票号: INV240201\",\"source\":\"SAS\",\"specification\":\"Amimo\",\"status\":\"IN_USE\",\"unit\":\"套\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (9666, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:36:51', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9667, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:36:51', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9668, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:36:51', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9669, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:36:51', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (9670, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:36:51', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9671, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:36:51', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9672, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:36:51', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9673, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:36:51', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9674, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:36:51', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2107-14\",\"billTime\":1783281600000,\"billTimeStr\":\"2026-07-06 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":102,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2107\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2107-14\",\"sourceTime\":\"2026-06-06 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2111-11\",\"billTime\":1785096000000,\"billTimeStr\":\"2026-07-27 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":93,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2111\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2111-11\",\"sourceTime\":\"2026-06-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9675, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:36:51', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (9676, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:36:52', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9677, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:36:52', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (9678, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:36:52', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9679, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:36:52', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9680, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:36:52', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9681, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:36:52', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9682, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:36:52', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"付款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":947751.900000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":104,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":947751.900000,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"billTime\":1785700800000,\"billTimeStr\":\"2026-08-03 00:00:00\",\"changeAmount\":954860.058400,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":100,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260415-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":954860.058400,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":236946.640000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":92,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260414-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":236946.640000,\"type\":\"付款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9683, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:36:52', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"vendor\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (9684, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:36:54', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9685, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:36:54', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9686, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:36:54', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9687, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:36:54', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9688, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:36:54', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9689, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:36:55', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9690, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:36:55', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9691, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:36:55', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9692, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:36:55', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9693, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:36:55', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9694, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:36:55', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9695, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:36:55', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"采购退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9696, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:36:56', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9697, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:36:56', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9698, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:36:56', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9699, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:36:56', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9700, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:36:56', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720142000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGRK00000001740\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1724,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001739\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGRK00000001740\",\"operTime\":1789734542000,\"operTimeStr\":\"2026-09-18 16:29:02\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":100000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717476000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGRK00000001721\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1717,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001720\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGRK00000001721\",\"operTime\":1789717474000,\"operTimeStr\":\"2026-09-18 11:44:34\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":0.700000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9701, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:36:56', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9702, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:36:56', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9703, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:36:56', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9704, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:36:57', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9705, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:36:57', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9706, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:36:57', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9707, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:36:57', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9708, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:36:57', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"采购订单\\\",\\\"linkApply\\\":\\\"\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720113000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGDD00000001739\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1723,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001738\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGDD00000001739\",\"operTime\":1789734505000,\"operTimeStr\":\"2026-09-18 16:28:25\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":100000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717459000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGDD00000001720\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1716,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001719\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGDD00000001720\",\"operTime\":1789717452000,\"operTimeStr\":\"2026-09-18 11:44:12\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":0.700000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9709, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-06 06:36:57', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9710, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:36:57', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9711, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:37:21', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9712, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:37:21', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9713, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:37:21', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9714, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:37:21', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9715, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:37:21', 0, 'DepotItemController.buyIn(..)', NULL, 'GET /apis/depotItem/buyIn', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":2,\"realityPriceTotal\":100000.700000,\"rows\":[{\"materialModel\":\"MD-4G111(VF)\",\"materialStandard\":\"MD-4G111(VF) packing\",\"materialUnit\":\"件\",\"outSum\":0.000000,\"barCode\":\"1001\",\"materialName\":\"MD-4G111(VF) 包装\",\"inOutSumPrice\":100000.000000,\"outSumPrice\":0.000000,\"inSum\":10000.000000,\"inSumPrice\":100000.000000},{\"otherField1\":\"\",\"materialMfrs\":\"浙江瑞银电子有限公司\",\"materialModel\":\"MD-4G111(VF)\",\"materialStandard\":\"MD-4G111(VF)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"materialUnit\":\"件\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00654\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"inOutSumPrice\":0.700000,\"outSumPrice\":0.000000,\"inSum\":7.000000,\"inSumPrice\":0.700000}]}}'); +INSERT INTO `tbl_log` VALUES (9716, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:37:25', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9717, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:37:25', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9718, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:37:25', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9719, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:37:25', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9720, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:37:25', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9721, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:37:25', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9722, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:37:25', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9723, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:37:26', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9724, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:37:26', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9725, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 06:37:26', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9726, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 06:37:26', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9727, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-06 06:37:26', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售,采购退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":167,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9728, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 06:37:26', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9729, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:37:26', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9730, 63, '接口日志', '43.168.32.240/1.9.116.218', '2026-10-06 06:37:28', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9731, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-06 06:37:28', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9732, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 06:37:28', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9733, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 06:37:28', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9734, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 06:37:28', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9735, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 06:37:28', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":33,\"rows\":[{\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718802000,\"creator\":63,\"debt\":595000.000000,\"defaultNumber\":\"SM2609180001\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discountLastMoney\":595000.000000,\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1721,\"lastDebt\":595000.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79\",\"number\":\"SM2609180001\",\"operTime\":1789733163000,\"operTimeStr\":\"2026-09-18 16:06:03\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"totalPrice\":595000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":183.600000,\"defaultNumber\":\"SM2608070007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1423,\"lastDebt\":183.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1836.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608070007\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":183.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":2077650.000000,\"defaultNumber\":\"SM2608070002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1422,\"lastDebt\":2077650.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":9500.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608070002\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":2077650.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2608060005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1421,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608060005\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":816.000000,\"defaultNumber\":\"SM2608060004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1420,\"lastDebt\":816.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":8160.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608060004\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784836800000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2607240005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1419,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607240005\",\"operTime\":1784836800000,\"operTimeStr\":\"2026-07-24 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":551124.000000,\"defaultNumber\":\"SM2607230004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1418,\"lastDebt\":551124.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230004\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":551124.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":1285956.000000,\"defaultNumber\":\"SM2607230002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1417,\"lastDebt\":1285956.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5880.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230002\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1285956.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":1020.000000,\"defaultNumber\":\"SM2607220006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1416,\"lastDebt\":1020.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":10200.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607220006\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":275562.000000,\"defaultNumber\":\"SM2607220004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1415,\"lastDebt\":275562.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607220004\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":275562.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9736, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 06:37:28', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9737, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 06:37:33', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9738, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 06:37:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9739, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 06:37:49', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"orderNumber\\\":\\\"\\\",\\\"sourceNumber\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9740, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 06:37:50', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9741, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 06:37:50', 0, 'ProductionRequisitionController.getList(..)', NULL, 'GET /apis/productionRequisition/list', '{\"search\":\"{\\\"requisitionNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1790242827000,\"createTime\":1789720317000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":9,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"1\"},{\"createTime\":1789719809000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":8,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (9742, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 06:37:50', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9743, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 06:37:51', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9744, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 06:37:51', 0, 'ProductionReportController.getList(..)', NULL, 'GET /apis/productionReport/list', '{\"search\":\"{\\\"reportNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9745, NULL, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 06:38:14', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (9746, NULL, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 06:38:15', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9747, NULL, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 06:38:15', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9748, NULL, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-06 06:38:16', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3gXDfaJ42gkWOJFYSYyHznIAHpj689OmXtIIkzK4yScBVOT1OAOSTgduuKUSxldwkUru25zxnOMfXPH1rg/GfxT8OeDrqOy1K6kn1OOUO1rYwiR44zuwWLEKpK4yN275gQMGgDuy7skbRIGDEbt5KEL64x19jikM4IVU5keMuiOCuQMdeOOo7Z9q4bwh8XPDPjC/NlZz3MF25d0t7yNYyEVQSQQxDfxHAJbhiQAM1281wFljgSSMTuQQrnqoI3fjjOPp7GgBk4nkWOMFoXZSfNjO4I+OhGOR1646diRRJO8bnasrqfm/1WdoVgGHYnIOR16EjPAr5p8NeKdG8K/GTxtqOvPNFbSG+iWONSzySG4VhGNvAJCkZJC+pr17wX8WvD/jXWrmwsTc215hTBb3oWPzUHLlNrMCw5JHGQB6MQAd9IqTK0TMw4BIRyrAduQcjpRIrMyDnZnnacEEcg5z04xjnOfTNIgmaJllKo/IDxnP44I4Ptz9TXzl8Ade07w5pvizUNUuFgtY/shdyR8ozKM46nkgYAJ5HFAH0azjd53nKIUVg44xkEck9sYP5+1OUhpHxJuxhSox8p6/XOCP0riPCHjmx+JUN+lnpmqRafENj3FxEiRl8ghVIckuAckYIwATjIB6zUrR9S0K9tLO9e1kureSOK7jJZomdSA6kEHgnIwR04IoAuYZo2BOxjkAqc49DyOv+eai3NBEJbu5jG0EOwARDk8Hkkj069/pj508c/Dn4eaRomsXlt41lm1y33HyLi+hnkkm3fMjIih9xOQT2JyeAa9H+C39uX3w6L+IprqZp7t5bdrl9zvAwRhnOThmLn5uobI4IoA9IjZiqrJjzAoL7QdufYn6U+qd1bxm3VZbm4RfODbkkKsSzcLkc7ctj6Yq5QBRuFQMybLhUQrLsijG1sOGLZA5Oc5GcnnANfMGof29YfHbXWj17T9G1UXM7wXmrOrRiJhmNQ5VwpMRAGcYHy5B+U/Ufmzi9lAj8yFY+NrLkMOcc9yD34GBzzxz/AIh8EeG/FDyXXiHRLaUIiMJdzJMAobIZkIOBuPAJB69hgFc8U03QtZ1b4reH9SvvHHhfUtUknUsNMmJeaGIZkVjFEFyY9y/ORuHy5IGB9HkpawgfOwzgAsWY9z1OTxk468cVy2g/D7wr4Uu5bnStBitboqxS6VnuHjABHymTcUYhzwvXvnFdKrmURBW2sjqA1xFzJ8uTtHGDgntxg8UDPAvhZFBP+0J4rkZEuTG188UxCkoTcKN4PYlWIyOzHsTRHaR237WrRWipAGd5flXje1kXYke7Ek/U16/pngnQtL8RS+JNGtktr6+3tdzM0jmdZGDsAGfC5YA8DsO2QWt4F0VPE8Pik28ja8DiS9V2y2YzFwmdgwpH8J+7360AdQZFEixk/MwLAewxn+Yr4b03Q9a1Tw9q15p8U09hYPFLexREnbkSbZCo6hQHyf4Qx7E19thZ4zaPLiR1Ty5XVc8nHI4yBkdvxHdcnwz4K8PeDXuV0DTTaC7CmdvPeQNsztHzscffbp+PagDG+F3iLw34h8Mwjw5arp6WUaw3GnZJMLHkHOfmzhvnIy3fByK6PXdR0zw9pb6tqt5JaabaBN3lq21SWCrwg3HlgMcj2rI8P+BPCWka5ca1o2kmxvRJJE7RXMgRsn5h5YfZtzghSABgEAYFaup2llrOmPYarbW17YXqiCRRL8rnJwQCRg98qdwIGM4BoQHj/wAQtE+Ec2k65q8GrWTazcRSzxGz1EzF7kncDsBYDcxweAACcYxkb/wLur64+G6T6w++2gvnS2kuxjbEqIqFGPUK25R6YwCNuK2l+DfgG2lWW28PwG6T95Es91M6FlxjcpchlzjIII5rs7XT7fTzJ9htIYVMSIiIdq4QFVUKBhVAwBj8uKALPlh5Q7qAUJ2MGOcEc5/Htz0B+klU42a+heOXMZyp3QSNhl4Iw+BnPQ4/OrlABSMqupVlDKwwQRkEUUUACqEUKM4AwMnJ/M0FVYqSoJU5BI6Hp/U0UUAIkaxqVQYBJb8Scn9TTqKKAIp7aK5QLMm5RnAyR1BU9PYmpaKKACiiigCOOGOJI1RABGuxO5C8cZ/AflUlFFADEhjjkZ0QKzDBx35J/mT+dPoooA//2Q==\",\"uuid\":\"72db5edee6af4a8a94c1ce1b905a8432\"}}'); +INSERT INTO `tbl_log` VALUES (9749, NULL, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 06:38:16', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9750, NULL, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-06 07:06:03', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9751, NULL, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 07:06:03', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9752, NULL, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 07:06:03', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9753, NULL, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-06 07:06:03', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3pTMLhgwUxFQUIHIPcHnn2x7/AIsWYyhIZY3SWSLe6q2fL6DG4d+Tgj+6fSmxSRwL5ZjZGaVvkXLn5mbDHGcA8nngdK80+IHgHwrq+sSan4x8Y3lnHKxaytXvY4YolWONXEayBskldxK4+8BjuQD02d47S0LymVo4yCSMlgM98ckDv7DnNEl1Cm0vI0YCiQgoRlTxzkcAZBPpxnAr54+Flvf2PxZvdJ8J6tean4QgaQ3Uu4pDtaPCk9vMDqqhlALBCRhc49+VJbN5fMmSOB5FKME4UDGd5JyS3IyfTrkgUAaDsVRmClyBkKMZPtzxVddy+RFGJo8guS/zgAEZVjk8/Nxg9u4GD8w3nijTviV4o1C98Y+KJ9J8LW0oW0sIlbzHyH8siNQ43ABi8hDYLBRgMMemfCrQfBel3l9rHg7xPfX1kIvs99bXORhyytHIV2IQABINxUj5mwRtbIB6o8swXiMK3mhRwWBXIyeOnGevQ+3JkllWGMyMHIHZELH8gCazw8lrLarcXEty6h1Z0UIpc4KhuQAcHAB6k15BrHwN8B6F4eutbv8AU9eitbaAzOrTwK544QZjA3E4UDPJIFAHt0cjSO5HlmMHCsr5JI4IIxxg8dTUSmZjNBukWRTuWZoxtIJJAHPOAMHoe/Gc18+fs3aHcHWdV19mC2y25skU9ZHLI7Y5/hATPH8Yr3DxPraeGfDcupXdlqF/DAAbj7Aq+YijrIQWX5RjnBOAc9ASADWjkmMrpJBtUZKurhgR2z0IPtgj3pGllS62GFjCVXEi4OGyc5Gc+nb1zXB2nxV8G3vg+98TC+mhSB/LeCQKLtHJJSNVyc7tpYclcbskBWC63g3xXZ+NrFtTsNG1KzsBMfLmuY441mf+Jl2sWOCCpPQ5I55AAOlMiS3JgDSLJFh8jgH29x/9fHKnFioTtgfKQuzTSDdt5wcYycngYUVNQA0hEYvt+Y4UkLknnj8OT+tee+I7r4X+M7g2/iLU9Nkn0m4mtvLur5rRo5MqJAAWQsMqBu5HBwetehKm13bcx3Y+UnIB9v8AP9a4TUPhZ4K1/WJdR1LQFjv7hmlnQTyIJOcbsI4XdwCcd2Ock5oA8g8CywaZ8dprDwlPPJoDysJVjkaWIAIQGLDG5FlfarHkggZO85+mB5xePIjCbDvAJJDcYwfT736VgaH4X0PwvY3FhpeixW0HyszwKS8q7mI3OSXZkJPckcbcZAG7CnlRxJDbpFFjJThSnfAAyDz15/OgD5u+FejeFvD3i3xLpHjxNKS/tNkVv/aYAhZQzb2TzQFOf3RUkbipyON1T+A7SxX9o25XwhN5mh28crTPDLhGj8oK3oGXz2XAAI4BHABr2nxB8PfC/iuS3l13TBezW6GOOZpXRwhOdpZCCwHbOcZPckm1oPhnSPCVqLXQtGgtYZHCyNEcyMvJDOzfM2CxABJwDx6UAavkxTyPJLbYba0OXwd6H6E5B9/evGf2gvEsy2mn+DtNRpbzVCslxHHGWd4w+IkHHO6QE8HOUx0bn2eJWgsoEjg27VRfL352DgHnvgfnisC88A+GtU8Q23iC90yR9TtXjNvI11KBF5Zym1A+wLkZxjHJJGSaAF8G6EPBngrStCaTzJreBjI5JMfmEl3+baMLuZsZAOMdTWoZ7G3tTJdPEY4YWjuLmR1ZYwoywkc9BjJJOBxzjIqW0mWaVnxOkjr80bZZEKkqcH7uc9gecA4rH8QeHNH1mxurbWNPmfT2ZWmWK4aNJFRQVZgjKcLz8vIyucZC4APlLWrEXd9rms6Jp1+3gqPVFD+U5SM8tswSmF4ZtuVOwSKpyWG7640N9G1XRtL1PRRAbMQKLRoxwkYG3ZgHggZXB+6QeODVDT/BugWfhN9AOjWtro1ypE9k5LlpGYcmTcSTnbtP3hhcEYAEuheA/Dnhq2uLbSLCS2guCDJH9qldScYyAzHBwcEjGRweKAOgWVZIUljBdXAIxxwe/P50+qMNtam5TyY4ojblsxIqggtwG46ZAPHfI7ir1ACMqupVlDKRggjIIpsUUcEYjijWNB0VBgD8KKKAH0jKrjDKGGQcEZ5ByP1oooAERURURQqqMBQMACloooARVVBhVCjJOAMck5NII1EjSAfMwCk+wzj+ZoooAdRRRQAjIrjDqGGQcEZ5ByD+dN8qPzvO8tfN27d+Pmx1xn0oooAfRRRQB//Z\",\"uuid\":\"997cbcf74aab44d59845f2f554d5cd60\"}}'); +INSERT INTO `tbl_log` VALUES (9754, 63, '用户', '43.174.55.40/1.9.116.218', '2026-10-06 07:06:44', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9755, NULL, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 07:06:44', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"367x\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"997cbcf74aab44d59845f2f554d5cd60\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (9756, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:06:44', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9757, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 07:06:44', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (9758, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 07:06:44', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9759, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 07:06:45', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9760, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 07:06:45', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9761, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 07:06:45', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9762, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 07:07:15', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9763, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 07:07:25', 0, 'DeliveryPlanController.getDetail(..)', NULL, 'GET /apis/deliveryPlan/detail', '{\"id\":7}', '{\"code\":200,\"data\":{\"rows\":[{\"barCode\":\"1PH-WS79\",\"deleteFlag\":\"0\",\"depotId\":25,\"id\":6,\"materialExtendId\":123,\"materialId\":703,\"materialName\":\"1PH WS79\",\"model\":\"1PH WS79\",\"planId\":7,\"planQuantity\":10000.000000,\"shippedQuantity\":0.000000,\"sourceItemId\":1525,\"standard\":\"1PH WS79\",\"unit\":\"件\"}],\"info\":{\"createTime\":1789720385000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"id\":7,\"planNumber\":\"JH00000001741\",\"saleOrderNumber\":\"XSDD00000001726\",\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"}}}'); +INSERT INTO `tbl_log` VALUES (9764, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 07:07:31', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9765, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 07:07:31', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9766, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 07:07:31', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9767, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 07:07:31', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9768, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 07:07:31', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9769, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 07:07:52', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":2,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":200.000000,\"currentStockMovePrice\":66938.400000000000,\"currentStockPrice\":66938.400000000000,\"currentUnitPrice\":334.692000,\"currentWeight\":0E-12,\"id\":694,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00421\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR62(VB)\",\"name\":\"MD-LR62(VB)\",\"position\":\"\",\"purchaseDecimal\":334.692000,\"standard\":\"MD-LR62(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":34473.000000,\"currentStockMovePrice\":27476359.920000000000,\"currentStockPrice\":27476359.920000000000,\"currentUnitPrice\":797.040000,\"currentWeight\":0E-12,\"id\":693,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00038\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VJ)\",\"name\":\"三相四线多功能电能表T46(VJ)\",\"position\":\"\",\"purchaseDecimal\":797.040000,\"standard\":\"DTSD1226-T46(VJ)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":275400.000000000000,\"currentStockPrice\":275400.000000000000,\"currentUnitPrice\":550.800000,\"currentWeight\":0E-12,\"id\":692,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00036\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VH)\",\"name\":\"三相四线多功能电能表T46(VH)\",\"position\":\"\",\"purchaseDecimal\":550.800000,\"standard\":\"DTSD1226-T46(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":14460.000000,\"currentStockMovePrice\":7027560.000000000000,\"currentStockPrice\":7027560.000000000000,\"currentUnitPrice\":486.000000,\"currentWeight\":0E-12,\"id\":691,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.T.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"name\":\"三相四线多功能电能表T46(VC)\",\"position\":\"\",\"purchaseDecimal\":486.000000,\"standard\":\"DTSD1226-T46(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":13070.000000,\"currentStockMovePrice\":6775488.000000000000,\"currentStockPrice\":6775488.000000000000,\"currentUnitPrice\":518.400000,\"currentWeight\":0E-12,\"id\":690,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00030\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VK)\",\"name\":\"三相四线多功能电能表SXVI(VK)-新\",\"position\":\"\",\"purchaseDecimal\":518.400000,\"standard\":\"DTSD1226-SXVI(VK)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":120.000000,\"currentStockMovePrice\":82814.400000000000,\"currentStockPrice\":82814.400000000000,\"currentUnitPrice\":690.120000,\"currentWeight\":0E-12,\"id\":689,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00026\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VH)\",\"name\":\"三相四线多功能电能表SXVI(VH)-新\",\"position\":\"\",\"purchaseDecimal\":690.120000,\"standard\":\"DTSD1226-SXVI(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":400.000000,\"currentStockMovePrice\":245592.000000000000,\"currentStockPrice\":245592.000000000000,\"currentUnitPrice\":613.980000,\"currentWeight\":0E-12,\"id\":688,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.S.0.00020\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-SXVI(VG)\",\"name\":\"三相四线多功能电能表SXVI(VG)-新\",\"position\":\"\",\"purchaseDecimal\":613.980000,\"standard\":\"DTSD1226-SXVI(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":48041.000000,\"currentStockMovePrice\":23153359.950000000000,\"currentStockPrice\":23153359.950000000000,\"currentUnitPrice\":481.950000,\"currentWeight\":0E-12,\"id\":687,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.3.C.2.00025\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-CXVI(VA)\",\"name\":\"三相四线多功能电能表CXVI(VA)-新\",\"position\":\"\",\"purchaseDecimal\":481.950000,\"standard\":\"DTSD1226-CXVI(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":42490.000000,\"currentStockMovePrice\":17139616.200000000000,\"currentStockPrice\":17139616.200000000000,\"currentUnitPrice\":403.380000,\"currentWeight\":0E-12,\"id\":686,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.0004500005\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VH)\",\"name\":\"单相多功能电能表T49(VH)_(马来市场)\",\"position\":\"\",\"purchaseDecimal\":403.380000,\"standard\":\"DDSD1226-T49(VH)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":40000.000000,\"currentStockMovePrice\":8748000.000000000000,\"currentStockPrice\":8748000.000000000000,\"currentUnitPrice\":218.700000,\"currentWeight\":0E-12,\"id\":685,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.T.0.00032\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"name\":\"单相多功能电能表T49(VB)\",\"position\":\"\",\"purchaseDecimal\":218.700000,\"standard\":\"DDSD1226-T49(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9770, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 07:07:54', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":3,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":112400.000000,\"currentStockMovePrice\":9013356.000000000000,\"currentStockPrice\":9013356.000000000000,\"currentUnitPrice\":80.190000,\"currentWeight\":0E-12,\"id\":684,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.C.2.00023\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDS1226-C8(VG)\",\"name\":\"单相有功电能表C8(VG)\",\"position\":\"\",\"purchaseDecimal\":80.190000,\"standard\":\"DDS1226-C8(VG)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":20000.000000,\"currentStockMovePrice\":1717200.000000000000,\"currentStockPrice\":1717200.000000000000,\"currentUnitPrice\":85.860000,\"currentWeight\":0E-12,\"id\":683,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.1.C.2.00021\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDS1226-C8(VD)\",\"name\":\"单相有功电能表C8(VD)\",\"position\":\"\",\"purchaseDecimal\":85.860000,\"standard\":\"DDS1226-C8(VD)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9771, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 07:07:56', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9772, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 07:09:13', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"depotIds\":\"26,25\",\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9773, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 07:10:04', 0, 'PlatformConfigController.getList(..)', NULL, 'GET /apis/platformConfig/list', '{\"search\":\"{\\\"platformKey\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":21,\"rows\":[{\"id\":1,\"platformKey\":\"platform_name\",\"platformKeyInfo\":\"平台名称\",\"platformValue\":\"SMT\"},{\"id\":3,\"platformKey\":\"platform_url\",\"platformKeyInfo\":\"官方网站\",\"platformValue\":\"http://www.gyjerp.com/\"},{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"},{\"id\":5,\"platformKey\":\"bill_print_url\",\"platformKeyInfo\":\"三联打印地址\",\"platformValue\":\"\"},{\"id\":6,\"platformKey\":\"pay_fee_url\",\"platformKeyInfo\":\"租户续费地址\",\"platformValue\":\"\"},{\"id\":7,\"platformKey\":\"register_flag\",\"platformKeyInfo\":\"注册启用标记\",\"platformValue\":\"0\"},{\"id\":9,\"platformKey\":\"send_workflow_url\",\"platformKeyInfo\":\"发起流程地址\",\"platformValue\":\"\"},{\"id\":10,\"platformKey\":\"weixinUrl\",\"platformKeyInfo\":\"微信url\",\"platformValue\":\"\"},{\"id\":11,\"platformKey\":\"weixinAppid\",\"platformKeyInfo\":\"微信appid\",\"platformValue\":\"\"},{\"id\":12,\"platformKey\":\"weixinSecret\",\"platformKeyInfo\":\"微信secret\",\"platformValue\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (9774, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 07:10:06', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (9775, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 07:10:06', 0, 'SysDictTypeController.list(..)', NULL, 'GET /apis/dict/type/list', '{\"search\":\"{\\\"dictName\\\":\\\"\\\",\\\"dictType\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createBy\":\"admin\",\"createTime\":1639589778000,\"dictId\":1,\"dictName\":\"用户性别\",\"dictType\":\"sys_user_sex\",\"params\":{},\"remark\":\"用户性别列表\",\"status\":\"0\",\"updateBy\":\"admin\",\"updateTime\":1775132441000},{\"createBy\":\"admin\",\"createTime\":1775241057000,\"dictId\":12,\"dictName\":\"系统开关\",\"dictType\":\"sys_normal_disable\",\"params\":{},\"remark\":\"系统开关列表\",\"status\":\"0\",\"updateBy\":\"admin\",\"updateTime\":1775324469000}]}}'); +INSERT INTO `tbl_log` VALUES (9776, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 07:10:06', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (9777, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 07:10:06', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/sys_normal_disable', '{\"dictType\":\"sys_normal_disable\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1775241094000,\"dictCode\":11,\"dictLabel\":\"正常\",\"dictSort\":1,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"0\",\"isDefault\":\"N\",\"listClass\":\"green\",\"params\":{},\"remark\":\"正常状态\",\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1775241123000,\"dictCode\":12,\"dictLabel\":\"停用\",\"dictSort\":2,\"dictType\":\"sys_normal_disable\",\"dictValue\":\"1\",\"isDefault\":\"N\",\"listClass\":\"red\",\"params\":{},\"remark\":\"停用状态\",\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (9778, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 07:10:08', 0, 'FunctionController.getList(..)', NULL, 'GET /apis/function/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"nameEn\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":79,\"rows\":[{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"shopping-cart\",\"id\":38,\"name\":\"销售管理\",\"nameEn\":\"Sales Management\",\"number\":\"0603\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0001\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/billB\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"retweet\",\"id\":32,\"name\":\"采购管理\",\"nameEn\":\"Purchase Management\",\"number\":\"0502\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0002\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/bill\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"cluster\",\"id\":262,\"name\":\"生产管理\",\"nameEn\":\"Production Management\",\"number\":\"0901\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0003\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/production\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"hdd\",\"id\":239,\"name\":\"仓库管理\",\"nameEn\":\"Warehouse Management\",\"number\":\"0801\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0004\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/billD\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"money-collect\",\"id\":44,\"name\":\"财务管理\",\"nameEn\":\"Finance Management\",\"number\":\"0704\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0005\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/financial\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"bank\",\"id\":272,\"name\":\"资产管理\",\"nameEn\":\"Asset Management\",\"number\":\"0902\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0006\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/assetManagement\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"shopping\",\"id\":21,\"name\":\"商品管理\",\"nameEn\":\"Product Management\",\"number\":\"0101\",\"parentNumber\":\"0\",\"sort\":\"0007\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/material\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"pie-chart\",\"id\":198,\"name\":\"报表查询\",\"nameEn\":\"Reports\",\"number\":\"0301\",\"parentNumber\":\"0\",\"sort\":\"0008\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/report\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"appstore\",\"id\":24,\"name\":\"基础资料\",\"nameEn\":\"Master Data\",\"number\":\"0102\",\"parentNumber\":\"0\",\"sort\":\"0009\",\"state\":false,\"type\":\"电脑版\",\"url\":\"/systemA\"},{\"component\":\"/layouts/TabLayout\",\"deleteFlag\":\"0\",\"enabled\":true,\"icon\":\"setting\",\"id\":1,\"name\":\"系统管理\",\"nameEn\":\"System Management\",\"number\":\"0001\",\"parentNumber\":\"0\",\"pushBtn\":\"\",\"sort\":\"0010\",\"state\":true,\"type\":\"电脑版\",\"url\":\"/system\"}]}}'); +INSERT INTO `tbl_log` VALUES (9779, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 07:10:09', 0, 'PluginController.checkByTag(..)', NULL, 'GET /apis/plugin/checkByPluginId', '{\"pluginIds\":\"workflow\"}', '{\"code\":200,\"data\":false}'); +INSERT INTO `tbl_log` VALUES (9780, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 07:10:09', 0, 'PluginController.checkByTag(..)', NULL, 'GET /apis/plugin/checkByPluginId', '{\"pluginIds\":\"stock-check\"}', '{\"code\":200,\"data\":false}'); +INSERT INTO `tbl_log` VALUES (9781, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 07:10:09', 0, 'SystemConfigController.getList(..)', NULL, 'GET /apis/systemConfig/list', '{\"search\":\"{\\\"companyName\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9782, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 07:10:25', 0, 'MaterialPropertyController.getList(..)', NULL, 'GET /apis/materialProperty/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}}'); +INSERT INTO `tbl_log` VALUES (9783, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 07:12:05', 0, 'OrganizationController.getOrganizationTree(..)', NULL, 'GET /apis/organization/getOrganizationTree', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9784, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 07:12:21', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9785, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 07:12:56', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9786, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 07:12:57', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9787, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 07:12:57', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9788, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 07:12:58', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9789, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 07:12:58', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9790, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 07:12:59', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9791, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 07:13:00', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9792, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 07:13:00', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9793, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 07:13:03', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9794, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-06 07:13:03', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9795, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 07:13:03', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9796, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 07:13:03', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9797, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 07:13:03', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9798, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 07:13:03', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9799, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:13:03', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9800, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 07:13:03', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9801, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 07:13:03', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9802, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 07:13:05', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (9803, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 07:13:05', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9804, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 07:13:05', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9805, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 07:13:05', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9806, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 07:13:05', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"零售\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9807, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 07:13:05', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9808, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:13:05', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (9809, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 07:13:05', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9810, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 07:13:05', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9811, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:13:06', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (9812, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 07:13:06', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9813, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-06 07:13:06', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9814, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 07:13:06', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9815, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 07:13:06', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9816, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 07:13:06', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"零售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9817, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 07:13:06', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9818, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:13:09', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9819, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 07:13:09', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9820, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 07:13:09', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9821, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 07:13:09', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9822, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 07:13:09', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9823, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 07:13:09', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"采购退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\",\\\"createTimeRange\\\":[\\\"2026-07-05T16:00:00.000Z\\\",\\\"2026-10-05T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9824, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 07:13:09', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9825, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 07:13:16', 0, 'PersonController.getList(..)', NULL, 'GET /apis/person/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":44,\"name\":\"Neezam\",\"type\":\"CEO\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":31,\"name\":\"Arif\",\"sort\":\"1\",\"tenantId\":63,\"type\":\"商务主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":36,\"name\":\"张伟\",\"sort\":\"10\",\"tenantId\":63,\"type\":\"资产管理员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":32,\"name\":\"Hafiz\",\"sort\":\"2\",\"tenantId\":63,\"type\":\"技术主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":37,\"name\":\"陈晨\",\"sort\":\"20\",\"tenantId\":63,\"type\":\"设备工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":33,\"name\":\"Aziman\",\"sort\":\"3\",\"tenantId\":63,\"type\":\"软件工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":38,\"name\":\"王磊\",\"sort\":\"30\",\"tenantId\":63,\"type\":\"生产主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":34,\"name\":\"Lim\",\"sort\":\"4\",\"tenantId\":63,\"type\":\"IT\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":39,\"name\":\"赵敏\",\"sort\":\"40\",\"tenantId\":63,\"type\":\"IT运维工程师\"}]}}'); +INSERT INTO `tbl_log` VALUES (9826, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 07:13:16', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (9827, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 07:13:16', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (9828, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 07:13:50', 0, 'AccountController.getList(..)', NULL, 'GET /apis/account/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"serialNo\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9829, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 07:13:55', 0, 'InOutItemController.getList(..)', NULL, 'GET /apis/inOutItem/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"利息收入\",\"remark\":\"收入\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":22,\"name\":\"房租收入\",\"remark\":\"\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"快递费\",\"remark\":\"\",\"tenantId\":63,\"type\":\"支出\"}]}}'); +INSERT INTO `tbl_log` VALUES (9830, NULL, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 07:14:01', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9831, NULL, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 07:14:01', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9832, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:14:02', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9833, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 07:14:02', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9834, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 07:14:02', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9835, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 07:14:02', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9836, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 07:14:02', 0, 'InOutItemController.getList(..)', NULL, 'GET /apis/inOutItem/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"利息收入\",\"remark\":\"收入\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":22,\"name\":\"房租收入\",\"remark\":\"\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"快递费\",\"remark\":\"\",\"tenantId\":63,\"type\":\"支出\"}]}}'); +INSERT INTO `tbl_log` VALUES (9837, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 07:14:07', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9838, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 07:14:07', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9839, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 07:14:07', 0, 'DepotController.getList(..)', NULL, 'GET /apis/depot/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":25,\"isDefault\":true,\"name\":\"半成品仓库\",\"remark\":\"总部入库物料\",\"sort\":\"1\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000},{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":26,\"isDefault\":false,\"name\":\"成品仓库\",\"remark\":\"Stock Status成品\",\"sort\":\"2\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (9840, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 07:14:09', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9841, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 07:14:27', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"会员\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9842, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 07:14:29', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9843, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 07:14:29', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"客户\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":12430066.000000,\"allNeedPay\":0.000000,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Stock Status客户\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":90,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"2\",\"supplier\":\"TNB\",\"taxNum\":\"\",\"taxRate\":10.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"客户\"}]}}'); +INSERT INTO `tbl_log` VALUES (9844, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 07:14:29', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9845, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 07:14:37', 0, 'CustomerContactController.getListByCustomerId(..)', NULL, 'GET /apis/customerContact/listByCustomerId', '{\"customerId\":90}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9846, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 07:14:42', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"供应商\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":0.000000,\"allNeedPay\":116500257.436400,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Excel初始化默认供应商\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":89,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"1\",\"supplier\":\"浙江瑞银电子有限公司\",\"taxNum\":\"\",\"taxRate\":0.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"供应商\"}]}}'); +INSERT INTO `tbl_log` VALUES (9847, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 07:15:05', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9848, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 07:15:05', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9849, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 07:15:05', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9850, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 07:15:07', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9851, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:15:37', 0, 'SystemConfigController.exportExcelByParam(..)', NULL, 'POST /apis/systemConfig/exportExcelByParam', '{\"jsonObject\":{\"head\":\"仓库,条码,名称,规格,型号,颜色,品牌,制造商,扩展1,扩展2,扩展3,单位,库存,最低安全库存,最高安全库存,建议入库量,建议出库量\",\"tip\":\"库存预警查询\",\"title\":\"库存预警\",\"list\":[]}}', NULL); +INSERT INTO `tbl_log` VALUES (9852, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 07:16:06', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9853, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 07:16:07', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9854, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 07:16:08', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9855, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 07:16:20', 0, 'DepotItemController.findStockWarningCount(..)', NULL, 'GET /apis/depotItem/findStockWarningCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9856, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:16:23', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (9857, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 07:16:23', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"hasDebt\":1,\"supplierType\":\"供应商\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":103509293.334800,\"lastMoney\":116500257.436400,\"rows\":[{\"allNeed\":116500257.436400,\"backMoney\":2139558.598400,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":15130522.700000,\"email\":\"\",\"id\":89,\"phoneNum\":\"\",\"preBackMoney\":10686582.135200,\"preDebtMoney\":114195875.470000,\"preNeed\":103509293.334800,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"浙江瑞银电子有限公司\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (9858, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:16:26', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9859, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:16:26', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9860, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 07:16:26', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9861, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 07:16:26', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"hasDebt\":1,\"supplierType\":\"客户\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":13532266.000000,\"lastMoney\":12430066.000000,\"rows\":[{\"allNeed\":12430066.000000,\"backMoney\":4336200.000000,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":3234000.000000,\"email\":\"\",\"id\":90,\"phoneNum\":\"\",\"preBackMoney\":10677700.000000,\"preDebtMoney\":24209966.000000,\"preNeed\":13532266.000000,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"TNB\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (9862, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 07:16:28', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9863, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 07:16:28', 0, 'DepotHeadController.debtList(..)', NULL, 'GET /apis/depotHead/debtList', '{\"search\":\"{\\\"organId\\\":90,\\\"materialParam\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"status\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\",\\\"beginTime\\\":\\\"2026-07-06\\\",\\\"endTime\\\":\\\"2026-10-06\\\"}\",\"currentPage\":1,\"pageSize\":10001}', '{\"code\":200,\"data\":{\"total\":29,\"rows\":[{\"fileName\":\"\",\"totalPrice\":735000.000000,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-09-18 16:03:01\",\"deleteFlag\":\"0\",\"number\":\"XSCK00000001728\",\"payType\":\"现付\",\"accountIdList\":\"\",\"needDebt\":808500.000000,\"id\":1720,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK00000001728\",\"linkNumber\":\"XSDD00000001726\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"accountId\":17,\"organName\":\"TNB\",\"lastDebt\":808500.000000,\"otherMoney\":0.000000,\"createTime\":1789718584000,\"deposit\":0,\"organId\":90,\"purchaseStatus\":\"0\",\"subType\":\"销售\",\"debt\":808500.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-08-10 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1671,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-10\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1786305600000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-08-10 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-INV_2159-86\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1670,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-10\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-INV_2159-86\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1786305600000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-08-05 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-DO_2158-85\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1669,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-05\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-DO_2158-85\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785873600000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-08-05 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1668,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-05\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785873600000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-08-05 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-DO_2157-83\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1667,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-05\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-DO_2157-83\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785873600000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-29 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-INV_2150-69\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1665,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-29\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-INV_2150-69\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785268800000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2148\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-do_2148-60\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1655,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-do_2148-60\",\"linkNumber\":\"XSDD-42303465-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-1PH-WS79-ADD1-61\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1656,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-61\",\"linkNumber\":\"XSDD-42303465-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2147\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-do_2147-59\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1654,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-do_2147-59\",\"linkNumber\":\"XSDD-42303465-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-1PH-WS79-ADD1-58\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1653,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-58\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":77616.000000,\"discount\":100.000000,\"discountLastMoney\":77616.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-1PH-WS79-ADD1-56\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":77616.000000,\"id\":1651,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-56\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":77616.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":77616.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":3234.000000,\"discount\":100.000000,\"discountLastMoney\":3234.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2145\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-do_2145-55\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":3234.000000,\"id\":1649,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-do_2145-55\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":3234.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":3234.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-1PH-WS79-ADD1-54\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1648,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-54\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2146\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-do_2146-57\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1652,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-do_2146-57\",\"linkNumber\":\"XSDD-42303461-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2144\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-do_2144-53\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1647,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-do_2144-53\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:do_2143\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-27 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-do_2143-52\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1646,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-27\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-do_2143-52\",\"linkNumber\":\"XSDD-42303456-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1785096000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2138\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-INV_2138-49\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1643,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-INV_2138-49\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2140\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-INV_2140-62\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1657,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-INV_2140-62\",\"linkNumber\":\"XSDD-42303470-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2141\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-INV_2141-63\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1658,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-INV_2141-63\",\"linkNumber\":\"XSDD-42303470-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-1PH-WS79-ADD1-64\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1659,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-64\",\"linkNumber\":\"XSDD-42303470-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-INV_2142-68\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1664,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-INV_2142-68\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"TNB\",\"lastDebt\":80850.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":90,\"subType\":\"销售\",\"debt\":80850.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":80850.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2139\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"出库\",\"operTimeStr\":\"2026-07-22 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"XSCK-INV_2139-50\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":80850.000000,\"id\":1644,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-22\",\"creator\":63,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"defaultNumber\":\"XSCK-INV_2139-50\",\"linkNumber\":\"XSDD-42303452-1PH-WS79-ADD1\",\"backAmount\":0.000000,\"billType\":\"销售\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"or...[已截断]'); +INSERT INTO `tbl_log` VALUES (9864, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 07:16:28', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9865, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 07:16:28', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (9866, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 07:16:28', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9867, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 07:16:28', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9868, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 07:16:32', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-1PH-WS79-ADD1-87\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1786305600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (9869, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 07:16:32', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-1PH-WS79-ADD1-87\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1786305600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (9870, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-06 07:16:32', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1671}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9871, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-06 07:16:32', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1671,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":1000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":1000.000000,\"anotherDepotId\":\"\",\"basicNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"model\":\"1PH WS79\",\"id\":1476,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":7350.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":73500.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":73500.000000,\"finishPurchaseNumber\":0,\"operNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"weight\":0,\"taxMoney\":7350.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (9872, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 07:16:32', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSCK-1PH-WS79-ADD1-87\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9873, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-06 07:16:32', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9874, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 07:16:32', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9875, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 07:16:37', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD-42303506-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1767211200000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":161700.000000,\"defaultNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售订单其它\",\"discount\":100.000000,\"discountLastMoney\":161700.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1583,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303506-1PH-WS79-ADD1\",\"operTime\":1767211200000,\"operTimeStr\":\"2026-01-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status客户PO:42303506\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (9876, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-06 07:16:37', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD-42303506-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1767211200000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":161700.000000,\"defaultNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售订单其它\",\"discount\":100.000000,\"discountLastMoney\":161700.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1583,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303506-1PH-WS79-ADD1\",\"operTime\":1767211200000,\"operTimeStr\":\"2026-01-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status客户PO:42303506\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (9877, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-06 07:16:37', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1583}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9878, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 07:16:37', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9879, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-06 07:16:37', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSDD-42303506-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9880, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-06 07:16:37', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1583,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":2000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":2000.000000,\"anotherDepotId\":\"\",\"basicNumber\":2000.000000,\"taxLastMoney\":161700.000000,\"model\":\"1PH WS79\",\"id\":1388,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":14700.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":147000.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":147000.000000,\"finishPurchaseNumber\":0,\"operNumber\":2000.000000,\"taxLastMoney\":161700.000000,\"weight\":0,\"taxMoney\":14700.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (9881, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-06 07:16:37', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9882, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 07:16:54', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9883, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 07:16:54', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9884, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-06 07:16:54', 0, 'DepotItemController.getInOutStockCountMoney(..)', NULL, 'GET /apis/depotItem/getInOutStockCountMoney', '{\"endTime\":\"2026-10-06\",\"materialParam\":\"\"}', '{\"code\":200,\"data\":{\"showStockPrice\":true,\"totalStock\":519352.000000,\"totalCount\":107419830.670000000000}}'); +INSERT INTO `tbl_log` VALUES (9885, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-06 07:16:54', 0, 'DepotItemController.getInOutStock(..)', NULL, 'GET /apis/depotItem/getInOutStock', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-09-06\",\"endTime\":\"2026-10-06\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":23,\"rows\":[{\"unitPrice\":10.000000,\"materialModel\":\"MD-4G111(VF)\",\"unitName\":\"件\",\"thisSum\":0.000000,\"materialStandard\":\"MD-4G111(VF) packing\",\"outSum\":10000.000000,\"barCode\":\"1001\",\"bigUnitStock\":\"\",\"prevSum\":0.000000,\"imgName\":\"\",\"materialName\":\"MD-4G111(VF) 包装\",\"id\":705,\"inSum\":10000.000000,\"thisAllPrice\":0E-12},{\"unitPrice\":317.500000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"3PH APEC3-WC\",\"unitName\":\"件\",\"thisSum\":7372.000000,\"materialStandard\":\"3PH APEC3-WC\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"3PH-APEC3-WC\",\"bigUnitStock\":\"\",\"prevSum\":7372.000000,\"imgName\":\"\",\"materialName\":\"3PH APEC3-WC\",\"id\":704,\"inSum\":0,\"thisAllPrice\":2340610.000000000000},{\"unitPrice\":59.500000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"1PH WS79\",\"unitName\":\"件\",\"thisSum\":52400.000000,\"materialStandard\":\"1PH WS79\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":10000.000000,\"barCode\":\"1PH-WS79\",\"bigUnitStock\":\"\",\"prevSum\":52400.000000,\"imgName\":\"\",\"materialName\":\"1PH WS79\",\"id\":703,\"inSum\":10000.000000,\"thisAllPrice\":3117800.000000000000},{\"unitPrice\":24.300000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-RS178(VA)\",\"unitName\":\"件\",\"thisSum\":1000.000000,\"materialStandard\":\"MD-RS178(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00722\",\"bigUnitStock\":\"\",\"prevSum\":1000.000000,\"imgName\":\"\",\"materialName\":\"MD-RS178(VA) RS485分线器\",\"id\":702,\"inSum\":0,\"thisAllPrice\":24300.000000000000},{\"unitPrice\":142.560000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-RS114(VB)\",\"unitName\":\"件\",\"thisSum\":100.000000,\"materialStandard\":\"MD-RS114(VB)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.0068900002\",\"bigUnitStock\":\"\",\"prevSum\":100.000000,\"imgName\":\"\",\"materialName\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"id\":701,\"inSum\":0,\"thisAllPrice\":14256.000000000000},{\"unitPrice\":132.840000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"TC160(VA)\",\"unitName\":\"件\",\"thisSum\":50.000000,\"materialStandard\":\"TC160(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00686\",\"bigUnitStock\":\"\",\"prevSum\":50.000000,\"imgName\":\"\",\"materialName\":\"TC160(VA) 通讯模块供电盒\",\"id\":700,\"inSum\":0,\"thisAllPrice\":6642.000000000000},{\"unitPrice\":0.100000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-4G111(VF)\",\"unitName\":\"件\",\"thisSum\":76970.000000,\"materialStandard\":\"MD-4G111(VF)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00654\",\"bigUnitStock\":\"\",\"prevSum\":76963.000000,\"imgName\":\"\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"id\":699,\"inSum\":7.000000,\"thisAllPrice\":7697.000000000000},{\"unitPrice\":324.000000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MD-4GVIII(VB)\",\"unitName\":\"件\",\"thisSum\":50.000000,\"materialStandard\":\"MD-4GVIII(VB)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00562\",\"bigUnitStock\":\"\",\"prevSum\":50.000000,\"imgName\":\"\",\"materialName\":\"MD-4GVIII(VB)\",\"id\":698,\"inSum\":0,\"thisAllPrice\":16200.000000000000},{\"unitPrice\":129.600000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MT-P109(VA)\",\"unitName\":\"件\",\"thisSum\":500.000000,\"materialStandard\":\"MT-P109(VA)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00553\",\"bigUnitStock\":\"\",\"prevSum\":500.000000,\"imgName\":\"\",\"materialName\":\"MT-P109(VA)\",\"id\":697,\"inSum\":0,\"thisAllPrice\":64800.000000000000},{\"unitPrice\":0.100000,\"materialMfrs\":\"浙江瑞银电子有限公司\",\"otherField1\":\"\",\"materialModel\":\"MT-3NSXL(VC)\",\"unitName\":\"件\",\"thisSum\":54656.000000,\"materialStandard\":\"MT-3NSXL(VC)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00547\",\"bigUnitStock\":\"\",\"prevSum\":54656.000000,\"imgName\":\"\",\"materialName\":\"MT-3NSXL(VC)RF通讯模块\",\"id\":696,\"inSum\":0,\"thisAllPrice\":5465.600000000000}]}}'); +INSERT INTO `tbl_log` VALUES (9886, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 07:16:56', 0, 'DepotItemController.getMaterialDepotStockByParam(..)', NULL, 'GET /apis/depotItem/getMaterialDepotStockByParam', '{\"depotIds\":\"\",\"mId\":698,\"unitPrice\":324,\"beginTime\":\"2026-09-06\",\"endTime\":\"2026-10-06\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"unitPrice\":324,\"depotName\":\"半成品仓库\",\"allPrice\":16200.000000,\"depotId\":25,\"currentNumber\":50.000000}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9887, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-06 07:17:02', 0, 'DepotItemController.getMaterialDepotStockByParam(..)', NULL, 'GET /apis/depotItem/getMaterialDepotStockByParam', '{\"depotIds\":\"\",\"mId\":696,\"unitPrice\":0.1,\"beginTime\":\"2026-09-06\",\"endTime\":\"2026-10-06\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"unitPrice\":0.1,\"depotName\":\"半成品仓库\",\"allPrice\":5465.6000000,\"depotId\":25,\"currentNumber\":54656.000000}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9888, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:17:06', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9889, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 07:17:06', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9890, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 07:17:06', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"出库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":2,\"priceSumTotal\":2940000.000000,\"numSumTotal\":50000.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":0.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":40000.000000,\"priceSum\":2940000.000000,\"standard\":\"1PH WS79\"}]}}'); +INSERT INTO `tbl_log` VALUES (9891, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-06 07:17:06', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9892, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-06 07:17:06', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9893, 63, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:17:11', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9894, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 07:17:11', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9895, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-06 07:17:11', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9896, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-06 07:17:11', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9897, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-06 07:17:11', 0, 'DepotHeadController.findInOutMaterialCount(..)', NULL, 'GET /apis/depotHead/findInOutMaterialCount', '{\"currentPage\":1,\"pageSize\":10,\"materialParam\":\"\",\"beginTime\":\"2026-07-06\",\"endTime\":\"2026-10-06\",\"type\":\"入库\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":7,\"priceSumTotal\":15130522.700000,\"numSumTotal\":102117.000000,\"rows\":[{\"barCode\":\"1001\",\"categoryName\":\"包装\",\"mName\":\"MD-4G111(VF) 包装\",\"materialId\":705,\"materialUnit\":\"件\",\"model\":\"MD-4G111(VF)\",\"numSum\":10000.000000,\"priceSum\":100000.000000,\"standard\":\"MD-4G111(VF) packing\"},{\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"mName\":\"1PH WS79\",\"materialId\":703,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"numSum\":10000.000000,\"priceSum\":595000.000000,\"standard\":\"1PH WS79\"},{\"barCode\":\"C.4.T.0.00654\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"MD-4G111(VF) 4G模块\",\"materialId\":699,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"numSum\":7.000000,\"priceSum\":0.700000,\"standard\":\"MD-4G111(VF)\"},{\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"MT-3NSXL(VC)RF通讯模块\",\"materialId\":696,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"numSum\":37520.000000,\"priceSum\":3752.000000,\"standard\":\"MT-3NSXL(VC)\"},{\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"三相四线多功能电能表T46(VC)\",\"materialId\":691,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-T46(VC)\",\"numSum\":10890.000000,\"priceSum\":5292540.000000,\"standard\":\"DTSD1226-T46(VC)\"},{\"barCode\":\"C.3.C.2.00025\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"三相四线多功能电能表CXVI(VA)-新\",\"materialId\":687,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DTSD1226-CXVI(VA)\",\"numSum\":6720.000000,\"priceSum\":3238704.000000,\"standard\":\"DTSD1226-CXVI(VA)\"},{\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"mName\":\"单相多功能电能表T49(VB)\",\"materialId\":685,\"materialUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"DDSD1226-T49(VB)\",\"numSum\":26980.000000,\"priceSum\":5900526.000000,\"standard\":\"DDSD1226-T49(VB)\"}]}}'); +INSERT INTO `tbl_log` VALUES (9898, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-06 07:17:14', 0, 'AccountController.getStatistics(..)', NULL, 'GET /apis/account/getStatistics', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"allCurrentAmount\":\"4375818.53\",\"allMonthAmount\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9899, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-06 07:17:14', 0, 'AccountController.listWithBalance(..)', NULL, 'GET /apis/account/listWithBalance', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9900, NULL, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-06 07:17:58', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (9901, NULL, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-06 07:17:58', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9902, NULL, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-06 07:17:58', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9903, NULL, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-06 07:17:59', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9904, NULL, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-06 07:17:59', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3tbiBp2gWaMzKMtGGG4D3HXuKit4QDMVe4DmQlvMYnvnCg5AXBxx29xxIYk+1rNsYuEKht3AGQcYz1Prjt9K+Y/8AhcSn4wjxH9r1v/hGwCBp/mcgGDZ/q9+z/WAN19+tAH02yvMUeK4KxlD9wA7s4wQTnpz9arStJBbb726Cb3UMUQhVBUArkcgZyQ2RgkemDmeHfFuna74Usddt4riGxuFYKZIgChRymCqlsAlTjkjHfNdA0YZ0clsrnGGIHPqOh/GgCNhsCmSR1WEb2kZgA3BB3fz6AdKZdtMltJLHGWeI70RHILgDkHg9eRjB7dD084vvjp4QtNR1bS7yHUI5rHzoyJrcbLiRCV8tcEkFjnG4KPXFdP4K8aWXjzRJdX0q3uIFjuBbSJd4HKhWbG1iOj8HjJHIoA6CKEBzPb3DMkxVjvcyKRyfl54zntxwOKhllkuboQQieGSBw7McBSCHAyP4lOBwMdRyCDi7Hv2DzNu/vt6H3/8Arfzrxi1/Z8tdRga78U+JdUv9ZmAMk8Ug2ghQApMgZnwQRuyuRjgYoA9kkSZ2KrJsQr95cblOfcEEEfljvniJWJu5oUdjkbnfeCYiQAAF7cAnnj65rw/4KajqmnfEDxB4LudQkvbDTVm8ppCwKtFKsXyjcQFKn7pzjAxjnPonxE8QN4e8A6pq0ObueND9lkCgpG0jeUD0KnaHzhhhun0AOvmUyxIxlktzkHIK5yeMHOQev502FIpbRBDLL5YYEMXYtw2SCW56jBB9xXz34F+D1j498Fr4h1fV9VGp3vmeVNuRkXaTGu4NlnwUyeV4IA6ZrtPgr4zvvGnha607VpHub3S5Yla4fIMsTZKEsDkyAo2TgZAXJJJNAHqiS5uJYmK7l2sAAchTwM++Q36VLTDJiZY9jHcpbcBwMY4J9ef0NPoAq4uxIpQgp5p3ibAO3tsK+noRk+orwK+v7PTP2sZLy/u4LS1jxvmnkEaLmxAGWPAySB+NfQjuybdsbPlgDtx8o9Tkjj6c1zPij4f+GvF2o2l3rWki8liQw7xO8RVOWGdpBbB4A7bjQBo2epwSxG8tdRjvdNlDyx3MQE0YAPzKHRucYYDjjpk4xVy5Ty4ESEStOm54c7m+YA8Mx4AOSOT34qnpOg6P4c0200jS7f7JbRM7QIGZsMcljuYnJ+ZuCTx7DjTQsghieZGl25Y4wXwMEgZ45I/OgLHzv8O9MsNS/aK8TtfWqXBtLm9ubfeCRHKLkAPjpkBjjPQ4I5Ar6D+xpbiV7KKGGWWXzpdqBRM2ACXIGckADd14HUDBwdI8GaFpeu6nrmnaebLWL4SebM0zOSJGDlipdl5dc8AdMVvDzp4bi3cvHIFKCdV2qSR1UbieMj8aBBDJ9okEkM8pj+VyrRYUqVOApIHqCeTjGOK+fviN8XrmfWH8P+Cr+OKAzFJdR3qoZ2BVhHI5wi5YkyAr2KkAFn+gYRBp8KwvNGn3iu4hSVH89q4GfauBi+CXw/jupEk0bzBJl4kN1OCgGARkScjJGO/PegCh8LvDnhbwnpMy6Xr2kap4glgMl9dW10kphjGMiNRk7FO3qBuOCcfKo77xMulXOg6nba3bxT6Wlm814soJUIoJz8oLZ+UkFeQVBHOKy9B8AeFfB+pG80HTo7O+nj8kl7mV98e5WYAMx5+UHp29K6IxR3y3cNx5VxayKYXt5IsjGCGDA/eDA9CMYx1zkgz51uvCPhvw3puoG3+LzHQCxeXStOuFea5RvlMe1JdrOV2ruK47kBRW9+z9pF1p3hjVNdxP/wATGcW0MZXYpEasRIGbIbLsUHGAQeucDtoPg34AttTikTw8h8sCRVkluHUsD33OUYf7JBz34rsJNllHDaWqvb20aiJI7e0JEYC8YwMBQMAADr6gEUAWYmSdUKzMxgcq2GX5iARhscd8447dOlWKiiMqbIpA0jCMbpsAKzdDxnIPfpj3qWgAooooAjlginAEi5x0IJBH4j8D9QD2pYo0hiSKMYRFCqM9AOlFFAD6aqKpYqoBY5YgdTjGT+AH5UUUAOpFVURURQqqMAAYAFFFAC0x40k27hkqwZTnBB/z+hIoooAfRRRQAUUUUAf/2Q==\",\"uuid\":\"7b7a0bcb4a3b47ac8abc4e7ad12a8dc2\"}}'); +INSERT INTO `tbl_log` VALUES (9905, NULL, '接口日志', '43.168.32.214/1.9.116.218', '2026-10-06 07:19:33', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"tr29\",\"loginName\":\"aaaaaaa\",\"password\":\"******\",\"uuid\":\"7b7a0bcb4a3b47ac8abc4e7ad12a8dc2\"}}', '{\"code\":200,\"data\":{\"msgTip\":\"user is not exist\"}}'); +INSERT INTO `tbl_log` VALUES (9906, NULL, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-06 07:19:33', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3iR0glB+bdKwHzFto7e4U8+2TTnl8kKJDud2IQKMbjgkD64HU/pRIRtfzdqwBSH3gYIwOc56dc5//AF8HrPxj8MeHfFs3h3WFvba4gC+dciESQKWjDjlSXP3gPudfbmgDv3DMhCNtbscZqKRHCzbGmBbDAqVJzjG1c8Dp39fy8+8MfG7wn4o1yHSIVvrK4n4ha9jREkfsgKu3zHtnGemckA96baP7M4nIWSUAPIGPDdtpbphjwOxoAkYSuVmhkOCF/dyLhcZBJ6bg2M98e1MQTQL5kq+ZI7hX8tm2gZwCFJOOoz+J5xXAeKvjL4P8N39xo93Je6jcI7xXCWcasIjgZUsWUfxFeCSCpBweup4N+IXhnx1c+ZpjypqKITJbzKVkjQMwGcHBB68EgEqCQdtAHYZeC3keQtMV3NhV5IySFA7kDA96aZYY5ZXefbtVQwdsKvXB59c4z7Y7VPXgfiP4X+AbYXkniL4hXZ16O3DXEt3fRPIXEYwxhIMjDGCE3EkYAPQ0Ae6H7RLbrIoMMwQ/unIK7scbiMnGfQipd3lxbpXUbVy7fdHufYV47+z3L4hvPDGonV5LqfR90cenG5bcuFDLIqZ52DCDH3QQQOd1em+IbHULvwtqGn6ZKPtU1lLBFJJIUYOyFVfcB1B9vxGKANWJneFGkTy3Kgsmc7T3Ge9O3KGC7huIJAzyQP8A9YrxK4/Z30qW2Ml94m1CbVZ2cy3cm0K8jEkNsOWY+oL5JycjpU3wC8Wapr+m61DrV39rOneUYru4O6bZJ5hZWkJyygpkZ6ZPOMAAHsTSG3hUyb5cHBZEycdiQOT26D8AOk1VYo7v7WXldPKKgqqk5U4AK9PmGRkHg9ulWqAGSM6qCibzuUYzjgkAn8Bk/hXzfq9zpWl/tS+frMlvDYQzQ/PIuI42+yqIifTD7OegxngDj6Hv5zFGBHOkRDp5jHB2ITjPtnGAcH+ZHhbeFpdT/aVkkufD09xoSYjka5tDJb4Wz2ruLArjcoxnvjvQBnfGnVdM1/xJ4WXwpdWc+tmR8yadKrOGaRPJBlXjduDnG75SSe4J98nN1d2MEzwR2+R++DuC0aEjPUYI25yD7dxWBpHw58DeGtQkvdM0eKK6SNopJDcSSmFHHJw7Hbkcbhg4J5wTXSXDQz3URhldrlFE0aq+EZTkZOQRjnqOcdKAPlHwfdeJtH8Va1DB4o0nQta80xXc+rlXaVw5DgSmOQfe5b5hu4POMjtfhtoeoT/GRNXuPE+g396IZrm+i0xyfMRlKbiY4xETvZGI3Zz8xGa9Z8Q/Dzwl4jlS/wBV8PQS3bupdxK0DkttU72RhuIAGASehx150PDfgfw14R8w6HpEFpJJkNNlpJCDjK73Jbb8oO3OMjOM0AX9QuLPTrG/uLx0Swit3nucbiyKASzYGTggMeOcg9SePK9etPhB4mmvtZ1O80/zbmAOt5BqeyVEEKhSIfMzvGMBPLJyACpOa9Znhilsmiv0tpjMrxGOYAo4f/lnyOQRgdOcdK4U/Bf4dvaCdPD74KiQCO9mYsOuB+8IOenHrwe9AHK/s3X2qXGh61a3Mk76ZbSxC0Dr8iO28yKrf98ErnjdnA3HPsE/2ax3TXdzHDboXnLSHYqYAYsWzhcANnpkE5zyS/TbW1sLVLOw0+Kys49wjihjWNVO45wowACfmBHXJ6d26jp1vqOkT2eoqtxC8UkcgZjGGVlZTkr0yrEEj1yMUAfOfjX4pal421yTwx4c1WPT9CuWaGS6vZUgEyk5ZndgDHFgHC/eIJBzuCD134c+GvCOj6DLpeg6lp2rn92+oXEMqSPLJklS+1jtTg7U6deSSxNWz+DXw/mjxL4dQSqBuMd9cFWBGQy/vM4P8weuM10fhrwh4b8GXFzDoGmvaNdhDORLJIDt3bc72OOr9Px7UAb8arNHC7q++M5HmDDBsFTnHHc9OPTtU1VZZrd2gcBpisgKGIFgpIxkkcAbXzz2OatUAIEUOXCjeQAWxyQM4H6n86jW3iS5e4VMSuoViCfmx0yOmffrRRQBLTJIo5dvmRo+xgy7hnBHQj3oooASaCKdQsqBgDkZ/wA/Ue4JHepKKKACiiigAooooAijtoYriadExLNt8xsnnAwKkdFkRkdQysMFSMgj0oooAbFGkMSRRjCIoVRnOAOlPoooA//Z\",\"uuid\":\"32220f98a22d4febae2cee8d9a1d7034\"}}'); +INSERT INTO `tbl_log` VALUES (9907, NULL, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-07 13:04:22', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9908, NULL, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-07 13:04:22', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9909, NULL, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-07 13:04:24', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3qOJ0lkdpWcNgKp4Cjk/nz19APTJb5k5mlRbcBFXKSO4AdvTAyQPc/kabI1sbsxOAk8ke1XztZ15yFPXjqcdMg1wOsfGHwz4V8TP4Z1GG/gmtTGklwYUMKqUVg3yEt90jgJ144oA9DhMxQ+cEDZ/gJIx+P5e+M8ZwKyLfTSwyMy28WMyQ4DNkE4w3TBB5+gx1Nef6T8efBOpx3TzT3mnC3VWxeQjMgLBTsCM24jIJHXGSAQDi14Q+K/hvxtrj2emCe2vxH8kWoRpGZlAYkRspbJB2kgnpkgHBwAd5sP2kM1w27JZIwQPlwAQR35wc9RnHTqruyyGN3CiU7YmUfNnBJHcdic/hjjnza9+N/g7TtV1PSbqK/trjS2mjVmtVZJJIyU2x7WJyecbtox1Iq/4M+K/hnxzqUumWjXlrfGLKx3YEXnAZ3eXtduR1IyDjnkKSADv3UsjKGKkjAYYyPfmoN7qywLJG0o2k72+YpxlsAdevt/Kq2s3tro+gXeoXaTSW1hCbl1TLORGN3GTyfl7n6mvkW/8AEujeLfHOpat4uuNbfTpS/wBjSzMbSwp5mUjw52hQhbp/Ec85OQD6/eL7Wdi3D7UVkaSKbDbiMEEAYyOuex7U+G5iuZUaNZsGPcrlWVWBPv34HXseOprF8NQ2UvhfQo7C5vEsX0uA28cpAlMaqhUsV4DYIDY6546Vcvruy0PRdT11YnkWC1eeYBiWcRITj5jw2ARz360IDSBlF2wO4xGMY4GA2TnnOcnI7Y496amJRJH5zFo5fmKjaRyGC/TBA96wPB3jnTfG+g3OsaXbXqQQTNA0c8aiRmVVbgKxB4Yd+tZvhH4laR4+g1AaTZXyi02LMLuFeRIHwQqM24DYcg49snigDtJo2kQKkhQh1bI9AwJH4gY/GpKzVmaa3iWTTkks3QHMbB1A4I+UgEjHtnI6dCdKgBqFzu3qo5+Xa2cj1PAwa+epI4L79rYKyRSosqtiSPcAyWYIOD3DLkHsQD2r6BIWdpY2IZFwpXBBVuuc/iuMdPX058+A9CPjJvFht3GteYGW4WRuF8oRbSpJUgrnnAPP40AeJJCrftSot1bFtswcQsqHay2u5AN3y/KQu08dARg4q3fRed+1hJH5ZkJAwgCnP+g/7QIr2aTwJ4bl8WjxS+m51oMG+0+fJ1CBB8u7b90AdKgbwf4dt/HD+LJ7MjVpCixXTXDY3lDFtCA4+5jqD1zxgmgDyP4XW0D/ALQ3i4yRLI0DXzxNINzI32lV3AnkHazDPXBPrTbezhsv2sjBZosS7nccEje1kWZjzkksSTzySa9g0vwb4b0vxLf6zpunyW+qXZc3Nys0hDlpA7qQzELlgp6DIPHGaavg3w1/wnC+JItPkXWovka4R5NgPlBACudv+r44H15IoDY6ARW0dzG8nkrduPvKNrSYHPfJHtzjj0rwH4YiKP8AaA8YQ7FGWvREnKjct0jAcdB8v6V9B7IpXWXajshIVsAlT0OD29K57SfA/hzw7rt3rGk6Z5Op3aSCWUzysHDMGYHJKrlgDwM8cd6AOguCgt5N7tGpXBdTgrnjOe2PXtXM+NYpYvhlrKW8iOkek3Ads4Dp5DjI698H8OtdDbQzQM+Vi2yyGRtpAK5A9FG7nPJ5xilsUljgaOSJIgsjiNVYkbNx2/Tjt0Ht0AB4V8CvGvhzw74I1O01fVrezmS9kuSkzYJQxJjaOrk7H4XJ4A6suW/sy/8AM0/9un/tavSIfhR4Hi1ddRh8L2bOZJGcTPIYwTkcQtlCOTgYAHBHar+ieC9B8Dx3tx4f00W6zIrSx/aJDvZN23LSOQAA7dvfnAoA3p5ZQBJtlijSTDgIHLr2Khdx64Hbgn2NW6pJLcG6BV4pIZhuRd/3VGMsCF5zkcE/jzxdoAZLFHNGY5Y1kQ9VcZB/Cn0UUAFFFFADTGpkWQj51BUH2OM/yFIYkMyzFf3iqVBz0BwT/IUUUAPpnlR+d53lr5u3bvxzjrjPpRRQA5lV0KOoZWGCCMgimQwpAhWMEAnPLE8/j+f1yepoooAkpGVWGGUEZBwR3HIoooAWiiigD//Z\",\"uuid\":\"75f7daef7f8444cfbdd1420d494cf42d\"}}'); +INSERT INTO `tbl_log` VALUES (9910, NULL, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-07 13:04:24', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9911, 63, '用户', '43.152.142.105/1.9.116.218', '2026-10-07 13:04:42', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9912, NULL, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-07 13:04:42', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"mnfu\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"75f7daef7f8444cfbdd1420d494cf42d\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (9913, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-07 13:04:42', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (9914, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-10-07 13:04:42', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9915, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-07 13:04:42', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9916, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-07 13:04:42', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9917, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-07 13:04:42', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9918, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-07 13:04:43', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9919, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-07 13:05:41', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9920, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-07 13:05:41', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9921, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-07 13:05:41', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"客户\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":12430066.000000,\"allNeedPay\":0.000000,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Stock Status客户\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":90,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"2\",\"supplier\":\"TNB\",\"taxNum\":\"\",\"taxRate\":10.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"客户\"}]}}'); +INSERT INTO `tbl_log` VALUES (9922, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-07 13:05:54', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"会员\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9923, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-07 13:05:55', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"供应商\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":0.000000,\"allNeedPay\":116500257.436400,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Excel初始化默认供应商\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":89,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"1\",\"supplier\":\"浙江瑞银电子有限公司\",\"taxNum\":\"\",\"taxRate\":0.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"供应商\"}]}}'); +INSERT INTO `tbl_log` VALUES (9924, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-07 13:06:03', 0, 'AccountController.getList(..)', NULL, 'GET /apis/account/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"serialNo\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (9925, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-07 13:06:04', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (9926, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-07 13:06:04', 0, 'PersonController.getList(..)', NULL, 'GET /apis/person/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":11,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":44,\"name\":\"Neezam\",\"type\":\"CEO\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":31,\"name\":\"Arif\",\"sort\":\"1\",\"tenantId\":63,\"type\":\"商务主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":36,\"name\":\"张伟\",\"sort\":\"10\",\"tenantId\":63,\"type\":\"资产管理员\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":32,\"name\":\"Hafiz\",\"sort\":\"2\",\"tenantId\":63,\"type\":\"技术主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":37,\"name\":\"陈晨\",\"sort\":\"20\",\"tenantId\":63,\"type\":\"设备工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":33,\"name\":\"Aziman\",\"sort\":\"3\",\"tenantId\":63,\"type\":\"软件工程师\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":38,\"name\":\"王磊\",\"sort\":\"30\",\"tenantId\":63,\"type\":\"生产主管\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":34,\"name\":\"Lim\",\"sort\":\"4\",\"tenantId\":63,\"type\":\"IT\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":39,\"name\":\"赵敏\",\"sort\":\"40\",\"tenantId\":63,\"type\":\"IT运维工程师\"}]}}'); +INSERT INTO `tbl_log` VALUES (9927, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-07 13:06:04', 0, 'SysDictDataController.dictType(..)', NULL, 'GET /apis/dict/data/type/person_type', '{\"dictType\":\"person_type\"}', '{\"msg\":\"操作成功\",\"code\":0,\"data\":[{\"createBy\":\"admin\",\"createTime\":1789644159000,\"dictCode\":13,\"dictLabel\":\"采购员\",\"dictSort\":3,\"dictType\":\"person_type\",\"dictValue\":\"采购员\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724265000,\"dictCode\":14,\"dictLabel\":\"CEO\",\"dictSort\":4,\"dictType\":\"person_type\",\"dictValue\":\"CEO\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"},{\"createBy\":\"admin\",\"createTime\":1789724275000,\"dictCode\":15,\"dictLabel\":\"IT\",\"dictSort\":5,\"dictType\":\"person_type\",\"dictValue\":\"IT\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}]}'); +INSERT INTO `tbl_log` VALUES (9928, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-10-07 13:06:11', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9929, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-07 13:06:11', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9930, 63, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-07 13:06:12', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9931, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-07 13:06:12', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9932, 63, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-07 13:06:12', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9933, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-07 13:06:12', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9934, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-07 13:06:12', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9935, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-07 13:06:12', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-07\\\",\\\"endTime\\\":\\\"2026-10-07\\\",\\\"createTimeRange\\\":[\\\"2026-07-06T16:00:00.000Z\\\",\\\"2026-10-06T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9936, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-07 13:06:12', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9937, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-10-07 13:06:13', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (9938, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-07 13:06:13', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9939, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-07 13:06:13', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9940, 63, '接口日志', '43.152.142.68/1.9.116.218', '2026-10-07 13:06:13', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9941, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-07 13:06:13', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9942, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-07 13:06:13', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9943, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-10-07 13:06:13', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (9944, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-07 13:06:13', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9945, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-07 13:06:13', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-07\\\",\\\"endTime\\\":\\\"2026-10-07\\\",\\\"createTimeRange\\\":[\\\"2026-07-06T16:00:00.000Z\\\",\\\"2026-10-06T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":32,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9946, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-07 13:06:13', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9947, 63, '接口日志', '43.152.142.33/1.9.116.218', '2026-10-07 13:06:28', 0, 'DeliveryPlanController.getDetail(..)', NULL, 'GET /apis/deliveryPlan/detail', '{\"id\":7}', '{\"code\":200,\"data\":{\"rows\":[{\"barCode\":\"1PH-WS79\",\"deleteFlag\":\"0\",\"depotId\":25,\"id\":6,\"materialExtendId\":123,\"materialId\":703,\"materialName\":\"1PH WS79\",\"model\":\"1PH WS79\",\"planId\":7,\"planQuantity\":10000.000000,\"shippedQuantity\":0.000000,\"sourceItemId\":1525,\"standard\":\"1PH WS79\",\"unit\":\"件\"}],\"info\":{\"createTime\":1789720385000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"id\":7,\"planNumber\":\"JH00000001741\",\"saleOrderNumber\":\"XSDD00000001726\",\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"}}}'); +INSERT INTO `tbl_log` VALUES (9948, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-07 13:06:36', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9949, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-10-07 13:07:34', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (9950, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-07 13:07:34', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9951, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-07 13:07:34', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9952, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-07 13:07:34', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9953, 63, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-07 13:07:34', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9954, 63, '接口日志', '43.152.142.31/1.9.116.218', '2026-10-07 13:07:34', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9955, 63, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-07 13:07:34', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"零售退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-07\\\",\\\"endTime\\\":\\\"2026-10-07\\\",\\\"createTimeRange\\\":[\\\"2026-07-06T16:00:00.000Z\\\",\\\"2026-10-06T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9956, 63, '接口日志', '43.152.157.88/1.9.116.218', '2026-10-07 13:07:36', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (9957, 63, '接口日志', '43.152.142.83/1.9.116.218', '2026-10-07 13:07:36', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9958, 63, '接口日志', '43.174.32.33/1.9.116.218', '2026-10-07 13:07:36', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"零售\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-07\\\",\\\"endTime\\\":\\\"2026-10-07\\\",\\\"createTimeRange\\\":[\\\"2026-07-06T16:00:00.000Z\\\",\\\"2026-10-06T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9959, 63, '接口日志', '43.152.142.110/1.9.116.218', '2026-10-07 13:07:36', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9960, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-07 13:07:36', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (9961, 63, '接口日志', '43.174.51.49/1.9.116.218', '2026-10-07 13:07:36', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (9962, 63, '接口日志', '43.152.142.62/1.9.116.218', '2026-10-07 13:07:36', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (9963, 63, '接口日志', '43.152.142.118/1.9.116.218', '2026-10-07 13:07:36', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9964, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-07 13:07:38', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9965, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-07 13:07:40', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9966, 63, '接口日志', '43.174.53.48/1.9.116.218', '2026-10-07 13:07:40', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9967, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-07 13:07:43', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9968, NULL, '接口日志', '43.174.32.19/1.9.116.218', '2026-10-07 13:08:13', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (9969, NULL, '接口日志', '43.152.142.142/1.9.116.218', '2026-10-07 13:08:13', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9970, NULL, '接口日志', '43.174.54.27/1.9.116.218', '2026-10-07 13:08:13', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9971, NULL, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-07 13:08:14', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9972, NULL, '接口日志', '43.152.142.108/1.9.116.218', '2026-10-07 13:08:14', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3xZVeZ4wCSgGT2ye316H8RTI5WknnX5NkZC8ZznGTn8COlNE7TSuIDGyxuEcknOf4h07ZB79xx1rgfEXxg8L+GvFV34e1G3u47mAo8k5hBhLGNXXlSXzjaB8vXHQc0AeisocYOeoPBI6HPao5JEikQsceYwTlgADyRwT+HHPT048x8O/Gnw94k16PSdO+02c9yWMR1NQqPIdoWMMsjYJ+YgYAOAo5Iz6Ubp/KQrbSGQttaPK5TgnkgkDgcc9x0zQA5LoSxPJFFI4BG3gDeCAcjJHHP6GlikkkkLbNsXzLhwQwYMRn3B6jp+OePLtR+P8A4T0vVruxZb7UEhk2rc2MKGJ/UAtINwHTcOD24wT2fhzxRpPjTQItU0cG9ihkCutxHskilChiORt3jcOQduTw1AG3cwTTXELRzGJUDZKk5JOAOOh43dehx7gypPHIwCtyRuAIx3wfyPUdu9EBBiBCuuSSVkPIOeR/+rj04rj/AAT8RdD8fx6hHpdjfRx2pRZ1uoUAbzd+OFZsjKnP1+uADqBJdR3hH2WR4XOCyyqQp9cHBAI647g8dylzcRyWUxMz20ZAUXHAwScfUYPBzjFc34d+JOkeJfF+peGbW01CG/04SmZp0QR/u5BGwBVyTyw7dK3vEFhd6hol/Bp1yba/ltJobeYNt2O6EK24AsuGwcrzx3oBl8CVZIxuVowhDM33i3GDxx/ez+FNhY+ZLGzs5VsgmMrgHnGejY56e2eeT4lH+z5p13b3Z1XXtTk1mR2b7XhSsrnBLlCCzDLDJ388k7au/s/+Ldc8Q6frFjq1496li0TxXFxIzzfvN+VLHO5fkyM8jJHIxgA9gaWRbhYzGNrHhgWPGOc/Lgc46nn9KmpoD72LMpQ42gLgj1yc8/pTqAI/NAdlKONpAztJBz3GP19PpzXz9JFb3n7W6iWOKeLckihlDLuWxDKw9wQCD2IBr3ee1gN1LMgZbsxgqUVd2Bn7pYYyc4PtjpxWRb+CdA/4SoeK30hYdaHCzC4kOF8vyxlAdgOzjABHv3oA8e+JdnbWn7Qvg/7Nbww+a9i8nloF3t9pZcnHU4VRn0A9K+gJLZGgljjAjLksSmV+b1O0g/rzWLqvgnw7rfiGy1/UdP8AO1Ox8v7PP50i7Njl1+UMFOGJPINbEIuBdTb44lhJypX7xPTn14xzxjGOetAHzRo2lnwyjat4E+KGiWsV60iS2+oyrG6ornZuR1O44DHcUQ8/KPnxXoXwK8Y3vijStZt722s47y2uUuJruCBYjdGYsSzogA3/ACY3dxjIyCT0N78IfAWqXc103h20VnAANvNLEgYfKR5cbKoxgdMZOc88nqPD+hWHh3SIrDT7K1tIlwWS2j2qzYAySclmwACzEk4yaALvKNLHBHtbiTLfcYknIHoeOeO+ea+cP2e/Eei6Hfa9Dq2p29g9xFC0LXMwijYIXDDLELu+dcDrjOO9fRdmHewVftLscsBLxuwGOAcj72ODkdc1yF38LfCGqeKZdbutHtZ7ky750zIqGThgxQNtYkbdwIw2STySCAeXfCLU7W9+OninULZzLaXaXckMoUjKvdRlSQcEZyO2eee9e8yXsFlaX00d0si2i7pFnnCrEAMsS56DGeWJHBGRg45nQ/CXhrwlr11f6To7xalJCyzmPcBIrHcREm7YOY920AccD7pWuvvLS01fS7izuVE1ndwtFIoYgPG64IyDnkHqDQB83eOvizqPjnWD4c8O30WlaFOpglubqRYfPXqzO55RMAgKvzMCQQSwQevfDfw74S0Lw/cab4a1e01G5ZF+33tpco8juQ20naTsA+baO2D1OSarfBj4ciRwmhozqUVkOoTjbk/7+ckHgHrgdOtdJ4U8G+G/Ccdy/h2w+yrd7fO/fSPu2bsAh2OCNzcce/SgDYhuo3WIRzxyrtXe7OAw3D5SVA6n8KtVnyMwlHnRXEkQZt7KOFKuGT5RyevUenzD00KACkKqxUlQSpyCR0PT+poooAWofslt9p+0fZ4vP/567Bu6Y69enFFFAE1FFFABTBDEszTCJBKwwzhRuI+v4CiigBzKroVZQysMEEZBFCqqIFVQqqMAAYAFFFACeXH83yL8zBjx1Ixg/XgflTqKKACiiigD/9k=\",\"uuid\":\"8c59a024d5c0455fa16e653a9ab0698a\"}}'); +INSERT INTO `tbl_log` VALUES (9973, NULL, '接口日志', '43.146.68.49/16.216.88.112', '2026-10-08 01:19:07', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9974, NULL, '接口日志', '43.146.64.21/16.216.88.112', '2026-10-08 01:19:08', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9975, NULL, '接口日志', '43.168.154.68/16.216.88.68', '2026-10-08 01:19:16', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3uQSFk2MAufm9fXj+R+vUYpjQeY8W558xYO4PtEh9CB16A9MfqKkYOrlwSy7f9WAMk+x/x9unOeKsfidpWo+NrjwclnqFlrMbOifbYAsblRuJUqxJBQFxkAMB1GRQB2ccrFhHKm2XbuIUMy4zj72AM+3WkjedpXV4VSMZAbfkt6cY6Y/XPUcni9M+Keg6h47l8IB5V1CFpITMYtsMsydUUk5B4fqMZXAJ4LUbr4r6CfFmq6PDb6rdHS4LiS+aO2DQhYEcvyXBHOUyy4LbQD0NAHfoHto5ZbmcOirncEIIUZOSASCfoB9OgAJIbW1Xa7Y2llEzsWx6knLADIyT0r5m8LfGBNL8e63qWrXeu3Og3azrZ2KTbvIDSqyYQyBU2oCvynjOBxX0XomqW+qabaaj5hCXdvFPb+fsWXypEQjIXoSx5xxnp2oAvWjgBkaZpHZmcBsfKNx+UEddvQ8nHtxVhmCqWOcAZ4GT+VZl3fnTdJu72JLzVmtVO+3tRG8zEH5gq/KCwB+7nJwMAk88n4a+MHhbxDpOo37Xf2BdP3SXEd4AjiHOFdQpbfklVwDnccY5XIB3ENwzSSJKFA8wrE4YYk6kgDOcjBB+mfYQi4ig1MWsl7K80ql0hZBgDnoQo6YPU1zPgfx9pvj17qbTNI1KK3t3ybu6gjSPzNoG0EOxZ9p7DgYzjIz19u0bxmSGbzY3YlWDbh7gH0zn/PFAFJJBZbdsk1zGYtyEzB3m5J+UHrgdx2I64GLNqxkSOaNmMMy+ZiQ5ZScEAe3X1x0HHFfHPgXTvA1/9v8A+E01m+03Z5f2T7IhbzM7t+cRv0wnp1PXt9OfDXQND8P+GFXwxfS3+j3zm8S5mlDOXIVSuAi4A2cg8g5BHoAdgjb2LK6snQY7EEg8/pj2NPqBcJdMkSLl/wB5MSxBHGAQMYP3cdR0qegCOeVYYHkeWOIAffk+6D2zyO9fP3xKjk8F/HPw94uaVra1vmia5nOJFXZiKdVUDdjyivOM5Y454Hud6RBqdtOlvJNNIpiUJ8oxnJy2QOm4gHPTjHOcHxL4P8O+MTaHWrO61N4Fc26+a0JTDIHGAU5JAzn0OMcUAfPujfbdHPhb4jaltiN94guGvb47X8yFjGGPlDOORdfdUEcdPkrtv2e9Nu9U1nxF4y1BpHnuHNuJQUCyyOwlmJUDIIPlkYwPmPXt6Fd+AdCn8IW/hebT7d9O02Tz4o3uZUj8xjJ1YNuB+fcRk/exwMGtvwx4a0fwtaPp2h2wsofM864t/MeUF2UDcGc5/hABHHB4z0APEfh/q+n6N8fvGNxqd/Z2Vu730fm3U6xKT9pUgAtwTx09AfSvoCCaO6trZluYri3miUiUbWjuQy5yuD6DPHGD37YGv/DTwf4o1RtT1jRY57xkCNKs0kRcDpu2MATjjJ5wAOgFbNjYpZ6Np+nQ2qC0hgjh2LIwMYVQF27vmOMdSQwxnk0AWpo44v3q+WtwcrG8jdWOcKT1Iyen5V8ofEGFvEfjfxTqfg+1mn0uCFH1OeybdA5ypduFXK713fxbijSZx936k1fTP7Y0WWwvkEsE8JS5gikeIy8fdDqwKgng9cg4PGaytC8FaBoOnXmn6No6WVrdlvtAlHnefjKbJBISShHIGcYLdM8gEHwzv9H1HwJpLaA6rZW9skElvgFopgoLhiFXLZYljtAYncMZ56a8vIdLsL3UL6fZaW8bTyNsJ8uNVy3AyT0J9ea5vQ/Bfh3wNdTT+H9Olilu9kUkKXcjAjJ5Ku5BxhiDjI+bkAnHQXE9ncQXVveRKbYqElW4QFJFcYwVPVTnByMdR2NAHnb/APCmf+EcHl/8In9l+zD73l/aPL28/wDTbzNuf9vd71yH7ObyxWGvSXdzcw6eZoY4QzlYWlKuXwegbaI8kEH7vqK7xPhF4A1aB77/AIRyKGacuxVLqYIr5OcKkgXbnoFwMdMV2dnpsGmW0dtZadaW1lGhf7Laoqr5uQ3yjAHUHnjk9qBF3Yu4KzSMxUfNkjO0+3APP4/QVLVW3mf9zE1sIMo5EZdcqFIAGB7HPHA6VaoGRiGMFzsB3sHbPOWGAD+g/KpKKKAI1giSeSZUAkkADsP4sZx/OpKKKAGrGiyO6jDPjd747/X39h6UJHHHu2Iq7mLNtGMn1PvRRQA6iiigAqNIIo7ZbdUHkqgQIeRtxjHPXiiigAMEZKHYBsYuuOMMc5P6n86koooAKKKKAP/Z\",\"uuid\":\"55c62f91979f43b0885405fdbd2a24b3\"}}'); +INSERT INTO `tbl_log` VALUES (9976, NULL, '接口日志', '43.146.65.48/16.216.88.173', '2026-10-08 01:19:16', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9977, NULL, '接口日志', '183.131.72.172/60.177.158.246', '2026-10-08 05:34:13', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9978, NULL, '接口日志', '183.131.211.145/60.177.158.246', '2026-10-08 05:34:14', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9979, NULL, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-09 06:39:45', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (9980, NULL, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 06:39:45', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (9981, NULL, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-09 06:39:48', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (9982, NULL, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 06:39:48', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3dy8sMylJEZCQvlnBbHIKk4Hp14zkHIojlk3zTSSQfZNqtE6nnGMksemPTHalll8uaPzJEjjYhQS4BdjnC4I/Hg54rjPGfxa8M+CNQTT76Se6veDLb2ahniUgkFskKCePlznBBxgjIB2ryw+XHMZPkLLsZWOCW+UdOoOfp3pj3LC7+zxReYwj3sd2Amc7c+x2sOM4x05rjPCfxX8K+N7g2Ni88V+Nzx2V5GqSShAGyhBKE+27Pyk4wM12xnUlVT/WOhdFYFcgY68cdR70AKkbCQyszbmRVKBsqpGen59fYVE10ReeUPJMageY5lAZGP3QVx3yMc+vtnze4+OHhXTtT1HSdQfVYLrTXlSRzAjLcSRsVMaFT3OcEhBgckV0/hHxtpfj7RZL3TY7q3hFybYrdxKC5VUdhgMwwVbHXPXjigDo2u4o5EjlzHJI5SNTyXx3AGePr070pdpoY5bdgQRvAPAcEHAzjI5IPTtSTZEbQxBUZ+FZjgEnOcYOcjk9s+vUjy/U/jt4Nh1caTJ9smiSdY5722QNAPVkYMHYK2OQvIBIzkZAPVI1dVId953E5xjgk4H4DA/CoLoPIHRLlY2AUgA4OcnGT6E4xx1HORkV8+/CO5g1b46+KNRsXWWCZbu4gkYMuUa5j+bBwQSjHg+vNe0+Ocf8IF4pPlFT/ZNyN5x8w8p/x4yevrQBswteSLGZESIjlucknOMbecAjn73B9e5J9pd4FKbVLZlMb/dwcjk4yDjBGO/UY5+cvhX8TPDvgjwFc2epzXzX0mqNKkFlEGcRmJBvJbCEZUjGSehx3Hsvh7xzpfjjSxqGg3Eyukn2ee2nXDw72ABdVbjIBKsCR94ZzkAA61P36ByJUBx8jfKVIPt/iQQPQ8y1XzLbQMWZrghh/CA23Iz06kcngc8DrybFAFeKZpPPcfMEYqIwuHBHqScc8EdOCK+Wb+bX9N+OGvyprdhomqGaZ4brVysipE3zIoYpIEbyioHTj5M87T9TSSwW0rM77N43kbeOMAsSB7rknoB7Gud8U+CPDPim8tDrGkwXErPzL80cjKqPhd6kHGWztzzjOPl4APDtP0PVZ/if4d1G48ceF7vU3uowP7Gl/ePGhG8HyoQmShYfORuHy8gYr6XgQJCg2lTjJBAByeSTjjOc5x3rmND+HHhXwxO91oekQWl6cbLhy07pgEfKZCSoIYg7SMg9emOol8zYPK2bty535xtyM/jjOPegD51+Hmk2Oq/tEeKGvYFlayuby6t9wyElW6UBsHgkBjjPQnIwQCPoVEiiaSW2giJml3TtHgFmACbj/eICqOecLjsBWHpfgXQdE8Ral4g0y0MOqagH86VpXdcuwdvlLY5YA/hgYFbFtFMLKNUaGE4JAjhKjrkfKTxx1HXnqKAKviW1vrnwvrEWmtIdRks5hZlHCMkpjKptbjacnrnjPWvFPgJrXhPTPDd+NV1HTbHVFvS4e5mWF2iKJtwzEbgGV+ATjJzgNz77M0ITZOY9kp8va5GHJ/h5659K4q4+FvgXUNdj1WbRreW6lc3J2swjlwRglFIjK8jI2/N1OctkA8t+C01jc/GzxPPpYjGnyW909qI49iiI3MZTC4G0bccYGK9j8cW6R+AvFISCIRSaXdSsc8mTym524x2Bznr271HoHgLw34X1a41HTbOC01K8WRDJCzqNjMHKrGzFQAQOg4AA6Vv3VkmqaXPp9/Fvt7iOS3nRm5kjYFTyuMEg546ZoA8I+BeveF9M8H6ta6vqel2Vw94XnW6Ijkli8tfL2sSM4YSHAyQT23Al3wWk874n+MtR0dGPh795sSAbEw8+YcRcHhBJjjIGR1OD6JL8IPAEmnnSV0KOIGT7QJFkk87ONvEhJYr6rnAyDjJBrd0TwxYeGbCTTdEha1sDKD5MS8qTguxkY7nJHGckjoPugAA342ZlJdNh3EYznjPB/Ec/jTqoyR27y23nQ+cZUMfmSKATwGwy4H90npwR2zV6gAooooAKTapcOVG4AgHHIB6/yH5UUUAN8qMRrH5abFxtXaMDHTA9sChIkjaRlGDI25uepwB/ICiigAeKOXb5kavsYMu4ZwR3HvT6KKAGyRpKhSRFdD1VhkGnUUUAFRywRThRKgbY4dc9mByDRRQA9lVxhlDDIOCM8g5H60tFFAH/2Q==\",\"uuid\":\"6319c63fd6d6479fa1d46d6a31e9d810\"}}'); +INSERT INTO `tbl_log` VALUES (9983, 63, '用户', '43.152.142.41/1.9.116.218', '2026-10-09 06:40:57', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (9984, NULL, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-09 06:40:57', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"erdb\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"6319c63fd6d6479fa1d46d6a31e9d810\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (9985, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 06:40:57', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (9986, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 06:40:57', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (9987, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 06:40:57', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (9988, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 06:40:57', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (9989, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-09 06:40:57', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (9990, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-09 06:40:57', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (9991, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 06:48:45', 0, 'OrganizationController.getOrganizationTree(..)', NULL, 'GET /apis/organization/getOrganizationTree', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (9992, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 06:48:47', 0, 'UserController.getList(..)', NULL, 'GET /apis/user/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"id\":149,\"isystem\":0,\"leaderFlag\":\"0\",\"leaderFlagStr\":\"否\",\"loginName\":\"admin2\",\"orgAbr\":\"部门1\",\"orgaId\":13,\"orgaUserRelId\":20,\"password\":\"******\",\"roleId\":23,\"roleName\":\"system admin\",\"status\":0,\"userType\":\"普通用户\",\"username\":\"admin2\"},{\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"isystem\":1,\"leaderFlag\":\"0\",\"leaderFlagStr\":\"否\",\"loginName\":\"admin\",\"orgAbr\":\"测试部门\",\"orgaId\":12,\"orgaUserRelId\":11,\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"roleId\":21,\"roleName\":\"admin\",\"status\":0,\"tenantId\":63,\"userBlngOrgaDsplSeq\":\"15\",\"userType\":\"系统管理员\",\"username\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (9993, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 06:48:47', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (9994, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 06:48:54', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (9995, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 06:48:54', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (9996, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 06:48:54', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9997, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 06:48:54', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (9998, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-10-09 06:48:54', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (9999, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 06:49:08', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10000, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-09 06:49:08', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"orderNumber\\\":\\\"\\\",\\\"sourceNumber\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10001, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-09 06:49:09', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (10002, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-09 06:49:25', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10003, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-10-09 06:49:25', 0, 'ProductionRequisitionController.getList(..)', NULL, 'GET /apis/productionRequisition/list', '{\"search\":\"{\\\"requisitionNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1790242827000,\"createTime\":1789720317000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":9,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"1\"},{\"createTime\":1789719809000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":8,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (10004, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-09 06:49:25', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10005, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 06:49:37', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10006, NULL, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-09 08:17:23', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10007, NULL, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-09 08:17:23', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10008, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:17:24', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (10009, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-09 08:17:24', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (10010, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-09 08:17:24', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10011, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-10-09 08:17:24', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10012, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-09 08:17:24', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10013, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-09 08:18:04', 0, 'RoleController.getList(..)', NULL, 'GET /apis/role/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"description\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":7,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":24,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"system admin\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"admin\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"rrr\",\"enabled\":true,\"id\":17,\"name\":\"销售代表\",\"tenantId\":63,\"type\":\"个人数据\"},{\"deleteFlag\":\"0\",\"description\":\"ddd\",\"enabled\":true,\"id\":16,\"name\":\"销售经理\",\"tenantId\":63,\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"description\":\"\",\"enabled\":true,\"id\":10,\"name\":\"租户\",\"type\":\"全部数据\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":4,\"name\":\"管理员\",\"type\":\"全部数据\"}]}}'); +INSERT INTO `tbl_log` VALUES (10014, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 08:18:17', 0, 'AccountController.listWithBalance(..)', NULL, 'GET /apis/account/listWithBalance', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63,\"thisMonthAmount\":\"0\"},{\"currentAmount\":4375618.532800,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63,\"thisMonthAmount\":\"0\"}]}}'); +INSERT INTO `tbl_log` VALUES (10015, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-09 08:18:17', 0, 'AccountController.getStatistics(..)', NULL, 'GET /apis/account/getStatistics', '{\"name\":\"\",\"serialNo\":\"\"}', '{\"code\":200,\"data\":{\"allCurrentAmount\":\"4375818.53\",\"allMonthAmount\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10016, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:18:22', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10017, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:18:22', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10018, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 08:18:22', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10019, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 08:18:22', 0, 'DepotItemController.buyIn(..)', NULL, 'GET /apis/depotItem/buyIn', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-09\",\"endTime\":\"2026-10-09\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":2,\"realityPriceTotal\":100000.700000,\"rows\":[{\"materialModel\":\"MD-4G111(VF)\",\"materialStandard\":\"MD-4G111(VF) packing\",\"materialUnit\":\"件\",\"outSum\":0.000000,\"barCode\":\"1001\",\"materialName\":\"MD-4G111(VF) 包装\",\"inOutSumPrice\":100000.000000,\"outSumPrice\":0.000000,\"inSum\":10000.000000,\"inSumPrice\":100000.000000},{\"otherField1\":\"\",\"materialMfrs\":\"浙江瑞银电子有限公司\",\"materialModel\":\"MD-4G111(VF)\",\"materialStandard\":\"MD-4G111(VF)\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"materialUnit\":\"件\",\"outSum\":0.000000,\"barCode\":\"C.4.T.0.00654\",\"materialName\":\"MD-4G111(VF) 4G模块\",\"inOutSumPrice\":0.700000,\"outSumPrice\":0.000000,\"inSum\":7.000000,\"inSumPrice\":0.700000}]}}'); +INSERT INTO `tbl_log` VALUES (10020, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:18:23', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (10021, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:18:30', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10022, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:18:30', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (10023, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-09 08:18:30', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10024, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-10-09 08:18:30', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10025, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:18:30', 0, 'DepotItemController.saleOut(..)', NULL, 'GET /apis/depotItem/saleOut', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-09\",\"endTime\":\"2026-10-09\",\"materialParam\":\"\",\"mpList\":\"扩展1,扩展2,扩展3\"}', '{\"code\":200,\"data\":{\"total\":1,\"realityPriceTotal\":2940000.000000,\"rows\":[{\"outInSumPrice\":2940000.000000,\"otherField1\":\"\",\"materialMfrs\":\"浙江瑞银电子有限公司\",\"materialModel\":\"1PH WS79\",\"materialStandard\":\"1PH WS79\",\"materialColor\":\"\",\"materialBrand\":\"\",\"otherField3\":\"\",\"otherField2\":\"\",\"materialUnit\":\"件\",\"outSum\":40000.000000,\"barCode\":\"1PH-WS79\",\"materialName\":\"1PH WS79\",\"outSumPrice\":2940000.000000,\"inSum\":0.000000,\"inSumPrice\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (10026, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:18:32', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10027, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:18:32', 0, 'SupplierController.findBySelectOrgan(..)', NULL, 'POST /apis/supplier/findBySelect_organ', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司[供应商]\",\"id\":89},{\"supplier\":\"TNB[客户]\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10028, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:18:32', 0, 'DepotHeadController.findInOutDetail(..)', NULL, 'GET /apis/depotHead/findInOutDetail', '{\"currentPage\":1,\"pageSize\":10,\"number\":\"\",\"materialParam\":\"\",\"beginTime\":\"2026-07-09\",\"endTime\":\"2026-10-09\",\"type\":\"入库\",\"remark\":\"\",\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"total\":35,\"operNumberTotal\":102117.000000,\"rows\":[{\"allPrice\":100000.000000,\"barCode\":\"1001\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mname\":\"MD-4G111(VF) 包装\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MD-4G111(VF) packing\",\"taxLastMoney\":100000.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":10.000000},{\"allPrice\":595000.000000,\"barCode\":\"1PH-WS79\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"1PH WS79\",\"model\":\"1PH WS79\",\"newRemark\":\"\",\"newType\":\"总部入库入库\",\"number\":\"SM2609180001\",\"operNumber\":10000.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"1PH WS79\",\"taxLastMoney\":595000.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":59.500000},{\"allPrice\":0.700000,\"barCode\":\"C.4.T.0.00654\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MD-4G111(VF) 4G模块\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operNumber\":7.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MD-4G111(VF)\",\"taxLastMoney\":0.700000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":183.600000,\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MT-3NSXL(VC)RF通讯模块\",\"model\":\"MT-3NSXL(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060003\",\"newType\":\"总部入库入库\",\"number\":\"SM2608070007\",\"operNumber\":1836.000000,\"operTime\":\"2026-08-07\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MT-3NSXL(VC)\",\"taxLastMoney\":183.600000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":2077650.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060001\",\"newType\":\"总部入库入库\",\"number\":\"SM2608070002\",\"operNumber\":9500.000000,\"operTime\":\"2026-08-07\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":2077650.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":91854.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060001\",\"newType\":\"总部入库入库\",\"number\":\"SM2608060005\",\"operNumber\":420.000000,\"operTime\":\"2026-08-06\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":91854.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":816.000000,\"barCode\":\"C.4.T.0.00547\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MT-3NSXL(VC)RF通讯模块\",\"model\":\"MT-3NSXL(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060003\",\"newType\":\"总部入库入库\",\"number\":\"SM2608060004\",\"operNumber\":8160.000000,\"operTime\":\"2026-08-06\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MT-3NSXL(VC)\",\"taxLastMoney\":816.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":91854.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607240005\",\"operNumber\":420.000000,\"operTime\":\"2026-07-24\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":91854.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":551124.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607230004\",\"operNumber\":2520.000000,\"operTime\":\"2026-07-23\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":551124.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":1285956.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607230002\",\"operNumber\":5880.000000,\"operTime\":\"2026-07-23\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":1285956.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000}],\"allPriceTotal\":15130522.700000}}'); +INSERT INTO `tbl_log` VALUES (10029, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-10-09 08:18:32', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10030, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:18:32', 0, 'OrganizationController.getAllOrganizationTreeByUser(..)', NULL, 'GET /apis/organization/getAllOrganizationTreeByUser', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (10031, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-09 08:18:32', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10032, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 08:18:54', 0, 'DepotHeadController.findInOutDetail(..)', NULL, 'GET /apis/depotHead/findInOutDetail', '{\"currentPage\":1,\"pageSize\":10,\"number\":\"\",\"materialParam\":\"\",\"beginTime\":\"2026-07-09\",\"endTime\":\"2026-10-09\",\"type\":\"入库\",\"remark\":\"\",\"column\":\"operNumber\",\"order\":\"asc\"}', '{\"code\":200,\"data\":{\"total\":35,\"operNumberTotal\":102117.000000,\"rows\":[{\"allPrice\":0.700000,\"barCode\":\"C.4.T.0.00654\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"MD-4G111(VF) 4G模块\",\"model\":\"MD-4G111(VF)\",\"newRemark\":\"\",\"newType\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operNumber\":7.000000,\"operTime\":\"2026-09-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"MD-4G111(VF)\",\"taxLastMoney\":0.700000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":0.100000},{\"allPrice\":102060.000000,\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"三相四线多功能电能表T46(VC)\",\"model\":\"DTSD1226-T46(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607160020\",\"newType\":\"总部入库入库\",\"number\":\"SM2607180014\",\"operNumber\":210.000000,\"operTime\":\"2026-07-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DTSD1226-T46(VC)\",\"taxLastMoney\":102060.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":486.000000},{\"allPrice\":102060.000000,\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"三相四线多功能电能表T46(VC)\",\"model\":\"DTSD1226-T46(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607160020\",\"newType\":\"总部入库入库\",\"number\":\"SM2607180009\",\"operNumber\":210.000000,\"operTime\":\"2026-07-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DTSD1226-T46(VC)\",\"taxLastMoney\":102060.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":486.000000},{\"allPrice\":102060.000000,\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"三相四线多功能电能表T46(VC)\",\"model\":\"DTSD1226-T46(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607160020\",\"newType\":\"总部入库入库\",\"number\":\"SM2607180010\",\"operNumber\":210.000000,\"operTime\":\"2026-07-18\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DTSD1226-T46(VC)\",\"taxLastMoney\":102060.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":486.000000},{\"allPrice\":56862.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607130001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607130030\",\"operNumber\":260.000000,\"operTime\":\"2026-07-13\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":56862.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":161935.200000,\"barCode\":\"C.3.C.2.00025\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"三相四线多功能电能表CXVI(VA)-新\",\"model\":\"DTSD1226-CXVI(VA)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607160019\",\"newType\":\"总部入库入库\",\"number\":\"SM2607170005\",\"operNumber\":336.000000,\"operTime\":\"2026-07-17\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DTSD1226-CXVI(VA)\",\"taxLastMoney\":161935.200000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":481.950000},{\"allPrice\":91854.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607220001\",\"newType\":\"总部入库入库\",\"number\":\"SM2607240005\",\"operNumber\":420.000000,\"operTime\":\"2026-07-24\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":91854.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":91854.000000,\"barCode\":\"C.1.T.0.00032\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"单相多功能电能表T49(VB)\",\"model\":\"DDSD1226-T49(VB)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2608060001\",\"newType\":\"总部入库入库\",\"number\":\"SM2608060005\",\"operNumber\":420.000000,\"operTime\":\"2026-08-06\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DDSD1226-T49(VB)\",\"taxLastMoney\":91854.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":218.700000},{\"allPrice\":291600.000000,\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"三相四线多功能电能表T46(VC)\",\"model\":\"DTSD1226-T46(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607160020\",\"newType\":\"总部入库入库\",\"number\":\"SM2607200002\",\"operNumber\":600.000000,\"operTime\":\"2026-07-20\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DTSD1226-T46(VC)\",\"taxLastMoney\":291600.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":486.000000},{\"allPrice\":306180.000000,\"barCode\":\"C.3.T.0.00030\",\"brand\":\"\",\"color\":\"\",\"dname\":\"半成品仓库\",\"mUnit\":\"件\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mname\":\"三相四线多功能电能表T46(VC)\",\"model\":\"DTSD1226-T46(VC)\",\"newRemark\":\"SMT出库单详情初始化;已审核;价税合计计入应付 来源单据:SH2607130003\",\"newType\":\"总部入库入库\",\"number\":\"SM2607130031\",\"operNumber\":630.000000,\"operTime\":\"2026-07-13\",\"sname\":\"浙江瑞银电子有限公司\",\"standard\":\"DTSD1226-T46(VC)\",\"taxLastMoney\":306180.000000,\"taxMoney\":0.000000,\"taxRate\":0.000000,\"unitPrice\":486.000000}],\"allPriceTotal\":15130522.700000}}'); +INSERT INTO `tbl_log` VALUES (10033, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 08:19:08', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-10-09\"}}'); +INSERT INTO `tbl_log` VALUES (10034, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-09 08:19:16', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10035, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-09 08:19:16', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (10036, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 08:19:23', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10037, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:19:23', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10038, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-09 08:19:29', 0, 'AssetInventoryController.details(..)', NULL, 'GET /apis/assetInventory/details', '{\"inventoryId\":5,\"keyword\":\"\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 钢网房\",\"bookQuantity\":1.000000,\"createTime\":1790003280000,\"id\":14,\"imageUrls\":[],\"inventoryId\":5,\"inventoryStatus\":\"PENDING\",\"model\":\"SAWA SC-A1000\",\"targetCode\":\"FA-TOOL-2025-008\",\"targetId\":8,\"targetName\":\"全自动钢网清洗机\",\"targetType\":\"ASSET\",\"updateTime\":1790003280000},{\"actualQuantity\":0.000000,\"bookDepartment\":\"信息技术部\",\"bookLocation\":\"数据中心 A03-U18\",\"bookQuantity\":1.000000,\"createTime\":1790003280000,\"id\":15,\"imageUrls\":[],\"inventoryId\":5,\"inventoryStatus\":\"PENDING\",\"model\":\"PowerEdge R760\",\"targetCode\":\"IT-MES-DB-01\",\"targetId\":8,\"targetName\":\"MES 数据库主服务器\",\"targetType\":\"DEVICE\",\"updateTime\":1790003280000}]}}'); +INSERT INTO `tbl_log` VALUES (10039, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-09 08:19:34', 0, 'AssetInventoryController.details(..)', NULL, 'GET /apis/assetInventory/details', '{\"inventoryId\":6,\"keyword\":\"\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"actualDepartment\":\"品质部\",\"actualLocation\":\"一车间 AOI 检测区\",\"actualQuantity\":1.000000,\"bookDepartment\":\"品质部\",\"bookLocation\":\"一车间 AOI 检测区\",\"bookQuantity\":1.000000,\"createTime\":1790003320000,\"id\":16,\"imageUrls\":[],\"inventoryId\":6,\"inventoryStatus\":\"NORMAL\",\"inventoryTime\":1790003830000,\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"model\":\"Zenith 2\",\"remark\":\"111\",\"targetCode\":\"QC-AOI-01\",\"targetId\":5,\"targetName\":\"在线 3D AOI\",\"targetType\":\"DEVICE\",\"updateTime\":1790003830000}]}}'); +INSERT INTO `tbl_log` VALUES (10040, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:19:50', 0, 'AssetInventoryController.details(..)', NULL, 'GET /apis/assetInventory/details', '{\"inventoryId\":1,\"keyword\":\"\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线 A 工位\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":2,\"imageGroupId\":\"01f08d9e8b2c43cfa2fb59a67ac6a954\",\"imageUrls\":[\"/apis/systemConfig/static/asset-inventory/图片1_1789973064775.png\"],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"Panasonic NPM-D3A\",\"targetCode\":\"SMT-L01-MOUNTER-A\",\"targetId\":2,\"targetName\":\"高速模块贴片机 A\",\"targetType\":\"DEVICE\",\"updateTime\":1789987464000},{\"actualQuantity\":0.000000,\"bookDepartment\":\"SMT生产部\",\"bookLocation\":\"一车间 SMT-01 线 B 工位\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":3,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"PENDING\",\"model\":\"Panasonic NPM-W2S\",\"targetCode\":\"SMT-L01-MOUNTER-B\",\"targetId\":3,\"targetName\":\"多功能贴片机 B\",\"targetType\":\"DEVICE\",\"updateTime\":1789722750000},{\"actualLocation\":\"一车间 印刷检测区-A区\",\"actualQuantity\":1.000000,\"bookDepartment\":\"品质部\",\"bookLocation\":\"一车间 印刷检测区\",\"bookQuantity\":1.000000,\"createTime\":1789722750000,\"id\":1,\"imageUrls\":[],\"inventoryId\":1,\"inventoryStatus\":\"INVENTORIED\",\"inventoryTime\":1789986951000,\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"model\":\"KY8030-3\",\"remark\":\"111\",\"targetCode\":\"QC-SPI-01\",\"targetId\":6,\"targetName\":\"在线 3D SPI\",\"targetType\":\"DEVICE\",\"updateTime\":1789986959000}]}}'); +INSERT INTO `tbl_log` VALUES (10041, NULL, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-09 08:19:50', 0, 'SystemConfigController.view(..)', NULL, 'GET /apis/systemConfig/static/asset-inventory/%E5%9B%BE%E7%89%871_1789973064775.png', '{}', NULL); +INSERT INTO `tbl_log` VALUES (10042, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:20:07', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10043, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 08:20:07', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"付款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":947751.900000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":104,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":947751.900000,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"billTime\":1785700800000,\"billTimeStr\":\"2026-08-03 00:00:00\",\"changeAmount\":954860.058400,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":100,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260415-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":954860.058400,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":236946.640000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":92,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260414-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":236946.640000,\"type\":\"付款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10044, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-10-09 08:20:07', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10045, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-09 08:20:07', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (10046, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:20:07', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10047, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-09 08:20:07', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10048, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 08:20:07', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10049, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-09 08:20:07', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"vendor\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (10050, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-09 08:20:10', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (10051, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-09 08:20:11', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"orderNumber\\\":\\\"\\\",\\\"sourceNumber\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10052, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-09 08:20:11', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10053, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 08:20:15', 0, 'ProductionOrderController.getOrderDetail(..)', NULL, 'GET /apis/productionOrder/getOrderDetail', '{\"id\":11}', '{\"code\":200,\"data\":{\"logs\":[{\"createTime\":1789719619000,\"id\":53,\"operationDesc\":\"创建生产工单,数量:10000\",\"operationType\":\"创建工单\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1789719775000,\"id\":54,\"operationDesc\":\"工单审批通过并下达\",\"operationType\":\"审批下达\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1789719809000,\"id\":55,\"operationDesc\":\"生成领料单[LL20260918122329111]\",\"operationType\":\"生成领料单\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1789720311000,\"id\":56,\"operationDesc\":\"领料单[LL20260918122329111]被驳回:11\",\"operationType\":\"领料驳回\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1789720317000,\"id\":57,\"operationDesc\":\"生成领料单[LL20260918123156921]\",\"operationType\":\"生成领料单\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"},{\"createTime\":1790242827000,\"id\":58,\"operationDesc\":\"领料单[LL20260918123156921]确认发料,出库单号[LL20260924134027104]\",\"operationType\":\"领料发料\",\"operator\":63,\"orderId\":11,\"orderNumber\":\"GD20260918122018493\"}],\"order\":{\"sourceId\":1719,\"orderNumber\":\"GD20260918122018493\",\"outputQuantity\":10000.000000,\"releaseTime\":1789719775000,\"auditBy\":\"admin\",\"productMaterialExtendId\":123,\"outputBarCode\":\"1PH-WS79\",\"outputMaterialId\":703,\"finishedQuantity\":0.000000,\"remark\":\"\",\"orderQuantity\":10000.000000,\"deleteFlag\":\"0\",\"productMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"id\":11,\"planEndDate\":\"2026-09-25\",\"bomId\":18,\"creator\":63,\"releaseBy\":\"admin\",\"priority\":\"0\",\"sourceNumber\":\"XSDD00000001726\",\"auditTime\":1789719775000,\"createTime\":\"2026-09-18 12:20:19\",\"sourceType\":\"销售订单\",\"outputMaterialExtendId\":123,\"planStartDate\":\"2026-09-18\",\"status\":\"1\"}}}'); +INSERT INTO `tbl_log` VALUES (10054, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:20:47', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10055, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:20:47', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10056, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-09 08:20:47', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10057, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 08:20:47', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10058, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-10-09 08:20:47', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10059, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-09 08:20:47', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"采购订单\\\",\\\"linkApply\\\":\\\"\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720113000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGDD00000001739\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1723,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001738\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGDD00000001739\",\"operTime\":1789734505000,\"operTimeStr\":\"2026-09-18 16:28:25\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":100000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717459000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGDD00000001720\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1716,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001719\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGDD00000001720\",\"operTime\":1789717452000,\"operTimeStr\":\"2026-09-18 11:44:12\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":0.700000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10060, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:20:47', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10061, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:20:49', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10062, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-09 08:20:49', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10063, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:20:49', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10064, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-09 08:20:49', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10065, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-09 08:20:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10066, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-09 08:20:49', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10067, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:20:49', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720142000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGRK00000001740\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1724,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001739\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGRK00000001740\",\"operTime\":1789734542000,\"operTimeStr\":\"2026-09-18 16:29:02\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":100000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717476000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGRK00000001721\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1717,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001720\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGRK00000001721\",\"operTime\":1789717474000,\"operTimeStr\":\"2026-09-18 11:44:34\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":0.700000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10068, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:20:49', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10069, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:20:50', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10070, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 08:20:50', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10071, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-09 08:20:50', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10072, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:20:50', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10073, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-09 08:20:50', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10074, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-09 08:20:50', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"采购退货\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10075, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-09 08:20:50', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10076, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-10-09 08:20:52', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10077, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-09 08:20:52', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10078, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-09 08:20:52', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10079, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-09 08:20:52', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10080, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 08:20:52', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10081, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 08:20:57', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (10082, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 08:20:57', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10083, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-10-09 08:20:57', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10084, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:20:57', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10085, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-09 08:20:57', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":32,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10086, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-09 08:20:57', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10087, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-09 08:20:57', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10088, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-10-09 08:20:57', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10089, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-09 08:20:57', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10090, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-09 08:21:00', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-INV_2134-66\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1784145600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (10091, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:21:00', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1662}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10092, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-09 08:21:00', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10093, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:21:00', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSCK-INV_2134-66\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10094, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:21:00', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1662,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":1000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":1000.000000,\"anotherDepotId\":\"\",\"basicNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"model\":\"1PH WS79\",\"id\":1467,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":7350.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":73500.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":73500.000000,\"finishPurchaseNumber\":0,\"operNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"weight\":0,\"taxMoney\":7350.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (10095, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:21:00', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10096, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-09 08:21:03', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":32,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10097, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-09 08:21:14', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSCK-DO_2158-85\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1785873600000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售出库\",\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\"}}'); +INSERT INTO `tbl_log` VALUES (10098, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 08:21:14', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10099, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-09 08:21:14', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1669}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10100, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-09 08:21:14', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10101, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 08:21:14', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1669,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":1000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":1000.000000,\"anotherDepotId\":\"\",\"basicNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"model\":\"1PH WS79\",\"id\":1474,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":7350.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":73500.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":73500.000000,\"finishPurchaseNumber\":0,\"operNumber\":1000.000000,\"taxLastMoney\":80850.000000,\"weight\":0,\"taxMoney\":7350.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (10102, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-09 08:21:14', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSCK-DO_2158-85\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10103, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-10-09 08:21:19', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1767211200000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":242550.000000,\"defaultNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售订单其它\",\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1582,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"operTime\":1767211200000,\"operTimeStr\":\"2026-01-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status客户PO:blom tukar po date\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (10104, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-09 08:21:19', 0, 'DepotHeadController.getDetailByNumber(..)', NULL, 'GET /apis/depotHead/getDetailByNumber', '{\"number\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountNumber\":\"\",\"address\":\"\",\"backAmount\":0.000000,\"bankName\":\"\",\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"contacts\":\"\",\"createTime\":1767211200000,\"creator\":63,\"creatorName\":\"admin\",\"debt\":242550.000000,\"defaultNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"depotHeadType\":\"销售订单其它\",\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"hasBackFlag\":false,\"id\":1582,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"operTime\":1767211200000,\"operTimeStr\":\"2026-01-01 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"phoneNum\":\"\",\"remark\":\"Stock Status客户PO:blom tukar po date\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"taxNum\":\"\",\"telephone\":\"\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\"}}'); +INSERT INTO `tbl_log` VALUES (10105, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-09 08:21:19', 0, 'AccountHeadController.getFinancialBillNoByBillId(..)', NULL, 'GET /apis/accountHead/getFinancialBillNoByBillId', '{\"billId\":1582}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10106, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-10-09 08:21:19', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10107, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-09 08:21:19', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_print_flag\"}', '{\"code\":200,\"data\":{\"id\":4,\"platformKey\":\"bill_print_flag\",\"platformKeyInfo\":\"三联打印启用标记\",\"platformValue\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10108, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-09 08:21:19', 0, 'DepotItemController.getDetailList(..)', NULL, 'GET /apis/depotItem/getDetailList', '{\"headerId\":1582,\"mpList\":\"扩展1,扩展2,扩展3\",\"linkType\":\"basic\",\"isReadOnly\":\"1\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"standard\":\"1PH WS79\",\"materialExtendId\":123,\"finishPurchaseNumber\":0,\"anotherDepotName\":\"\",\"color\":\"\",\"preNumber\":3000.000000,\"depotId\":26,\"remark\":\"\",\"purchaseDecimal\":59.500000,\"imgName\":\"\",\"operNumber\":3000.000000,\"anotherDepotId\":\"\",\"basicNumber\":3000.000000,\"taxLastMoney\":242550.000000,\"model\":\"1PH WS79\",\"id\":1387,\"enableSerialNumber\":\"0\",\"stock\":52400.000000,\"brand\":\"\",\"finishNumber\":0,\"expirationDate\":\"\",\"enableBatchNumber\":\"0\",\"unitPrice\":73.500000,\"op\":1,\"otherField1\":\"\",\"depotName\":\"成品仓库\",\"mfrs\":\"浙江瑞银电子有限公司\",\"weight\":0,\"otherField3\":\"\",\"otherField2\":\"\",\"taxMoney\":22050.000000,\"imgSmall\":\"\",\"barCode\":\"1PH-WS79\",\"taxUnitPrice\":80.850000,\"taxRate\":10.000000,\"unit\":\"件\",\"allPrice\":220500.000000,\"name\":\"1PH WS79\",\"imgLarge\":\"\",\"position\":\"\"},{\"allPrice\":220500.000000,\"finishPurchaseNumber\":0,\"operNumber\":3000.000000,\"taxLastMoney\":242550.000000,\"weight\":0,\"taxMoney\":22050.000000,\"finishNumber\":0}]}}'); +INSERT INTO `tbl_log` VALUES (10109, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-10-09 08:21:19', 0, 'DepotHeadController.getBillListByLinkNumber(..)', NULL, 'GET /apis/depotHead/getBillListByLinkNumber', '{\"number\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10110, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 08:21:23', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":32,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10111, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:21:29', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10112, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:21:29', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10113, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-09 08:21:29', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10114, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-09 08:21:29', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10115, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-09 08:21:29', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10116, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-09 08:21:29', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10117, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:21:29', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10118, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 08:21:29', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10119, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:21:29', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (10120, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:21:34', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10121, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:21:59', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10122, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-09 08:21:59', 0, 'DepotHeadController.getStatementAccount(..)', NULL, 'GET /apis/depotHead/getStatementAccount', '{\"currentPage\":1,\"pageSize\":10,\"beginTime\":\"2026-07-09\",\"endTime\":\"2026-10-09\",\"hasDebt\":1,\"supplierType\":\"供应商\"}', '{\"code\":200,\"data\":{\"total\":1,\"firstMoney\":103509293.334800,\"lastMoney\":116500257.436400,\"rows\":[{\"allNeed\":116500257.436400,\"backMoney\":2139558.598400,\"beginNeed\":0.000000,\"contacts\":\"\",\"debtMoney\":15130522.700000,\"email\":\"\",\"id\":89,\"phoneNum\":\"\",\"preBackMoney\":10686582.135200,\"preDebtMoney\":114195875.470000,\"preNeed\":103509293.334800,\"preReturnDebtMoney\":0.000000,\"returnDebtMoney\":0.000000,\"supplier\":\"浙江瑞银电子有限公司\",\"telephone\":\"\"}]}}'); +INSERT INTO `tbl_log` VALUES (10123, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:22:34', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10124, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:22:34', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (10125, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:22:34', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10126, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-10-09 08:22:34', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10127, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-09 08:22:34', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10128, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-09 08:22:34', 0, 'DepotHeadController.debtList(..)', NULL, 'GET /apis/depotHead/debtList', '{\"search\":\"{\\\"organId\\\":89,\\\"materialParam\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购\\\",\\\"status\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\"}\",\"currentPage\":1,\"pageSize\":10001}', '{\"code\":200,\"data\":{\"total\":35,\"rows\":[{\"fileName\":\"\",\"totalPrice\":100000.000000,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 16:29:02\",\"deleteFlag\":\"0\",\"number\":\"CGRK00000001740\",\"payType\":\"现付\",\"accountIdList\":\"\",\"needDebt\":100000.000000,\"id\":1724,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"defaultNumber\":\"CGRK00000001740\",\"linkNumber\":\"CGDD00000001739\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"accountId\":17,\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":100000.000000,\"otherMoney\":0.000000,\"createTime\":1789720142000,\"deposit\":0,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"采购\",\"debt\":100000.000000,\"status\":\"1\"},{\"totalPrice\":595000.000000,\"discountLastMoney\":595000.000000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 16:06:03\",\"deleteFlag\":\"0\",\"number\":\"SM2609180001\",\"payType\":\"现付\",\"needDebt\":595000.000000,\"id\":1721,\"finishDebt\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"1PH WS79\",\"defaultNumber\":\"SM2609180001\",\"userName\":\"admin\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":595000.000000,\"otherMoney\":0.000000,\"createTime\":1789718802000,\"deposit\":0.000000,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"总部入库\",\"debt\":595000.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":0.700000,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-09-18 11:44:34\",\"deleteFlag\":\"0\",\"number\":\"CGRK00000001721\",\"payType\":\"现付\",\"accountIdList\":\"\",\"needDebt\":0.700000,\"id\":1717,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"operTime\":\"2026-09-18\",\"creator\":63,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"defaultNumber\":\"CGRK00000001721\",\"linkNumber\":\"CGDD00000001720\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"accountId\":17,\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":0.700000,\"otherMoney\":0.000000,\"createTime\":1789717476000,\"deposit\":0,\"organId\":89,\"purchaseStatus\":\"0\",\"subType\":\"采购\",\"debt\":0.700000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":183.600000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-07 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608070007\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":183.600000,\"id\":1423,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-07\",\"creator\":63,\"materialsList\":\"MT-3NSXL(VC)\",\"defaultNumber\":\"SM2608070007\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":183.600000,\"otherMoney\":0.000000,\"createTime\":1786046400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":183.600000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":2077650.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-07 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608070002\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":2077650.000000,\"id\":1422,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-07\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2608070002\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":2077650.000000,\"otherMoney\":0.000000,\"createTime\":1786046400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":2077650.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":91854.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-06 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608060005\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":91854.000000,\"id\":1421,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-06\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2608060005\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":91854.000000,\"otherMoney\":0.000000,\"createTime\":1785960000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":91854.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":816.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-08-06 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2608060004\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":816.000000,\"id\":1420,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-08-06\",\"creator\":63,\"materialsList\":\"MT-3NSXL(VC)\",\"defaultNumber\":\"SM2608060004\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":816.000000,\"otherMoney\":0.000000,\"createTime\":1785960000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":816.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":91854.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-24 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607240005\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":91854.000000,\"id\":1419,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-24\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607240005\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":91854.000000,\"otherMoney\":0.000000,\"createTime\":1784836800000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":91854.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":551124.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607230004\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":551124.000000,\"id\":1418,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607230004\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":551124.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":551124.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":1285956.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-23 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607230002\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":1285956.000000,\"id\":1417,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-23\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607230002\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":1285956.000000,\"otherMoney\":0.000000,\"createTime\":1784750400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":1285956.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":1020.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-22 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607220006\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":1020.000000,\"id\":1416,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-22\",\"creator\":63,\"materialsList\":\"MT-3NSXL(VC)\",\"defaultNumber\":\"SM2607220006\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":1020.000000,\"otherMoney\":0.000000,\"createTime\":1784664000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":1020.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":275562.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-22 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607220004\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":275562.000000,\"id\":1415,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-22\",\"creator\":63,\"materialsList\":\"DDSD1226-T49(VB)\",\"defaultNumber\":\"SM2607220004\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":275562.000000,\"otherMoney\":0.000000,\"createTime\":1784664000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":275562.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":291600.000000,\"discount\":100.000000,\"discountLastMoney\":291600.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-20 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607200002\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":291600.000000,\"id\":1414,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-20\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607200002\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":291600.000000,\"otherMoney\":0.000000,\"createTime\":1784491200000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":291600.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":510300.000000,\"discount\":100.000000,\"discountLastMoney\":510300.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-18 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607180007\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":510300.000000,\"id\":1409,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-18\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607180007\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":510300.000000,\"otherMoney\":0.000000,\"createTime\":1784318400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":510300.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":102060.000000,\"discount\":100.000000,\"discountLastMoney\":102060.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-18 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607180014\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":102060.000000,\"id\":1413,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-18\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607180014\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":102060.000000,\"otherMoney\":0.000000,\"createTime\":1784318400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":102060.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":1020600.000000,\"discount\":100.000000,\"discountLastMoney\":1020600.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-18 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607180013\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":1020600.000000,\"id\":1412,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-18\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607180013\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":1020600.000000,\"otherMoney\":0.000000,\"createTime\":1784318400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":1020600.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":102060.000000,\"discount\":100.000000,\"discountLastMoney\":102060.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-18 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607180010\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":102060.000000,\"id\":1411,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-18\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607180010\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":102060.000000,\"otherMoney\":0.000000,\"createTime\":1784318400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":102060.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":102060.000000,\"discount\":100.000000,\"discountLastMoney\":102060.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-18 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607180009\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":102060.000000,\"id\":1410,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-18\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607180009\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":102060.000000,\"otherMoney\":0.000000,\"createTime\":1784318400000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":102060.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":161935.200000,\"discount\":100.000000,\"discountLastMoney\":161935.200000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-17 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607170005\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":161935.200000,\"id\":1408,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-17\",\"creator\":63,\"materialsList\":\"DTSD1226-CXVI(VA)\",\"defaultNumber\":\"SM2607170005\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":161935.200000,\"otherMoney\":0.000000,\"createTime\":1784232000000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":161935.200000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":385.200000,\"discount\":100.000000,\"discountLastMoney\":385.200000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-16 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607160006\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":385.200000,\"id\":1407,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-16\",\"creator\":63,\"materialsList\":\"MT-3NSXL(VC)\",\"defaultNumber\":\"SM2607160006\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":385.200000,\"otherMoney\":0.000000,\"createTime\":1784145600000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":385.200000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":1457416.800000,\"discount\":100.000000,\"discountLastMoney\":1457416.800000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-16 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607160005\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":1457416.800000,\"id\":1406,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-16\",\"creator\":63,\"materialsList\":\"DTSD1226-CXVI(VA)\",\"defaultNumber\":\"SM2607160005\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":1457416.800000,\"otherMoney\":0.000000,\"createTime\":1784145600000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":1457416.800000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":408240.000000,\"discount\":100.000000,\"discountLastMoney\":408240.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-15 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607150003\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":408240.000000,\"id\":1405,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-15\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607150003\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":408240.000000,\"otherMoney\":0.000000,\"createTime\":1784059200000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":408240.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":1619352.000000,\"discount\":100.000000,\"discountLastMoney\":1619352.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-14 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607140007\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":1619352.000000,\"id\":1401,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-14\",\"creator\":63,\"materialsList\":\"DTSD1226-CXVI(VA)\",\"defaultNumber\":\"SM2607140007\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":1619352.000000,\"otherMoney\":0.000000,\"createTime\":1783972800000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":1619352.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":816480.000000,\"discount\":100.000000,\"discountLastMoney\":816480.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-14 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607140010\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":816480.000000,\"id\":1402,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-14\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607140010\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":816480.000000,\"otherMoney\":0.000000,\"createTime\":1783972800000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":816480.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":1224720.000000,\"discount\":100.000000,\"discountLastMoney\":1224720.000000,\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"source\":\"0\",\"changeAmount\":0.000000,\"type\":\"入库\",\"operTimeStr\":\"2026-07-14 00:00:00\",\"deleteFlag\":\"0\",\"number\":\"SM2607140011\",\"linkApply\":\"\",\"payType\":\"记账\",\"accountIdList\":\"\",\"needDebt\":1224720.000000,\"id\":1403,\"finishDebt\":0.000000,\"lastDeposit\":0.000000,\"salesMan\":\"\",\"operTime\":\"2026-07-14\",\"creator\":63,\"materialsList\":\"DTSD1226-T46(VC)\",\"defaultNumber\":\"SM2607140011\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"discountMoney\":0.000000,\"userName\":\"admin\",\"accountMoneyList\":\"\",\"organName\":\"浙江瑞银电子有限公司\",\"lastDebt\":1224720.000000,\"otherMoney\":0.000000,\"createTime\":1783972800000,\"tenantId\":63,\"deposit\":0.000000,\"organId\":89,\"subType\":\"总部入库\",\"debt\":1224720.000000,\"status\":\"1\"},{\"fileName\":\"\",\"totalPrice\":510.000000,\"discount\":100.000000,\"discountLastMoney\":510.000000,...[已截断]'); +INSERT INTO `tbl_log` VALUES (10129, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-09 08:22:51', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"付款\\\",\\\"organId\\\":89,\\\"creator\\\":\\\"\\\",\\\"handsPersonId\\\":\\\"\\\",\\\"accountId\\\":\\\"\\\",\\\"status\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":947751.900000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":104,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":947751.900000,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"billTime\":1785700800000,\"billTimeStr\":\"2026-08-03 00:00:00\",\"changeAmount\":954860.058400,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":100,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260415-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":954860.058400,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":236946.640000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":92,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260414-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":236946.640000,\"type\":\"付款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10130, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-09 08:23:09', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10131, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-10-09 08:23:23', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10132, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-09 08:23:23', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10133, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-09 08:23:23', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10134, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:23:23', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10135, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:23:23', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10136, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-09 08:23:23', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"总部入库\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":33,\"rows\":[{\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718802000,\"creator\":63,\"debt\":595000.000000,\"defaultNumber\":\"SM2609180001\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discountLastMoney\":595000.000000,\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1721,\"lastDebt\":595000.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79\",\"number\":\"SM2609180001\",\"operTime\":1789733163000,\"operTimeStr\":\"2026-09-18 16:06:03\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"totalPrice\":595000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":183.600000,\"defaultNumber\":\"SM2608070007\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":183.600000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1423,\"lastDebt\":183.600000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1836.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608070007\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":183.600000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1786046400000,\"creator\":63,\"debt\":2077650.000000,\"defaultNumber\":\"SM2608070002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":2077650.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1422,\"lastDebt\":2077650.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":9500.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608070002\",\"operTime\":1786046400000,\"operTimeStr\":\"2026-08-07 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":2077650.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2608060005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1421,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2608060005\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1785960000000,\"creator\":63,\"debt\":816.000000,\"defaultNumber\":\"SM2608060004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":816.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1420,\"lastDebt\":816.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":8160.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2608060004\",\"operTime\":1785960000000,\"operTimeStr\":\"2026-08-06 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":816.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784836800000,\"creator\":63,\"debt\":91854.000000,\"defaultNumber\":\"SM2607240005\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":91854.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1419,\"lastDebt\":91854.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":420.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607240005\",\"operTime\":1784836800000,\"operTimeStr\":\"2026-07-24 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":91854.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":551124.000000,\"defaultNumber\":\"SM2607230004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":551124.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1418,\"lastDebt\":551124.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":2520.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230004\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":551124.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":1285956.000000,\"defaultNumber\":\"SM2607230002\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1285956.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1417,\"lastDebt\":1285956.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":5880.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607230002\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1285956.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":1020.000000,\"defaultNumber\":\"SM2607220006\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":1020.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1416,\"lastDebt\":1020.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":10200.000000,\"materialsList\":\"MT-3NSXL(VC)\",\"number\":\"SM2607220006\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":1020.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"总部入库\",\"changeAmount\":0.000000,\"createTime\":1784664000000,\"creator\":63,\"debt\":275562.000000,\"defaultNumber\":\"SM2607220004\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":275562.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1415,\"lastDebt\":275562.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":1260.000000,\"materialsList\":\"DDSD1226-T49(VB)\",\"number\":\"SM2607220004\",\"operTime\":1784664000000,\"operTimeStr\":\"2026-07-22 00:00:00\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"SMT出库单详情初始化;已审核;价税合计计入应付\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"总部入库\",\"tenantId\":63,\"totalPrice\":275562.000000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10137, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-09 08:23:23', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10138, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:23:24', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10139, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-09 08:23:24', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10140, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:23:24', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10141, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-09 08:23:24', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售,采购退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":167,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10142, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-09 08:23:24', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10143, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 08:23:24', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10144, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 08:23:24', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10145, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:23:26', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10146, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-09 08:23:26', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"其它\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10147, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:23:26', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10148, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-09 08:23:26', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10149, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 08:23:26', 0, 'DepotHeadController.waitBillCount(..)', NULL, 'GET /apis/depotHead/waitBillCount', '{\"search\":\"{\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购,销售退货\\\",\\\"status\\\":\\\"1,3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":47,\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10150, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-10-09 08:23:26', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10151, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-09 08:23:26', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10152, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:23:53', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10153, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 08:23:53', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"其它\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10154, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-09 08:24:00', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10155, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-09 08:24:23', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10156, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:24:28', 0, 'SupplierController.findBySelectRetail(..)', NULL, 'POST /apis/supplier/findBySelect_retail', '{\"jsonObject\":{\"limit\":1}}', '[]'); +INSERT INTO `tbl_log` VALUES (10157, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-09 08:24:28', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10158, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-09 08:24:28', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10159, 63, '接口日志', '43.152.142.57/1.9.116.218', '2026-10-09 08:24:28', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"零售\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10160, 63, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-09 08:24:28', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10161, 63, '接口日志', '43.152.142.86/1.9.116.218', '2026-10-09 08:24:28', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10162, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:24:28', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10163, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-09 08:24:28', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10164, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-09 08:24:57', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10165, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 08:24:57', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10166, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 08:24:57', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":false}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10167, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 08:24:57', 0, 'MaterialController.getListWithStock(..)', NULL, 'GET /apis/material/getListWithStock', '{\"currentPage\":1,\"pageSize\":10,\"position\":\"\",\"materialParam\":\"\",\"zeroStock\":0,\"column\":\"createTime\",\"order\":\"desc\"}', '{\"code\":200,\"data\":{\"currentStockPrice\":107372523.170000000000,\"moveAvgPriceFlag\":false,\"total\":22,\"showStockPrice\":true,\"currentWeight\":0E-12,\"currentStock\":519203.000000,\"rows\":[{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":7223.000000,\"currentStockMovePrice\":2293302.500000000000,\"currentStockPrice\":2293302.500000000000,\"currentUnitPrice\":317.500000,\"currentWeight\":0E-12,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"standard\":\"3PH APEC3-WC\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"成品\",\"color\":\"\",\"currentStock\":52400.000000,\"currentStockMovePrice\":3117800.000000000000,\"currentStockPrice\":3117800.000000000000,\"currentUnitPrice\":59.500000,\"currentWeight\":0E-12,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"1PH-WS79\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"standard\":\"1PH WS79\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":1000.000000,\"currentStockMovePrice\":24300.000000000000,\"currentStockPrice\":24300.000000000000,\"currentUnitPrice\":24.300000,\"currentWeight\":0E-12,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00722\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"standard\":\"MD-RS178(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":14256.000000000000,\"currentStockPrice\":14256.000000000000,\"currentUnitPrice\":142.560000,\"currentWeight\":0E-12,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.0068900002\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"standard\":\"MD-RS114(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":6642.000000000000,\"currentStockPrice\":6642.000000000000,\"currentUnitPrice\":132.840000,\"currentWeight\":0E-12,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00686\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"standard\":\"TC160(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":76970.000000,\"currentStockMovePrice\":7697.000000000000,\"currentStockPrice\":7697.000000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00654\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MD-4G111(VF)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":50.000000,\"currentStockMovePrice\":16200.000000000000,\"currentStockPrice\":16200.000000000000,\"currentUnitPrice\":324.000000,\"currentWeight\":0E-12,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00562\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"standard\":\"MD-4GVIII(VB)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":500.000000,\"currentStockMovePrice\":64800.000000000000,\"currentStockPrice\":64800.000000000000,\"currentUnitPrice\":129.600000,\"currentWeight\":0E-12,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00553\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"standard\":\"MT-P109(VA)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":54656.000000,\"currentStockMovePrice\":5465.600000000000,\"currentStockPrice\":5465.600000000000,\"currentUnitPrice\":0.100000,\"currentWeight\":0E-12,\"id\":696,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00547\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MT-3NSXL(VC)\",\"name\":\"MT-3NSXL(VC)RF通讯模块\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"standard\":\"MT-3NSXL(VC)\",\"unitName\":\"件\"},{\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryName\":\"半成品\",\"color\":\"\",\"currentStock\":100.000000,\"currentStockMovePrice\":100375.200000000000,\"currentStockPrice\":100375.200000000000,\"currentUnitPrice\":1003.752000,\"currentWeight\":0E-12,\"id\":695,\"imgName\":\"\",\"initialStock\":0.000000,\"mBarCode\":\"C.4.T.0.00422\",\"mfrs\":\"浙江瑞银电子有限公司\",\"model\":\"MD-LR63(VB)\",\"name\":\"MD-LR63(VB)\",\"position\":\"\",\"purchaseDecimal\":1003.752000,\"standard\":\"MD-LR63(VB)\",\"unitName\":\"件\"}]}}'); +INSERT INTO `tbl_log` VALUES (10168, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 08:24:57', 0, 'DepotItemController.findDetailByDepotIdsAndMaterialId(..)', NULL, 'GET /apis/depotItem/findDetailByDepotIdsAndMaterialId', '{\"pageSize\":10,\"currentPage\":1,\"depotIds\":\"\",\"number\":\"\",\"beginTime\":\"\",\"endTime\":\"\",\"stockPriceFlag\":true}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10169, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:25:13', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10170, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-09 08:25:13', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10171, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-09 08:25:13', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10172, 63, '接口日志', '43.152.142.141/1.9.116.218', '2026-10-09 08:25:13', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10173, 63, '接口日志', '43.152.142.40/1.9.116.218', '2026-10-09 08:25:13', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-09\\\",\\\"endTime\\\":\\\"2026-10-09\\\",\\\"createTimeRange\\\":[\\\"2026-07-08T16:00:00.000Z\\\",\\\"2026-10-08T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":9,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2111-11\",\"billTime\":1785096000000,\"billTimeStr\":\"2026-07-27 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":93,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2111\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2111-11\",\"sourceTime\":\"2026-06-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10174, 63, '接口日志', '43.152.157.121/1.9.116.218', '2026-10-09 08:25:13', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10175, 63, '接口日志', '43.174.32.13/1.9.116.218', '2026-10-09 08:25:13', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (10176, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-09 08:25:13', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10177, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-09 08:25:13', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10178, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-09 08:25:13', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (10179, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-09 08:25:37', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10180, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-09 08:25:40', 0, 'MaterialCategoryController.findById(..)', NULL, 'GET /apis/materialCategory/findById', '{\"id\":34}', '{\"code\":200,\"data\":{\"name\":\"包装\",\"id\":34,\"serialNo\":\"010\"}}'); +INSERT INTO `tbl_log` VALUES (10181, 63, '接口日志', '43.152.142.43/1.9.116.218', '2026-10-09 08:25:40', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{\"id\":34}', '[{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10182, 63, '接口日志', '43.174.54.50/1.9.116.218', '2026-10-09 08:25:43', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{\"id\":34}', '[{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10183, 63, '接口日志', '43.174.32.18/1.9.116.218', '2026-10-09 08:25:43', 0, 'MaterialCategoryController.findById(..)', NULL, 'GET /apis/materialCategory/findById', '{\"id\":34}', '{\"code\":200,\"data\":{\"name\":\"包装\",\"id\":34,\"serialNo\":\"010\"}}'); +INSERT INTO `tbl_log` VALUES (10184, 63, '接口日志', '43.174.53.17/1.9.116.218', '2026-10-09 08:25:50', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{\"id\":32}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10185, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-09 08:25:50', 0, 'MaterialCategoryController.findById(..)', NULL, 'GET /apis/materialCategory/findById', '{\"id\":32}', '{\"code\":200,\"data\":{\"name\":\"半成品\",\"remark\":\"总部入库条码商品\",\"id\":32,\"sort\":\"1\",\"serialNo\":\"001\"}}'); +INSERT INTO `tbl_log` VALUES (10186, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:25:51', 0, 'MaterialCategoryController.findById(..)', NULL, 'GET /apis/materialCategory/findById', '{\"id\":33}', '{\"code\":200,\"data\":{\"name\":\"成品\",\"remark\":\"Stock Status成品\",\"id\":33,\"sort\":\"2\",\"serialNo\":\"002\"}}'); +INSERT INTO `tbl_log` VALUES (10187, 63, '接口日志', '43.174.52.68/1.9.116.218', '2026-10-09 08:25:51', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{\"id\":33}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32}]'); +INSERT INTO `tbl_log` VALUES (10188, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-09 08:25:52', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{\"id\":34}', '[{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10189, 63, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 08:25:52', 0, 'MaterialCategoryController.findById(..)', NULL, 'GET /apis/materialCategory/findById', '{\"id\":34}', '{\"code\":200,\"data\":{\"name\":\"包装\",\"id\":34,\"serialNo\":\"010\"}}'); +INSERT INTO `tbl_log` VALUES (10190, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-09 08:25:54', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10191, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-09 08:25:54', 0, 'MaterialController.getList(..)', NULL, 'GET /apis/material/list', '{\"search\":\"{\\\"materialParam\\\":\\\"\\\",\\\"standard\\\":\\\"\\\",\\\"model\\\":\\\"\\\",\\\"color\\\":\\\"\\\",\\\"brand\\\":\\\"\\\",\\\"mfrs\\\":\\\"\\\",\\\"otherField1\\\":\\\"\\\",\\\"otherField2\\\":\\\"\\\",\\\"otherField3\\\":\\\"\\\",\\\"weight\\\":\\\"\\\",\\\"expiryNum\\\":\\\"\\\",\\\"position\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":24,\"rows\":[{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"commodityDecimal\":200.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":706,\"imgName\":\"\",\"initialStock\":0,\"lowDecimal\":200.000000,\"mBarCode\":\"1002\",\"materialOther\":\"\",\"mfrs\":\"SMT\",\"mnemonic\":\"MD-4G111(VF) 4G\",\"model\":\"MD-4G111(VF) 4G\",\"name\":\"MD-4G111(VF) 4G\",\"purchaseDecimal\":100.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) 4G\",\"stock\":0,\"unit\":\"只\",\"wholesaleDecimal\":200.000000},{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":34,\"categoryName\":\"包装\",\"commodityDecimal\":10.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":705,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":10.000000,\"mBarCode\":\"1001\",\"materialOther\":\"\",\"mnemonic\":\"MD-4G111(VF) bz\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 包装\",\"purchaseDecimal\":10.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"stock\":0.000000,\"unit\":\"件\",\"wholesaleDecimal\":10.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":340.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":340.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"remark\":\"Excel初始化;条码:3PH-APEC3-WC\",\"standard\":\"3PH APEC3-WC\",\"stock\":7223.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":340.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":73.500000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":73.500000,\"mBarCode\":\"1PH-WS79\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"remark\":\"Excel初始化;条码:1PH-WS79\",\"standard\":\"1PH WS79\",\"stock\":52400.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":73.500000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":24.300000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":24.300000,\"mBarCode\":\"C.4.T.0.00722\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"remark\":\"Excel初始化;条码:C.4.T.0.00722\",\"standard\":\"MD-RS178(VA)\",\"stock\":1000.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":24.300000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":142.560000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":142.560000,\"mBarCode\":\"C.4.T.0.0068900002\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"remark\":\"Excel初始化;条码:C.4.T.0.0068900002\",\"standard\":\"MD-RS114(VB)\",\"stock\":100.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":142.560000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":132.840000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":132.840000,\"mBarCode\":\"C.4.T.0.00686\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"remark\":\"Excel初始化;条码:C.4.T.0.00686\",\"standard\":\"TC160(VA)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":132.840000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":0.100000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":0.100000,\"mBarCode\":\"C.4.T.0.00654\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"remark\":\"Excel初始化;条码:C.4.T.0.00654\",\"standard\":\"MD-4G111(VF)\",\"stock\":76970.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":0.100000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":324.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":324.000000,\"mBarCode\":\"C.4.T.0.00562\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"remark\":\"Excel初始化;条码:C.4.T.0.00562\",\"standard\":\"MD-4GVIII(VB)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":324.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":129.600000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":129.600000,\"mBarCode\":\"C.4.T.0.00553\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"remark\":\"Excel初始化;条码:C.4.T.0.00553\",\"standard\":\"MT-P109(VA)\",\"stock\":500.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":129.600000}]}}'); +INSERT INTO `tbl_log` VALUES (10192, 63, '接口日志', '43.174.53.14/1.9.116.218', '2026-10-09 08:26:41', 0, 'UnitController.getList(..)', NULL, 'GET /apis/unit/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"basicUnit\":\"瓶\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"瓶/(箱=12瓶)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63},{\"basicUnit\":\"盒\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":20,\"name\":\"盒/(箱=8盒)\",\"otherUnit\":\"箱\",\"ratio\":8.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":19,\"name\":\"个/(盒=15个)\",\"otherUnit\":\"盒\",\"ratio\":15.000,\"tenantId\":63},{\"basicUnit\":\"个\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":15,\"name\":\"个/(箱=12个)\",\"otherUnit\":\"箱\",\"ratio\":12.000,\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10193, NULL, '接口日志', '43.152.142.105/1.9.116.218', '2026-10-09 08:26:55', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (10194, NULL, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-09 08:26:55', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10195, NULL, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-09 08:26:55', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10196, NULL, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-09 08:26:56', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3wx/vA4dgeMjPBHPbt17YPAqESSyWUmAwuFUqdqlfnx/DuHTPQ8ip2ZxIgCZU5y2fu+nHp/8AW/D5y1vW9O8OftSz6tq1x9nsYNvmS7Gfbusgo4UEnkgcCgD35pnivGgjKyXTRJK6l3wQGwdqn5VyM4564z61Mttc5dXu/k3MyFEw65JOCSSCACRjHp6V514X+M3hPxR4kg0+FLzT7q4YiM3kaCOZ+iqCGOJCDgZHP3ck7a9LneSIeYq70VWLooyx4yNvqe2PfrxyAMEjo8KoTOjsUeQkZQgegGOoOemCfwqSSVUITcnmuD5aM2NxFfJnh2007xt4j1iX4k+KLyyvrWPEcVzIIWL7zuTLqRGFY/6sL/ESAApFdF8K1l0z40T6H4a1qe98OJ5sk+ZQFdQgwcZwzLJsXen3gCR8hNAH0YZp2jnaNFZ0wVjPDZwCUPOM++cc+3Ik7LcLHLv3TguilR+7ACgqSCe5Jz05x6Zklg810bzZU29kbAPzA8/984+hPrXmOu/HfwTpmo/ZI3v9RMLZM9hErRhgSpUM7Lu4zyAQQwIPoAeoRSxzxiSGRJIz0ZGBB/EUySKR5hIsgAVSFGG+8e5wwBHsR+NYPhfxl4f8eaZNJpF0ZlVFW5gkQpJFvX7rD8xlSRkHBOKPGkif8K810TvOiNptwkj+TvcDy23HaCBnGe4HvigDbuJngaR0t5HxGTuMiqnAJAOTx9cdxnpwrSuZQYSZA0eQMfJ7Hf79O56HHXPmHwFGn23gC/Om3F5dwDU5CzT2yxOD5cXRVd8jGD1z1GOBn1Rh50TKCVBypPIOM4OOhHsfxoAjtM/ZI8lycfx5yPbJAJx0yRk9TU9QW6okkiDe0ox5kjx7S/pyAA2OnHSp6AIw0vmsGiXy8gKyvk9OSQQMc8cE9e1fPkttZ/8ADWflzQQfZ42Eu10GxStkHDYPAIYBgexGa9/nkXG1vMQhwVCEbnAwTgdSOxHXr7VgDwJoZ8Xr4nmsY5dWMW2S5Z5Ms3liLOzdswUyMbaAPG/iPYpZ/tFeFXRVH2iXT5CRyzYn2ZYnknCAZOeAK9/tcm7mEhfegGFdRwCTkqck7WI6E5G36Vi6r4M8N+INds9b1TSTNqtmI/KLTsDGquWUlVfaRuLHkHPI56VtWsX2aSO3LK5SMkMy4YZbkDtt6cDpheuRQB81eCn8PeM/GmvXHxQuzHeoD9ntr68e3ih/eMXjBZgy7CQFTdwC3Bxka3w7vILD43aj4d8K3Fxd+ErgTiSLzXkijHlgtIpBx/rFWNXOcqQMkkGvVdW+GPg7xLrNxfavp8F1qG7MjQyvC20g7Q4Rxk4/iwCcD0rW8NeDtA8FxXUeiWi2kV06tIC5ckgYA3NliOeASQCTjGTkAseK/tZ8I6ylg0qXz2M62zRMVZZPLbaQ38JzjByOcV8vfDbUfENlYXiaD4z8O+H98y+bHqexJJflO0h2ibKjDDG7g54G4bvrB4/LCwqsLQuRGInwoVcHIGBzwOn15x05HVfhV4Q1vVJL3UNAtpJXdmeZJ5Imk3FmJZYyoLbm6nJI6ngUAef/AAV0OfSPGPiC8bxHot7bLAFu4tMlbyRK7ho2GEWIjAkA2k7d2MDkV6n4/RJfh/4jG7Dx6XcuMHkfunH5EZH507SfBuhaFps+naHZW1jC23eY03yMysXHmOxJcfNwG6AkDg8acllBq2jS21/Gs0V9bmK4Ctjejg5UMvbDEAg/j3oA8q/Z383/AIV1fGErkavIWBXJYeVFkDkYPua9bjE2YZGJkLjD4BRQMEg7Tkg9B+PPTjG8N+FNG8OWMtnolk1lafafO8mQyMRKPlZwzMThlCjg4x25IrYtjJFC0f2UxxwjZEokDFwM4x+GOp659MkASDUIp7trdM7gHPPX5W2nj0z0PfnpirdQOnmBD5LKZMCQh9rKACRyDzzxwe5qegBksSTRmORcqffGPQg9j70rxrIoVxkAhvxByP1FFFAChFDlwo3EAFsckDOB+p/OgqCQSASDkZHQ0UUAI0aNIjkfMmcH69R9Pb2HpTqKKAEZVcYZQRkHBHcciloooAjihjgDCNAoZi7Y7knJNPVFQYRQoyTgDHJOSfzoooAakaR7tgwGYsRnjJ6/T/HJ70+iigAooooA/9k=\",\"uuid\":\"b1bf45b929624d5e8badea90e264fd33\"}}'); +INSERT INTO `tbl_log` VALUES (10197, NULL, '接口日志', '43.152.142.139/1.9.116.218', '2026-10-09 08:26:56', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (10198, NULL, '接口日志', '125.94.248.228/125.121.53.131', '2026-10-12 10:46:05', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10199, NULL, '接口日志', '222.79.117.16/125.121.53.131', '2026-10-12 10:46:06', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10200, NULL, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-13 05:06:18', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10201, NULL, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-13 05:06:18', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10202, NULL, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-13 05:06:22', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (10203, NULL, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-13 05:06:22', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD33zY/N8revmbd2zPOPXHpUcccolk8xiyB90Z388jkEADgds5qG7s0ljdijSvvDqN+GXG3IQ9vu+3J6jqPmPVoIvFHxk1jSPG+vXen6da3Ny1rHNIIlC7soqFxsj3IA+4jD7QM5YGgD6hEdyIZFMyu5U7CF24P154z04OO+ahElyliSWSeYsEBj428hTk4OSDkk4HToK+ZvDcJ8P8Axn0rSfAuu3F3p91NC9yguEZWiG4yLIRiOQiPewwMruwPnWvpyczJZXEsMDfaBudY4thaUr0HzEDLAAckdeo6gALG4nuYmknhMJ3DbGQcgbQeT35J6dsZwcgSiYSCJ4NssbsQXVhgDB59+QB+NcD4V+K3hPVtQuNFijvNHuLRWLw6miw7Qikyc7yBtCEsDg9TzhiJfC/xO0nxhr11Y+HNHv7gxHNxfyxJFAEGQrFslvmx8qlc9eAAcAHZxG4f5XkyxQh2QKPKbggbfm5IbuSPlHrUk0T+aJ1LuY0O2IMVDN+ePzz2xjnMYWZbkqLgM5hP31OMg/KwAwD1+bB/u9K+YPg38QNG8B23iCbVmlY3P2fyoYELSSbTIG29F43gncy8dMnigD6pZgqljnAGeBk/lVGD7Q8scySyNAzuCmAABlzvyckg/KBggd+nA5nwR8StE8c/a00p7gT2wLtaXSok5XPDKAxVl525zkEDP3ga0vG7O3w78TF02Z0q5wCcn/Ut1xxnOehNAGvNdxCMXEcdxPsG5VhVvnBOOOgPr9ORUlzcPAPljRiRhQ8gTe2eFHvjP6e+PnT4TfFHw54D8C3VpqjXc15LqbyLbWsO5hGYkG8liq4yhGM56cY5r2vwd410HxxYS6rpUzhof3c0FwFWS35JBIBIAYDOQSDt9VIAB00b+ZEkm1l3KDtYYIz2I9adUUcqFhFuYuB/GuC2DgnoM8+nqPUVLQBSQT3DzYlkiaKUrGxTh1wDyD1GcjIwcDg9SfnaSfTPEvxw1TTviLcmz0uyM0dlZzXEkNshXaqYJI2K0a78gqGYL6hT9EXiLCqFLeFg0u4NIciOQ8KwGO7EZxjrn1NY/iHwJ4X8Zy293ruji4nhQxo5d4nC5+6SjDcAc4zkckjqcgHh9jdWHhn446PY+ALozadePAl/aWl1Jc2+TuV/mGN4SNvMySwVi3YED6Tkk8tQ2xmyyrhRk8kDP0Gcn2rl9D8A6D4PuHufDWkw200+yOeRpHkfy9wJCs7NgdcgYzweqit/UZIvsskEnmbZVKOYpGQoCD8xdfmQcH5h069s0AfOPxaX/hKvia0Pg20ubnVrfT5E1M2fXKhldG2gZYIdhO5g25UAyMH0n4J3mhXvwvt7LT4I5bi3dv7QtTsaQysxIdshQQQAVJzgKFyShrodA+Hnhvw5dXEmj6Kth5q+XJMZjLI6jOVG8ttQg84Kk4GRwKNN+Hfg7RfEq6jpujG11Bt82+KaVYx8wyNm7ZjJBC4wMDgYFAHSyxTXUB8i9CJKwYOigkR4GQpz1PJ3c9a+avgFr+jaDrWryarf2Vk0kCBJLranyDcWCucc58v5R97rj5ePpRV86WExpLHbjdIduY8vnoykA85J9+/auTh+D/gGCzubVPDkBjuNu8vLI7jacja5YsnvtIz0ORQB5h4Xa31b9pvUbrw7MtxpJWaS7eFgscqGIK+RwHUzsvTOThuetev+OjL/AMK98TJCMLFpdyh80E7h5Wchs88Ejnv9ObXh3wfofg+3lg8PabFZpPIHny7uz4GB8zEnjkgdOT0yTWre2drq2mXFlcoJrO7haKVQxAeN1wRkHPIPUGgDxj9nuzsJ/A+qm7063lE1+8EkskIbehjjXy2yOV+duOR8zZxnnN/ZnTc3iU7mGxrQ4B4bicYPtzn8BXrujaN4e8E2jaPpUS6dDcytMF89nwxQAuTITj7oAHI4+tR+D/AmieDjdSaXpsdpLcBUdkuJZS6qOM7zjOS3QDtQB0kreVmZmkKAY2Im7v1wBmpaZJH5ihd7Lhg2VODwQcfQ4wfan0AFFFFABSbVLBsDcAQDjkD/ACBRRQAKqoioihVUYAAwAKYsESHIQffLj2YjBI9O/T1PqaKKAHOiyIyOoZGGGVhkEehoRQiKgyQowNxJP4k8miigB1IqqowoAGScAdzyaKKAFooooAKKKKAP/9k=\",\"uuid\":\"f979851ba62847c989d28480b992d399\"}}'); +INSERT INTO `tbl_log` VALUES (10204, 63, '用户', '43.152.142.132/1.9.116.218', '2026-10-13 05:08:07', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (10205, NULL, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-13 05:08:07', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"8xbh\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"f979851ba62847c989d28480b992d399\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (10206, 63, '接口日志', '43.152.142.132/1.9.116.218', '2026-10-13 05:08:07', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (10207, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-13 05:08:07', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (10208, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-13 05:08:07', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (10209, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-13 05:08:07', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10210, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-13 05:08:07', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10211, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-13 05:08:07', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10212, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-13 05:08:24', 0, 'MaterialPropertyController.getList(..)', NULL, 'GET /apis/materialProperty/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}}'); +INSERT INTO `tbl_log` VALUES (10213, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-13 05:08:26', 0, 'OrganizationController.getOrganizationTree(..)', NULL, 'GET /apis/organization/getOrganizationTree', '{}', '[{\"children\":[{\"children\":[{\"children\":[],\"checked\":false,\"attributes\":\"12\",\"id\":14,\"state\":\"open\",\"title\":\"部门2\",\"value\":14,\"key\":14}],\"checked\":false,\"attributes\":\"jg1\",\"id\":13,\"state\":\"open\",\"title\":\"部门1\",\"value\":13,\"key\":13}],\"checked\":false,\"attributes\":\"001\",\"id\":12,\"state\":\"open\",\"title\":\"测试部门\",\"value\":12,\"key\":12}]'); +INSERT INTO `tbl_log` VALUES (10214, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-13 05:08:29', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"供应商\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":0.000000,\"allNeedPay\":116500257.436400,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Excel初始化默认供应商\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":89,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"1\",\"supplier\":\"浙江瑞银电子有限公司\",\"taxNum\":\"\",\"taxRate\":0.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"供应商\"}]}}'); +INSERT INTO `tbl_log` VALUES (10215, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-13 05:08:31', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10216, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-13 05:08:31', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"客户\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":12430066.000000,\"allNeedPay\":0.000000,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Stock Status客户\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":90,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"2\",\"supplier\":\"TNB\",\"taxNum\":\"\",\"taxRate\":10.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"客户\"}]}}'); +INSERT INTO `tbl_log` VALUES (10217, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-13 05:08:31', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10218, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-13 05:08:33', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"会员\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10219, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-13 05:08:33', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10220, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-13 05:08:35', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10221, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-13 05:08:35', 0, 'DepotController.getList(..)', NULL, 'GET /apis/depot/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":25,\"isDefault\":true,\"name\":\"半成品仓库\",\"remark\":\"总部入库物料\",\"sort\":\"1\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000},{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":26,\"isDefault\":false,\"name\":\"成品仓库\",\"remark\":\"Stock Status成品\",\"sort\":\"2\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (10222, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-13 05:08:35', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10223, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-13 05:08:37', 0, 'InOutItemController.getList(..)', NULL, 'GET /apis/inOutItem/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":23,\"name\":\"利息收入\",\"remark\":\"收入\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":22,\"name\":\"房租收入\",\"remark\":\"\",\"tenantId\":63,\"type\":\"收入\"},{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":21,\"name\":\"快递费\",\"remark\":\"\",\"tenantId\":63,\"type\":\"支出\"}]}}'); +INSERT INTO `tbl_log` VALUES (10224, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-13 05:08:40', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10225, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-13 05:08:41', 0, 'MaterialCategoryController.getMaterialCategoryTree(..)', NULL, 'GET /apis/materialCategory/getMaterialCategoryTree', '{}', '[{\"children\":[],\"checked\":false,\"id\":34,\"state\":\"open\",\"title\":\"包装\",\"value\":34,\"key\":34},{\"children\":[],\"checked\":false,\"id\":32,\"state\":\"open\",\"title\":\"半成品\",\"value\":32,\"key\":32},{\"children\":[],\"checked\":false,\"id\":33,\"state\":\"open\",\"title\":\"成品\",\"value\":33,\"key\":33}]'); +INSERT INTO `tbl_log` VALUES (10226, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-13 05:08:41', 0, 'MaterialController.getList(..)', NULL, 'GET /apis/material/list', '{\"search\":\"{\\\"materialParam\\\":\\\"\\\",\\\"standard\\\":\\\"\\\",\\\"model\\\":\\\"\\\",\\\"color\\\":\\\"\\\",\\\"brand\\\":\\\"\\\",\\\"mfrs\\\":\\\"\\\",\\\"otherField1\\\":\\\"\\\",\\\"otherField2\\\":\\\"\\\",\\\"otherField3\\\":\\\"\\\",\\\"weight\\\":\\\"\\\",\\\"expiryNum\\\":\\\"\\\",\\\"position\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"mpList\\\":\\\"扩展1,扩展2,扩展3\\\"}\"}', '{\"code\":200,\"data\":{\"total\":24,\"rows\":[{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"commodityDecimal\":200.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":706,\"imgName\":\"\",\"initialStock\":0,\"lowDecimal\":200.000000,\"mBarCode\":\"1002\",\"materialOther\":\"\",\"mfrs\":\"SMT\",\"mnemonic\":\"MD-4G111(VF) 4G\",\"model\":\"MD-4G111(VF) 4G\",\"name\":\"MD-4G111(VF) 4G\",\"purchaseDecimal\":100.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) 4G\",\"stock\":0,\"unit\":\"只\",\"wholesaleDecimal\":200.000000},{\"attribute\":\"{}\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"categoryId\":34,\"categoryName\":\"包装\",\"commodityDecimal\":10.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":705,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":10.000000,\"mBarCode\":\"1001\",\"materialOther\":\"\",\"mnemonic\":\"MD-4G111(VF) bz\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 包装\",\"purchaseDecimal\":10.000000,\"sku\":\"\",\"standard\":\"MD-4G111(VF) packing\",\"stock\":0.000000,\"unit\":\"件\",\"wholesaleDecimal\":10.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":340.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":704,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":340.000000,\"mBarCode\":\"3PH-APEC3-WC\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"3PH APEC3-WC\",\"name\":\"3PH APEC3-WC\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":317.500000,\"remark\":\"Excel初始化;条码:3PH-APEC3-WC\",\"standard\":\"3PH APEC3-WC\",\"stock\":7223.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":340.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":33,\"categoryName\":\"成品\",\"color\":\"\",\"commodityDecimal\":73.500000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":703,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":73.500000,\"mBarCode\":\"1PH-WS79\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"1PH WS79\",\"name\":\"1PH WS79\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":59.500000,\"remark\":\"Excel初始化;条码:1PH-WS79\",\"standard\":\"1PH WS79\",\"stock\":52400.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":73.500000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":24.300000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":702,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":24.300000,\"mBarCode\":\"C.4.T.0.00722\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS178(VA)\",\"name\":\"MD-RS178(VA) RS485分线器\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":24.300000,\"remark\":\"Excel初始化;条码:C.4.T.0.00722\",\"standard\":\"MD-RS178(VA)\",\"stock\":1000.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":24.300000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":142.560000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":701,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":142.560000,\"mBarCode\":\"C.4.T.0.0068900002\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-RS114(VB)\",\"name\":\"MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":142.560000,\"remark\":\"Excel初始化;条码:C.4.T.0.0068900002\",\"standard\":\"MD-RS114(VB)\",\"stock\":100.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":142.560000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":132.840000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":700,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":132.840000,\"mBarCode\":\"C.4.T.0.00686\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"TC160(VA)\",\"name\":\"TC160(VA) 通讯模块供电盒\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":132.840000,\"remark\":\"Excel初始化;条码:C.4.T.0.00686\",\"standard\":\"TC160(VA)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":132.840000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":0.100000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":699,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":0.100000,\"mBarCode\":\"C.4.T.0.00654\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4G111(VF)\",\"name\":\"MD-4G111(VF) 4G模块\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":0.100000,\"remark\":\"Excel初始化;条码:C.4.T.0.00654\",\"standard\":\"MD-4G111(VF)\",\"stock\":76970.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":0.100000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":324.000000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":698,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":324.000000,\"mBarCode\":\"C.4.T.0.00562\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MD-4GVIII(VB)\",\"name\":\"MD-4GVIII(VB)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":324.000000,\"remark\":\"Excel初始化;条码:C.4.T.0.00562\",\"standard\":\"MD-4GVIII(VB)\",\"stock\":50.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":324.000000},{\"attribute\":\"\",\"bigUnitInitialStock\":\"\",\"bigUnitStock\":\"\",\"brand\":\"\",\"categoryId\":32,\"categoryName\":\"半成品\",\"color\":\"\",\"commodityDecimal\":129.600000,\"deleteFlag\":\"0\",\"enableBatchNumber\":\"0\",\"enableSerialNumber\":\"0\",\"enabled\":true,\"id\":697,\"imgName\":\"\",\"initialStock\":0.000000,\"lowDecimal\":129.600000,\"mBarCode\":\"C.4.T.0.00553\",\"materialOther\":\"\",\"mfrs\":\"浙江瑞银电子有限公司\",\"mnemonic\":\"\",\"model\":\"MT-P109(VA)\",\"name\":\"MT-P109(VA)\",\"otherField1\":\"\",\"otherField2\":\"\",\"otherField3\":\"\",\"position\":\"\",\"purchaseDecimal\":129.600000,\"remark\":\"Excel初始化;条码:C.4.T.0.00553\",\"standard\":\"MT-P109(VA)\",\"stock\":500.000000,\"tenantId\":63,\"unit\":\"件\",\"wholesaleDecimal\":129.600000}]}}'); +INSERT INTO `tbl_log` VALUES (10227, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-13 05:08:50', 0, 'AssetController.dashboard()', NULL, 'GET /apis/asset/dashboard', '{}', '{\"code\":200,\"data\":{\"summary\":{\"activeCount\":259,\"deviceCount\":10,\"assetQuantity\":289.000000,\"assetCount\":255,\"assetValue\":17260.000000,\"openInventoryCount\":2,\"managedCount\":265},\"statusDistribution\":[{\"code\":\"IN_USE\",\"value\":259},{\"code\":\"REPAIR\",\"value\":3},{\"code\":\"SCRAPPED\",\"value\":3}],\"departmentDistribution\":[{\"name\":\"Production\",\"value\":56},{\"name\":\"未指定\",\"value\":54},{\"name\":\"Laboratory\",\"value\":48},{\"name\":\"Technical & Technologies\",\"value\":29},{\"name\":\"Engineering\",\"value\":18},{\"name\":\"Not Specified\",\"value\":11},{\"name\":\"Human Resources\",\"value\":6},{\"name\":\"Quality\",\"value\":6}],\"deviceCategoryDistribution\":[{\"name\":\"检测设备\",\"value\":2},{\"name\":\"贴装设备\",\"value\":2},{\"name\":\"动力设备\",\"value\":1},{\"name\":\"印刷设备\",\"value\":1},{\"name\":\"工装设备\",\"value\":1},{\"name\":\"服务器\",\"value\":1},{\"name\":\"焊接设备\",\"value\":1},{\"name\":\"物流设备\",\"value\":1}],\"message\":\"成功\",\"categoryDistribution\":[{\"code\":\"HARDWARE\",\"name\":\"硬件资产\",\"value\":198.00},{\"code\":\"SOFTWARE\",\"name\":\"软件资产\",\"value\":67.00},{\"code\":\"SIM_CARD\",\"name\":\"SIM卡\",\"value\":24.00}],\"recentInventories\":[{\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserName\":\"admin\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":6,\"totalCount\":1,\"inventoriedCount\":1,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:17:28\"},{\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":4,\"totalCount\":8,\"inventoriedCount\":8,\"status\":\"CLOSED\",\"updatedAt\":\"2026-09-21 19:16:33\"},{\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserName\":\"张三\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":5,\"totalCount\":2,\"inventoriedCount\":0,\"status\":\"ACCEPTED\",\"updatedAt\":\"2026-09-21 19:08:13\"},{\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserName\":\"张伟\",\"planName\":\"2026年09月资产设备专项盘点\",\"id\":1,\"totalCount\":3,\"inventoriedCount\":1,\"status\":\"IN_PROGRESS\",\"updatedAt\":\"2026-09-21 14:35:59\"}],\"updatedAt\":\"2026-10-13\"}}'); +INSERT INTO `tbl_log` VALUES (10228, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-13 05:08:53', 0, 'AssetController.list(..)', NULL, 'GET /apis/asset/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":255,\"rows\":[{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019200694297052\",\"assetName\":\"SIM卡 896019200694297052\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"6\",\"externalSource\":\"SIM\",\"id\":270,\"keeper\":\"UITM Dungun\",\"location\":\"SMT (???)\",\"originalValue\":0.000000,\"quantity\":1.000000,\"source\":\"SAS\",\"specification\":\"183.171.146.98\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500578\",\"assetName\":\"SIM卡 896019190221500578\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"5\",\"externalSource\":\"SIM\",\"id\":269,\"keeper\":\"SMT\",\"location\":\"UITM Dungun\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.14.125\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019190221500576\",\"assetName\":\"SIM卡 896019190221500576\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"1\",\"externalSource\":\"SIM\",\"id\":268,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1608062400000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2020-12-16\",\"source\":\"SAS\",\"specification\":\"183.171.144.65\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607778\",\"assetName\":\"SIM卡 896019210381607778\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"2\",\"externalSource\":\"SIM\",\"id\":267,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.15.60\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607781\",\"assetName\":\"SIM卡 896019210381607781\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"9\",\"externalSource\":\"SIM\",\"id\":266,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem RnD\",\"originalValue\":0.000000,\"purchaseDate\":1711051200000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070014;电表序列号: 320910015;启用日期: 2024-03-22\",\"source\":\"SAS\",\"specification\":\"183.171.5.142 / KM08-LTE Modem / 21070014\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607777\",\"assetName\":\"SIM卡 896019210381607777\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"3\",\"externalSource\":\"SIM\",\"id\":265,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.182\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607782\",\"assetName\":\"SIM卡 896019210381607782\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"4\",\"externalSource\":\"SIM\",\"id\":264,\"keeper\":\"SMT\",\"location\":\"Genting\",\"originalValue\":0.000000,\"purchaseDate\":1720987200000,\"quantity\":1.000000,\"remark\":\"使用期限: 2 Years;启用日期: 2024-07-15\",\"source\":\"SAS\",\"specification\":\"183.171.40.117\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607784\",\"assetName\":\"SIM卡 896019210381607784\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"7\",\"externalSource\":\"SIM\",\"id\":263,\"keeper\":\"SMT\",\"location\":\"SMT (Modem-Production)\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 20041004;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.5 / KM08-LTE Modem / 20041004\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607783\",\"assetName\":\"SIM卡 896019210381607783\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"8\",\"externalSource\":\"SIM\",\"id\":262,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Modem Store\",\"originalValue\":0.000000,\"purchaseDate\":1727553600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 2403005;启用日期: 2024-09-29\",\"source\":\"SAS\",\"specification\":\"183.171.50.6 / KM08-LTE Modem / 2403005\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000},{\"assetCategory\":\"SIM卡\",\"assetCode\":\"SIM-896019210381607785\",\"assetName\":\"SIM卡 896019210381607785\",\"categoryCode\":\"SIM_CARD\",\"categoryId\":7,\"createTime\":1790613750000,\"creator\":63,\"deleteFlag\":\"0\",\"externalId\":\"10\",\"externalSource\":\"SIM\",\"id\":261,\"keeper\":\"SMT\",\"location\":\"SMT (RnD) Alyaa\",\"originalValue\":0.000000,\"purchaseDate\":1766433600000,\"quantity\":1.000000,\"remark\":\"设备序列号: 21070011;电表序列号: 320910014;启用日期: 2025-12-23\",\"source\":\"SAS\",\"specification\":\"183.171.151.171 / KM08-LTE Modem / 21070011\",\"status\":\"IN_USE\",\"unit\":\"张\",\"updateTime\":1790613750000}]}}'); +INSERT INTO `tbl_log` VALUES (10229, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-13 05:08:53', 0, 'AssetController.categoryOptions()', NULL, 'GET /apis/asset/category/options', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"尚未归入具体种类的资产\",\"updateTime\":1790613193000,\"categoryCode\":\"UNCATEGORIZED\",\"id\":4,\"sort\":10,\"categoryName\":\"未分类\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 硬件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"HARDWARE\",\"id\":5,\"sort\":20,\"categoryName\":\"硬件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System 软件台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SOFTWARE\",\"id\":6,\"sort\":30,\"categoryName\":\"软件资产\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"从 Smart Asset System SIM 卡台账同步\",\"updateTime\":1790613193000,\"categoryCode\":\"SIM_CARD\",\"id\":7,\"sort\":40,\"categoryName\":\"SIM卡\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_01BF8DA563A0\",\"id\":11,\"sort\":100,\"categoryName\":\"生产设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_7129859760C3\",\"id\":12,\"sort\":100,\"categoryName\":\"检测设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_9F38069B30A1\",\"id\":13,\"sort\":100,\"categoryName\":\"动力设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_75F489029B11\",\"id\":14,\"sort\":100,\"categoryName\":\"IT设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_3DDFE01CA0B8\",\"id\":15,\"sort\":100,\"categoryName\":\"物流设备\",\"enabled\":true},{\"deleteFlag\":\"0\",\"createTime\":1790613193000,\"description\":\"由原资产分类字段自动迁移\",\"updateTime\":1790613193000,\"categoryCode\":\"LEGACY_B5D44F2B039A\",\"id\":16,\"sort\":100,\"categoryName\":\"工装设备\",\"enabled\":true}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10230, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-13 05:08:55', 0, 'AssetDeviceController.list(..)', NULL, 'GET /apis/assetDevice/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":10,\"rows\":[{\"assetId\":8,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"工装设备\",\"deviceCode\":\"TOOL-STENCIL-CLEAN-01\",\"deviceName\":\"全自动钢网清洗机\",\"enabledDate\":1739822400000,\"id\":10,\"keeper\":\"王磊\",\"location\":\"一车间 钢网房\",\"manufacturer\":\"SAWA\",\"model\":\"SC-A1000\",\"nextMaintenanceDate\":1794254400000,\"purchaseDate\":1739131200000,\"remark\":\"水基清洗、漂洗、热风干燥一体化\",\"serialNumber\":\"SAWA-A1000-250210\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":7,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"物流设备\",\"deviceCode\":\"WH-FORKLIFT-01\",\"deviceName\":\"2 吨电动叉车\",\"enabledDate\":1722456000000,\"id\":9,\"keeper\":\"张伟\",\"location\":\"原材料仓充电区\",\"manufacturer\":\"Toyota\",\"model\":\"8FBE20\",\"nextMaintenanceDate\":1792872000000,\"purchaseDate\":1721592000000,\"remark\":\"锂电池版本,配置蓝光安全警示灯\",\"serialNumber\":\"TY-8FBE20-240722\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"仓储物流部\"},{\"assetId\":6,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"服务器\",\"deviceCode\":\"IT-MES-DB-01\",\"deviceName\":\"MES 数据库主服务器\",\"enabledDate\":1737489600000,\"id\":8,\"keeper\":\"赵敏\",\"location\":\"数据中心 A03-U18\",\"manufacturer\":\"Dell\",\"model\":\"PowerEdge R760\",\"nextMaintenanceDate\":1797278400000,\"purchaseDate\":1736884800000,\"remark\":\"双路 CPU、512GB 内存、全闪存 RAID10\",\"serialNumber\":\"CN-R760-25011501\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"信息技术部\"},{\"assetId\":5,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"动力设备\",\"deviceCode\":\"UTIL-AIR-01\",\"deviceName\":\"变频螺杆空压机\",\"enabledDate\":1701374400000,\"id\":7,\"keeper\":\"陈晨\",\"location\":\"动力站 1 号机位\",\"manufacturer\":\"Atlas Copco\",\"model\":\"GA22 VSD+\",\"nextMaintenanceDate\":1790798400000,\"purchaseDate\":1700424000000,\"remark\":\"运行压力 0.72MPa,接入能源管理系统\",\"serialNumber\":\"AC-GA22-2311209\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"设备动力部\"},{\"assetId\":4,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-SPI-01\",\"deviceName\":\"在线 3D SPI\",\"enabledDate\":1713384000000,\"id\":6,\"keeper\":\"陈晨\",\"lastInventoryTime\":1789986951000,\"location\":\"一车间 印刷检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"KY8030-3\",\"nextMaintenanceDate\":1793908800000,\"purchaseDate\":1712347200000,\"remark\":\"与印刷机闭环反馈锡膏偏移数据\",\"serialNumber\":\"KY-8030-24040608\",\"status\":\"IN_USE\",\"updateTime\":1789986959000,\"useDepartment\":\"品质部\"},{\"assetId\":3,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"检测设备\",\"deviceCode\":\"QC-AOI-01\",\"deviceName\":\"在线 3D AOI\",\"enabledDate\":1713384000000,\"id\":5,\"keeper\":\"陈晨\",\"lastInventoryTime\":1790003830000,\"location\":\"一车间 AOI 检测区\",\"manufacturer\":\"Koh Young\",\"model\":\"Zenith 2\",\"nextMaintenanceDate\":1793822400000,\"purchaseDate\":1712347200000,\"remark\":\"具备 AI 缺陷复判和 SPC 数据接口\",\"serialNumber\":\"KY-Z2-24040615\",\"status\":\"IN_USE\",\"updateTime\":1790003830000,\"useDepartment\":\"品质部\"},{\"assetId\":2,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"焊接设备\",\"deviceCode\":\"SMT-L01-REFLOW-01\",\"deviceName\":\"十温区氮气回流焊炉\",\"enabledDate\":1712692800000,\"id\":4,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线后段\",\"manufacturer\":\"Heller Industries\",\"model\":\"HELLER 1936MK7\",\"nextMaintenanceDate\":1792440000000,\"purchaseDate\":1710705600000,\"remark\":\"氮气闭环控制,支持双轨独立调宽\",\"serialNumber\":\"HLR1936-2403268\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-B\",\"deviceName\":\"多功能贴片机 B\",\"enabledDate\":1712520000000,\"id\":3,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 B 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-W2S\",\"nextMaintenanceDate\":1792094400000,\"purchaseDate\":1710705600000,\"remark\":\"负责异形件及高精度元件贴装\",\"serialNumber\":\"NPMW2S24031802\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"贴装设备\",\"deviceCode\":\"SMT-L01-MOUNTER-A\",\"deviceName\":\"高速模块贴片机 A\",\"enabledDate\":1712520000000,\"id\":2,\"keeper\":\"王磊\",\"location\":\"一车间 SMT-01 线 A 工位\",\"manufacturer\":\"Panasonic\",\"model\":\"Panasonic NPM-D3A\",\"nextMaintenanceDate\":1792008000000,\"purchaseDate\":1710705600000,\"remark\":\"前段高速贴装,配置 16 头轻量贴装头\",\"serialNumber\":\"NPMD3A24031801\",\"status\":\"IN_USE\",\"updateTime\":1789718123000,\"useDepartment\":\"SMT生产部\"},{\"assetId\":1,\"createTime\":1789718123000,\"creator\":63,\"deleteFlag\":\"0\",\"deviceCategory\":\"印刷设备\",\"deviceCode\":\"SMT-L01-PRINTER-01\",\"deviceName\":\"全自动锡膏印刷机\",\"enabledDate\":1712520000000,\"id\":1,\"keeper\":\"王磊\",\"lastInventoryTime\":1789726083000,\"location\":\"一车间 SMT-01 线前段\",\"manufacturer\":\"ASMPT\",\"model\":\"DEK NeoHorizon 03iX\",\"nextMaintenanceDate\":1791403200000,\"purchaseDate\":1710705600000,\"remark\":\"配置 2D 检测与自动擦网单元\",\"serialNumber\":\"DEK24NH03187\",\"status\":\"IN_USE\",\"updateTime\":1789726082000,\"useDepartment\":\"SMT生产部\"}]}}'); +INSERT INTO `tbl_log` VALUES (10231, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-13 05:09:13', 0, 'AssetInventoryController.list(..)', NULL, 'GET /apis/assetInventory/list', '{\"search\":\"{}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"abnormalCount\":0,\"auditTime\":1790003845000,\"auditUserId\":149,\"completedAt\":1790003836000,\"createTime\":1790003320000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":6,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260921190840893\",\"inventoryUserId\":63,\"inventoryUserName\":\"admin\",\"normalCount\":1,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1790003819000,\"status\":\"CLOSED\",\"totalCount\":1,\"updateTime\":1790003848000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1790003280000,\"creator\":149,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":5,\"inventoriedCount\":0,\"inventoryNo\":\"PD20260921190800418\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ALL\",\"source\":\"MANUAL\",\"status\":\"ACCEPTED\",\"totalCount\":2,\"updateTime\":1790003293000,\"updater\":149},{\"abnormalCount\":0,\"completedAt\":1790002875000,\"createTime\":1789995983000,\"creator\":63,\"deadline\":1790258400000,\"deleteFlag\":\"0\",\"id\":4,\"inventoriedCount\":8,\"inventoryNo\":\"PD20260921170623856\",\"inventoryUserId\":149,\"inventoryUserName\":\"张三\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1790053200000,\"remark\":\"进行盘点\",\"scopeType\":\"ASSET\",\"source\":\"MANUAL\",\"startedAt\":1790002559000,\"status\":\"CLOSED\",\"totalCount\":8,\"updateTime\":1790003793000,\"updater\":149},{\"abnormalCount\":0,\"createTime\":1789722750000,\"creator\":63,\"deadline\":1789999200000,\"deleteFlag\":\"0\",\"id\":1,\"inventoriedCount\":1,\"inventoryNo\":\"PD20260918131230171\",\"inventoryUserId\":36,\"inventoryUserName\":\"张伟\",\"normalCount\":0,\"planName\":\"2026年09月资产设备专项盘点\",\"plannedAt\":1789794000000,\"remark\":\"进行盘点\",\"scopeType\":\"DEVICE\",\"source\":\"MANUAL\",\"startedAt\":1789723142000,\"status\":\"IN_PROGRESS\",\"totalCount\":3,\"updateTime\":1789986959000,\"updater\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10232, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-13 05:09:13', 0, 'AssetInventoryController.operatorOptions()', NULL, 'GET /apis/assetInventory/operatorOptions', '{}', '{\"code\":200,\"data\":{\"rows\":[{\"loginName\":\"admin\",\"name\":\"admin\",\"id\":63},{\"loginName\":\"admin2\",\"name\":\"admin2\",\"id\":149}],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10233, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-13 05:09:17', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10234, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-13 05:09:17', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10235, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-13 05:09:17', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (10236, 63, '接口日志', '43.174.53.19/1.9.116.218', '2026-10-13 05:09:17', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10237, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-13 05:09:17', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10238, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-13 05:09:17', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"收款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":9,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2110-25\",\"billTime\":1784836800000,\"billTimeStr\":\"2026-07-24 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":105,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2110\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2110-25\",\"sourceTime\":\"2026-06-23 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2108-18\",\"billTime\":1784145600000,\"billTimeStr\":\"2026-07-16 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":103,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2108\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2108-18\",\"sourceTime\":\"2026-06-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2129-11\",\"billTime\":1786564800000,\"billTimeStr\":\"2026-08-13 00:00:00\",\"changeAmount\":1122000.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":99,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2129\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2129-11\",\"sourceTime\":\"2026-01-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":1122000.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2133-65\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":98,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2133\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2133-65\",\"sourceTime\":\"2026-07-16 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2131-47\",\"billTime\":1783886400000,\"billTimeStr\":\"2026-07-13 00:00:00\",\"changeAmount\":80850.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":97,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2131\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2131-47\",\"sourceTime\":\"2026-07-13 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2130-44\",\"billTime\":1786046400000,\"billTimeStr\":\"2026-08-07 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":96,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2130\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2130-44\",\"sourceTime\":\"2026-07-09 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2122-26\",\"billTime\":1785441600000,\"billTimeStr\":\"2026-07-31 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":95,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2122\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2122-26\",\"sourceTime\":\"2026-07-01 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2113-15\",\"billTime\":1785182400000,\"billTimeStr\":\"2026-07-28 00:00:00\",\"changeAmount\":161700.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":94,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2113\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2113-15\",\"sourceTime\":\"2026-06-28 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":161700.000000,\"type\":\"收款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"SK-INV_2111-11\",\"billTime\":1785096000000,\"billTimeStr\":\"2026-07-27 00:00:00\",\"changeAmount\":242550.000000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":93,\"organId\":90,\"organName\":\"TNB\",\"remark\":\"Stock Status客户收款;发票:INV_2111\",\"source\":\"0\",\"sourceNumber\":\"XSCK-INV_2111-11\",\"sourceTime\":\"2026-06-26 00:00:00\",\"sourceType\":\"销售出库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"收款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10239, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-13 05:09:17', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10240, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-13 05:09:17', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10241, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-13 05:09:17', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10242, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-13 05:09:17', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"customer\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (10243, 63, '接口日志', '43.152.156.102/1.9.116.218', '2026-10-13 05:09:19', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10244, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-13 05:09:19', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10245, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-13 05:09:19', 0, 'AccountHeadController.getList(..)', NULL, 'GET /apis/accountHead/list', '{\"search\":\"{\\\"billNo\\\":\\\"\\\",\\\"searchMaterial\\\":\\\"\\\",\\\"type\\\":\\\"付款\\\",\\\"remark\\\":\\\"\\\",\\\"number\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":3,\"rows\":[{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-3PH-APEC3-WC-OV-25\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":947751.900000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":104,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":947751.900000,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008145-45---ZHEJIANG-METRONIX-3PH-APEC3-WC-O\",\"billTime\":1785700800000,\"billTimeStr\":\"2026-08-03 00:00:00\",\"changeAmount\":954860.058400,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":100,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008145/45 - ZHEJIANG & METRONIX\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260415-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":954860.058400,\"type\":\"付款\",\"userName\":\"admin\"},{\"accountId\":17,\"accountName\":\"瑞银账户1\",\"billNo\":\"FK-PV-008186-87-1PH-WS79-ADD1-11\",\"billTime\":1786651200000,\"billTimeStr\":\"2026-08-14 00:00:00\",\"changeAmount\":236946.640000,\"creator\":63,\"deleteFlag\":\"0\",\"discountMoney\":0.000000,\"fileName\":\"\",\"handsPersonId\":43,\"handsPersonName\":\"Juwairiah\",\"id\":92,\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"remark\":\"Stock Status供应商付款;PV:PV 008186/87\",\"source\":\"0\",\"sourceNumber\":\"CGRK-260414-01-11\",\"sourceTime\":\"2026-04-29 00:00:00\",\"sourceType\":\"采购入库\",\"sourceUser\":\"admin\",\"status\":\"1\",\"tenantId\":63,\"totalPrice\":236946.640000,\"type\":\"付款\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10246, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-13 05:09:19', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10247, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-13 05:09:19', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10248, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-13 05:09:19', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10249, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-13 05:09:19', 0, 'PersonController.getPersonByType(..)', NULL, 'GET /apis/person/getPersonByType', '{\"type\":\"财务员\"}', '{\"code\":200,\"data\":{\"personList\":[{\"deleteFlag\":\"0\",\"enabled\":true,\"id\":43,\"name\":\"Juwairiah\",\"type\":\"财务员\"}]}}'); +INSERT INTO `tbl_log` VALUES (10250, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-13 05:09:19', 0, 'DepotHeadController.getNeedCount(..)', NULL, 'GET /apis/depotHead/getNeedCount', '{\"type\":\"vendor\"}', '{\"code\":200,\"data\":{\"needCount\":1}}'); +INSERT INTO `tbl_log` VALUES (10251, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-13 05:09:22', 0, 'PackBomController.getList(..)', NULL, 'GET /apis/packBom/list', '{\"search\":\"{\\\"bomNumber\\\":\\\"\\\",\\\"bomName\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"outputMaterialParam\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"bomName\":\"v1.0\",\"bomNumber\":\"BOM00000001735\",\"createTime\":1789719259000,\"creator\":63,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"itemCount\":1,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputNumber\":1.000000,\"productMaterialExtendId\":123,\"productMaterialId\":703,\"version\":\"v1.0\"}]}}'); +INSERT INTO `tbl_log` VALUES (10252, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-13 05:09:23', 0, 'ProductionOrderController.getList(..)', NULL, 'GET /apis/productionOrder/list', '{\"search\":\"{\\\"orderNumber\\\":\\\"\\\",\\\"sourceNumber\\\":\\\"\\\",\\\"productMaterialParam\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"auditBy\":63,\"auditByName\":\"admin\",\"auditTime\":1789719775000,\"bomId\":18,\"bomName\":\"v1.0\",\"createTime\":1789719619000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"finishedQuantity\":0.000000,\"id\":11,\"orderNumber\":\"GD20260918122018493\",\"orderQuantity\":10000.000000,\"outputMaterialExtendId\":123,\"outputMaterialId\":703,\"outputMaterialName\":\"1PH WS79\",\"outputQuantity\":10000.000000,\"planEndDate\":1790280000000,\"planStartDate\":1789675200000,\"priority\":\"0\",\"productMaterialExtendId\":123,\"productMaterialId\":703,\"releaseBy\":63,\"releaseTime\":1789719775000,\"remark\":\"\",\"sourceId\":1719,\"sourceNumber\":\"XSDD00000001726\",\"sourceType\":\"销售订单\",\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10253, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-13 05:09:23', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10254, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-13 05:09:24', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10255, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-13 05:09:24', 0, 'ProductionRequisitionController.getList(..)', NULL, 'GET /apis/productionRequisition/list', '{\"search\":\"{\\\"requisitionNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1790242827000,\"createTime\":1789720317000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":9,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"requisitionNumber\":\"LL20260918123156921\",\"status\":\"1\"},{\"createTime\":1789719809000,\"creator\":63,\"creatorName\":\"admin\",\"deleteFlag\":\"0\",\"depotId\":25,\"depotName\":\"半成品仓库\",\"id\":8,\"itemCount\":1,\"materialsList\":\"MD-4G111(VF) 包装\",\"orderId\":11,\"orderNumber\":\"GD20260918122018493\",\"remark\":\"11\",\"requisitionNumber\":\"LL20260918122329111\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (10256, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-13 05:09:24', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10257, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-13 05:09:25', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10258, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-13 05:09:25', 0, 'ProductionReportController.getList(..)', NULL, 'GET /apis/productionReport/list', '{\"search\":\"{\\\"reportNumber\\\":\\\"\\\",\\\"orderNumber\\\":\\\"\\\",\\\"beginTime\\\":\\\"\\\",\\\"endTime\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10259, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-13 05:09:26', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10260, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-13 05:09:26', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10261, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-13 05:09:26', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"请购单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789720084000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001738\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1722,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"QGD00000001738\",\"operTime\":1789734467000,\"operTimeStr\":\"2026-09-18 16:27:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"},{\"backAmount\":0,\"changeAmount\":0,\"createTime\":1789717442000,\"creator\":63,\"debt\":0,\"defaultNumber\":\"QGD00000001719\",\"deleteFlag\":\"0\",\"deposit\":0,\"discountLastMoney\":0,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1715,\"lastDebt\":0,\"lastDeposit\":0.000000,\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"QGD00000001719\",\"operTime\":1789717427000,\"operTimeStr\":\"2026-09-18 11:43:47\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"请购单\",\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10262, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-13 05:09:26', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10263, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-13 05:09:26', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10264, 63, '接口日志', '43.152.156.102/1.9.116.218', '2026-10-13 05:09:27', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10265, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-13 05:09:27', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10266, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-13 05:09:27', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10267, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-13 05:09:27', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"采购订单\\\",\\\"linkApply\\\":\\\"\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720113000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGDD00000001739\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1723,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001738\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGDD00000001739\",\"operTime\":1789734505000,\"operTimeStr\":\"2026-09-18 16:28:25\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":100000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717459000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGDD00000001720\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1716,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkApply\":\"QGD00000001719\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGDD00000001720\",\"operTime\":1789717452000,\"operTimeStr\":\"2026-09-18 11:44:12\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"采购订单\",\"totalPrice\":0.700000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10268, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-13 05:09:27', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10269, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-13 05:09:27', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10270, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-13 05:09:27', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10271, 63, '接口日志', '43.152.156.102/1.9.116.218', '2026-10-13 05:09:28', 0, 'SupplierController.findBySelectSup(..)', NULL, 'POST /apis/supplier/findBySelect_sup', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"浙江瑞银电子有限公司\",\"id\":89}]'); +INSERT INTO `tbl_log` VALUES (10272, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-13 05:09:28', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10273, 63, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-13 05:09:28', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10274, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-13 05:09:28', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"入库\\\",\\\"subType\\\":\\\"采购\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789720142000,\"creator\":63,\"debt\":100000.000000,\"defaultNumber\":\"CGRK00000001740\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":100000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1724,\"lastDebt\":100000.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001739\",\"materialCount\":10000.000000,\"materialsList\":\"MD-4G111(VF) 包装 MD-4G111(VF) packing MD-4G111(VF) \",\"number\":\"CGRK00000001740\",\"operTime\":1789734542000,\"operTimeStr\":\"2026-09-18 16:29:02\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":100000.000000,\"type\":\"入库\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789717476000,\"creator\":63,\"debt\":0.700000,\"defaultNumber\":\"CGRK00000001721\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":0.700000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1717,\"lastDebt\":0.700000,\"lastDeposit\":0.000000,\"linkNumber\":\"CGDD00000001720\",\"materialCount\":7.000000,\"materialsList\":\"MD-4G111(VF) 4G模块 MD-4G111(VF) MD-4G111(VF) \",\"number\":\"CGRK00000001721\",\"operTime\":1789717474000,\"operTimeStr\":\"2026-09-18 11:44:34\",\"organId\":89,\"organName\":\"浙江瑞银电子有限公司\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"采购\",\"totalPrice\":0.700000,\"type\":\"入库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10275, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-13 05:09:28', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10276, 63, '接口日志', '43.152.142.32/1.9.116.218', '2026-10-13 05:09:28', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10277, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-13 05:09:28', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10278, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-13 05:09:28', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10279, 63, '接口日志', '43.152.156.102/1.9.116.218', '2026-10-13 05:09:31', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10280, 63, '接口日志', '43.152.142.78/1.9.116.218', '2026-10-13 05:09:31', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10281, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-13 05:09:31', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10282, 63, '接口日志', '43.152.142.133/1.9.116.218', '2026-10-13 05:09:31', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10283, 63, '接口日志', '43.152.142.29/1.9.116.218', '2026-10-13 05:09:31', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (10284, 63, '接口日志', '43.152.142.109/1.9.116.218', '2026-10-13 05:09:31', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10285, 63, '接口日志', '43.174.55.40/1.9.116.218', '2026-10-13 05:09:31', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10286, 63, '接口日志', '43.174.32.12/1.9.116.218', '2026-10-13 05:09:31', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10287, 63, '接口日志', '43.174.54.14/1.9.116.218', '2026-10-13 05:09:31', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10288, 63, '接口日志', '43.152.156.102/1.9.116.218', '2026-10-13 05:09:32', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10289, 63, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-13 05:09:32', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10290, 63, '接口日志', '43.174.32.23/1.9.116.218', '2026-10-13 05:09:32', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10291, 63, '接口日志', '43.152.142.34/1.9.116.218', '2026-10-13 05:09:32', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":29,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10292, 63, '接口日志', '43.152.142.41/1.9.116.218', '2026-10-13 05:09:32', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10293, 63, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-13 05:09:32', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (10294, 63, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-13 05:09:32', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10295, 63, '接口日志', '43.152.142.45/1.9.116.218', '2026-10-13 05:09:32', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10296, 63, '接口日志', '43.174.53.16/1.9.116.218', '2026-10-13 05:09:32', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10297, 63, '接口日志', '43.174.54.44/1.9.116.218', '2026-10-13 05:09:34', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (10298, 63, '接口日志', '43.174.53.11/1.9.116.218', '2026-10-13 05:09:54', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (10299, 63, '接口日志', '43.152.142.64/1.9.116.218', '2026-10-13 05:09:56', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10300, 63, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-13 05:09:58', 0, 'DeliveryPlanController.getDetail(..)', NULL, 'GET /apis/deliveryPlan/detail', '{\"id\":7}', '{\"code\":200,\"data\":{\"rows\":[{\"barCode\":\"1PH-WS79\",\"deleteFlag\":\"0\",\"depotId\":25,\"id\":6,\"materialExtendId\":123,\"materialId\":703,\"materialName\":\"1PH WS79\",\"model\":\"1PH WS79\",\"planId\":7,\"planQuantity\":10000.000000,\"shippedQuantity\":0.000000,\"sourceItemId\":1525,\"standard\":\"1PH WS79\",\"unit\":\"件\"}],\"info\":{\"createTime\":1789720385000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"id\":7,\"planNumber\":\"JH00000001741\",\"saleOrderNumber\":\"XSDD00000001726\",\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"}}}'); +INSERT INTO `tbl_log` VALUES (10301, 63, '接口日志', '43.152.142.112/1.9.116.218', '2026-10-13 05:10:03', 0, 'DeliveryPlanController.getDetail(..)', NULL, 'GET /apis/deliveryPlan/detail', '{\"id\":6}', '{\"code\":200,\"data\":{\"rows\":[{\"barCode\":\"3PH-APEC3-WC\",\"deleteFlag\":\"0\",\"depotId\":26,\"id\":5,\"materialExtendId\":124,\"materialId\":704,\"materialName\":\"3PH APEC3-WC\",\"model\":\"3PH APEC3-WC\",\"planId\":6,\"planQuantity\":149.000000,\"remark\":\"\",\"shippedQuantity\":0.000000,\"sourceItemId\":1519,\"standard\":\"3PH APEC3-WC\",\"tenantId\":63,\"unit\":\"件\"}],\"info\":{\"createTime\":1789717298000,\"creator\":63,\"customerId\":90,\"deleteFlag\":\"0\",\"id\":6,\"planNumber\":\"JH00000001717\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}}}'); +INSERT INTO `tbl_log` VALUES (10302, 63, '接口日志', '43.174.53.30/1.9.116.218', '2026-10-13 05:10:18', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10303, 63, '接口日志', '43.174.52.31/1.9.116.218', '2026-10-13 05:12:16', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10304, NULL, '接口日志', '43.152.142.140/1.9.116.218', '2026-10-13 05:12:20', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (10305, NULL, '接口日志', '43.152.142.128/1.9.116.218', '2026-10-13 05:12:20', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10306, NULL, '接口日志', '43.174.32.14/1.9.116.218', '2026-10-13 05:12:20', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10307, NULL, '接口日志', '43.152.142.84/1.9.116.218', '2026-10-13 05:12:21', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3xEKklnLMSeegxkkDH44z3xVOWU3ZdIXuQgSRSYQF3MPlIyw4IJ4IOMg+lTSReVP9pQuo5MqrzvABwcYJJ6dME8dcAVwni34q+FPBOpxWF69zfXJJuRFYqr/Zww43kuBltzMBycHOACuQDvZjJ80kJkZog37nhRIccDJH6g/WllbeTDHL5c23epK54z+o7HHPPbINfNXijxbpHjP42eCdU0aaSSAPYxyLJGUaOT7SzFDngkBhyCR6E19NMyqMswAyBknueBQAkr+VE8m1n2qW2oMk47AetRR73gieLMe4h2WZSWAPJHXg8++PSvL9Y+PngzTtWmtI49RvWtn2C6tIkaJ+m7aTIpYds4wSARkYNdp4U8Y2HjDw2uraWTMQ4hlj2Mvly4UlTkdg4yRuA5wTigDcilFyCRFMiAgqzgpu59PvDp3Az7inpPFJLLEjgvEQHXuMjI/SidJXgdIJRFIRhXK7tvvivnH41+ABommSeJ7zXL7U7+81UxRicgJDAyyOsYHJypXAIIXB4UUAfRH2hGlhaRJYlP3GdwgYk4C7c5JI5AI/I8U+V4RsnkZ1CvsHLAEsdoyO/OME/WsTwDIknw88N7HVtul2qttOcHyl4PvWl9pSNHubq4aC3hjF07zyKgjUhsq44wqgZye/figC5FgGRRIGw/QHJXIBweT657cEUELI6kSEGJskK3U46H8wfyryi+/aC8E2mpSLBFqt4iqF8+3tkCSdCPvsr8EkcgdT14Nd5oOv6D4ls5NZ0K4a8i37HeJXUs4AG1lbHIGOD0BzwDmgDfoqsl4GuVgeJ4mZcqZCo3HAJAGckjPOBjg81ZoAiZZ2WUCRUO4eWwGeMD7wPvnp27g187eHr+LRP2iPEUvia6hsppDP9muL6Zf3IdkePDkMqnyMqASODtyCcV9CTfan+0qFxH5REew4ZmI7Nn5T+Hoc9QMTxH4D8LeMpre71rS4ryWJNsUyyvG2w84LIw3DuM5xk46mgDw3xnqukax8fPCdzpNza3JE2npdzW5VleYTZOXUbXIUoMjI4x2wPpKKOD7MIYwrQqvl7c7hgcEfpiuQT4W+BLC9stTj0OC2nsDG0EqzyIFZGyrN82GOcctknvmuviL+XGpKu64WU7uQcZ7AZPTsOufagD5p03RofDIl1TwB8VtGt7W9DpLDqTiCVUDYQGNlYsw+b5tiEDkcMa7z4F+LbrxVomt2N9b28V1bzLLLe20axPcNNvy7hQAZBs+/1IxnkEno9Q+EfgO/1B55PC8Qd9hfyJpIIwMY+VEYLkYBIAHXPJPPRaZo+leF9P8A7O0m3tNOsEXL7CFZWI2hyTneTgDLc/L1PSgDVjljuAHhmV1VuSjAg8dD+ea8L+P2reH7vwpbafYanaXOpWepqk0S3PmSxrsl3BuSeGwDnoeOK902tHbMrTSMQp/ebQW/IDGfwrhb/wCE/gTVtQkvbvw/ObvUGe4ll+0TjDsdzbgHwpyx4xjgigCx8Ota0m68J6FZafqGmXWoLptqLmCC4QzRKsSKS6glshuOQMZA4qP4tW123wv1qDSWkilW3LtHA6x5hVlaUnODt2Bsgdd2MHOKteHfhz4X8K3893oempHcyAwSObqUlIyVfbyzDIIUg4BxjnueoJdr0IzRbVG9QUO7pg4PTj1HZsYHUgHyz4Kv/E48IvY6V4z8K6Zpz+aJrHUTBG8jHhg4kiJfcuOSSuMLkY2j0r4B+H7jSLHXJl1yzv7NrlIQllI7xrMinfkugB4ePDISDjqQBXUTfBvwNeXEtxeaFA8rt1geS3UAAADZGwQHjqAM9cZya6PRtG0/w1bJZ6baWun2PmBEgjwm87QA7HBLyHaBknJGCeRQBaSaKRpZHeaSBHDJMduxT/slecc4JPHBBPWtCsyecDVbeOI3BaTcZFRugUgZKscBevIGT2PPOnQAU2ONIkCRoqIOiqMAUUUAOpNqhi2BuIwTjkj/ACTRRQAtJtUuHKjcAQDjkA9f5D8qKKAAqrFSVBKnIJHQ9P6mloooAiltYJnDyRKzDuR14IwfUYZuD60rwRy2zW7gtEyFGBY5IIx16/jRRQBJTWijaRJGRS6Z2sRyueuD2oooAdRRRQB//9k=\",\"uuid\":\"8cc57d947b4e45ae8d93abff6ec41962\"}}'); +INSERT INTO `tbl_log` VALUES (10308, NULL, '接口日志', '43.174.32.34/1.9.116.218', '2026-10-13 05:12:21', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (10309, NULL, '接口日志', '183.131.72.229/122.233.38.5', '2026-10-13 10:42:55', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10310, NULL, '接口日志', '183.131.72.213/122.233.38.5', '2026-10-13 10:42:56', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10311, NULL, '接口日志', '183.131.72.11/122.233.38.5', '2026-10-13 10:46:17', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10312, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:17', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10313, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:20', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3dwLiOb7Nc7Jfub1IcIw9jxnnnv8ApSs06mBQgkJP7xwMKBjnvke3Xpg4606Nt8sjeVsIwpYjlsZ/Mc5HPc9CDXznr2saZoH7UVzqWszCHT4gBM7Rs4AayCgFVBJyWA6d6APoxpCkzbnjESpubJwy9eT7Hn0xjvngcxuIZfOKoGDAq2FfIIAPqOfzxXmfhj40+GPE+ow6RaRXGl38ybLc3aIsTuD8kW5SeueBgdwDkjPpojV0JliTc6BXHUEemccjk/nQMeGViwVgSpwwB6HGefwIquVliRYIxK6lSPN3KWTkAfe64BJyc/d5yTz594p+M/hXwrrU+mtLPeXMeVnWyt1cRSjAwzM6gnHBAyQQQSCMVreFPHvh74iW3kafd/v4lEtzY3MOyXAbg4yVK5AzgtgMAcE0COsYYlihWd0wNyqBksF4OSc8cr6H3qxVSe3uJriKRZzEI5cgI3DJgZDDHJzkDpjOeorzfV/jz4L0fV5rWJr/AFIAANPZKHiDAsCo3soPQHcuQc9aAPQoTeLaL5RR2Xf5iSEs6sTkKCTzgHqeuB0ByLDpeLIJEljkAj2+SRsUvnlt3JHGeOaxPDXjfR/GWkSXvh+4+0yRbBNbuNkkLMAcMpI6c8g7SVIDHFbs91FaWs01xPCggiMkryOERVAJLMT91eDyemDRcCQxkzCQSOMDBUH5W/Dt17Y96rXE/mqYbeRGckqCJSuHUg4yARnGTg+nQjOPLpv2iPCNtO8Jt9TutmB59rAojk+UZIEjKwGcjkdq7nw9qtt4t8P6fqemqYtOut1xkn5xIHbKkEcEPzkZGVI5BBIBtmcEM1qFuCJNsgWUfIQOR7Hgcccntyas1XO23Jd3CKAvmSyEAP1HqAD05x6D6WKAKxu1WeJXeOJXLoFlO12YMANo7jr+YrwC+sbfUf2smtrqJJIiyttZQwDLZBlODxkMAee4r3i4eJGdrmR18lvNDeUGJTIJHQ5AOM4wRgZ7E5i+DvDL+M38TrZI2vpjfOLhyVzH5Yym7aPk46e/XmgDxv4owpb/ALQPhGRFgiml+wyTSiPaHcXDLubnnhVHJ6KBnivoGJ2FuWCmQgZBUjEmRnK5JwMnAyf0rntV8G+G9a8WWOsajaPNq9mEltpPMkUIsbZUYBCnDtu5yeeeMCulVWDOWfcC2VGMbRgce/OT+NAHyN4Ll8UaX4q1yG38U6NoOtI7JeT6y6FpWDkOFlZHBO7kjcN3B+bbkdp8P9F1GL4wpq0/jDw9qF1JC89+mkyOwmR/3fPlxrGSZGjJBOc4cg9T6z4h8AeFfFWpC61fw8k865DzoTC8h+VRuZHUuAoGM5wOBg5BXw74F8O+Fp3j0bS7ayuN/mrcbmllZCQGXc/O3AA2gkDIPXkgGx4nt7678Kavb6Y0i6hJZTLamKXy2EpQ7MNkbTuxzkV4r8BPEnhjRvCmpW+pX+nWeoPfh3NzJHCzRbF2Hc5G4Kwk4BJUnOBu592jNnNJcLC8RlPyzGJgHHUDJHIPWuP8QfDLwbrepS6pqHh2NpVBMrxSGAT5JYsdjqNwJJLNyeevGADzT4LwRal8UvF95psat4czK0caDZFlpiYP3Rx0QSY+X5RkcZr0r4tQ3L/DPXLfSyY7o2nmMIzsJt43UyjORwELZHcEgA5rpdB0jTNDsPsGj6bBZWKbTH5AGJflA3kjlmwACzZJwDk1pSltuFDksdu5MZX359Px+lAHiXwM8UeCtJ8FvbTX1jpmriUm+e8lWI3HLeWVZj8yheMDodxwN2W9a0vUdL1LTRPoU8L2zyySK9ug2SkSsJSvQNlw+WHUtuzyCeV1D4UfD661IG48NqbiVQW+ztLDHgYXO2NlQc4ztHfJHU11Oj6XY+F9F+w2Vu0FjbEmOMNuCJ1JHfHUnOSTk8k5IBZkuFM8LgRu7x74ED4Zv74z0PBUgZwSPbIvVFvVEQwxb0ds5j24APJbkjjvxk81LQBFJbQyqqvGpCuJF46MDnP1zTlijRiyIqs3UgYzyT/Mk/iaKKAGyW8UpJdckrtJBI4zkfiD0PbtTpIY5dvmRo+xg67lB2sOhHvRRQA5VVECIoVVGAAMACmLbxLcNOq4kcBWIJ+bHTI6Z96KKAAwxtMsxQGRRgN/n6n8z6mpKKKAGPEkjRswyY23Lz0OCP5E0+iigBCqsVJAJU5BI6Hp/WkkjWaJ43GUdSrD1BoooAVVVRhQAMk4A7nk0tFFAH//2Q==\",\"uuid\":\"102369273d634942a8f9d183506867fb\"}}'); +INSERT INTO `tbl_log` VALUES (10314, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:20', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (10315, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:27', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD33D+bncvl7fu7ec+uc9PbFVLqeaK6iCSReVxvTHz5Odo9MNggZ2845PSn3SyyXFtGsLNFv3vIHA2FeRlT97PT269QDXG+Mvit4W8H3MdnqUt3NqClHezsxukiBBILncF9Pl3E/MpwQc0AdnGbmVpCxRIXX92VBDr9Qwx0wegx0wetDXL/ANpR2qKCvlmSUkH5RnC4OMc4bj2z254nwf8AFDwx46nj0+0vbu21FXLx29yghkmVMHI2ko3BOVznhjtAGa77apcOVG4AgHHIB6/yH5UAQPcmEfvomBMhRAnzbhjOR+APHXggZ4ysy3G5XiZWwf8AVk7QRjucE5z6YrzjxJ8cvCWg6zLpbHVLme1kKTtaW6bVdWKtGfMKk8jqoxyMHrW94T8d6J8QrG4l0ZGM1nhnhvYtrQuc+WeMqQdrcq2Rj3oA6tmZpGhwyAplZF556HtgEcHnrn2NRtKyuIJ0ch0A8yJWwWOQemdvY5J7+1QxsS9z5McvncM7lY+GwCIzyM8Efn96vlF7TwrqHxZ8VJ4x1G80yw+2XbxyW67n83z+FOEfjBbt26+oB9cK5E5ieaItgsEAw23PB6/Xn+VEcys7gyREeZsUK3OQMkH36/hXnfwr8LeFdL0y91LwZr17e2d+VjmeYoWR4ycDBjUqcMeGHIYEdiex1bTY9YtdQ0653x/bbKa2/dS8PGw2k8qcMN3ocbu/YA0BDcb5XN0fmPyIEG1Rx+J6c89+1NAdr9/LucIuDJCyZOcHBBJ4B46cZU9814H43+Dvgzwd4JvNbnv9ZW6WMJbwPcwNvnYYVfuDcAeTg52qxHStz9nDQ5rPwzqutSP8mozpFHHgfdiDfNnPcuwwQMbM85oA9nRyzSArgK2AeeeAe49+2f6B9Mik8yMPsZCequMEH/P4elPoAikdXcwCVo5Su4EAZxntkEH39Mj1FfPXh27s9E/aK8TP4rvYrOV/tH2O5u5R+7LMjxYkOQn7ngZIGDs77a+hsuLgDcNhQnbsOcg/3s479MVz/iPwX4d8XXCLruhw3floCl1uKSDBb5NykPt+YnGduT6gUAeL+KNRtNY/aK8PXPhi9ivGQ25up7Aj5wrM0oLLxJiHg4zlRt5IIr6Alu5cYhhG9l3RCVghkxgkYPIOD3HUHOOM5HhjwV4b8JtMNF0i1s5nJ3SK7SylDjgu+WCkoPlzjIz1reeDzImR5HOW3A8ZUg5GOOxHfPvmgD5q034h+LfFt1eNpXiDwz4Xs7afzY7W/aJN7SySOXDSI25xk7iNvY4yTR+z8zTfFLVZfNiYnT5mLQRiON8zRfdXaNq85AAXHAwOlesXfw38KXmqT67qHhuC4uxKJJpGeSNZJFzukaPIRlbCkgKc7mzuPXY0P4f+FdE1dtc0bTPsN1cI2/ybhwhVmV8bQxUDKjhfl/CgDorj7S8cqQgRuNpR9wwRnkdDg9ex6j8POLS7+E2pWc+pJP4TlnvHkn/4mQhDiVmYsW81RJgsSfm7Y2gDAr0tpVjP71kQM4VMt94kdPrnPHNcBqXwg8F3+qz3cvhu3RXVcLbyywqWGAMLGQqg9Gwvoc5JwAed/Avyv+Fp+Kf7E8//AIR7ypfJ27/L2+ePI3bv4tm/G75sbvevf1s4ku/PVEyQeqgkH1B7ZycjvnPrmpomjab4esIdN0rTYbKALuKQL8u4BVyzdWYgD5jycc1e87d/ql37ZNjjOCvvg/gfpyM8ZAPA/jVq974w8Y6N8PtIQmVZEluFZSQszr8u7CkhUjYsWUkYc5+7Xr1jpdjpGm21hb3kcsVrZx2qtdvhjbhcDlcA5O0bgOpPXpVRvA3hiLxTF4qSzZtSkkd5Lt7iWVWVonU5DOVC7TgcYAwAAOm9Obe8aWOa1Mrwv8kecNIvy5OCRlc+vB29+KAaLskscW3zJETewVdxxknoB70+oIW89EbMymNv412l+OpHoc5+voQRU9ABUMVrBCwaOJFYLsDY5C5ztB9PboKKKAFmtobgoZY1YxsGQkcqQQeD+Ap0kaTRlHGVPvj8Qex96KKABYYkYskaKxJJIUAnOM/ngflT6KKAGPGkm3cMlWDKc4IP+f0JFOZFcYZQwyDgjPIOR+tFFAC02ONIYxHGMIOgz09h7e1FFACqqoMKoUZJwBjknJ/WkSKOMAIirhQo2jHA6D6CiigB1FFFAH//2Q==\",\"uuid\":\"0685fad9ce0e405ba0f5a539b74db74f\"}}'); +INSERT INTO `tbl_log` VALUES (10316, 63, '用户', '183.131.72.145/122.233.38.5', '2026-10-13 10:46:32', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (10317, NULL, '接口日志', '183.131.72.145/122.233.38.5', '2026-10-13 10:46:32', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"oa57\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"0685fad9ce0e405ba0f5a539b74db74f\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (10318, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:33', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (10319, 63, '接口日志', '183.131.72.203/122.233.38.5', '2026-10-13 10:46:34', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (10320, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:34', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10321, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:34', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10322, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:34', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (10323, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:35', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10324, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:40', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"供应商\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":0.000000,\"allNeedPay\":116500257.436400,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Excel初始化默认供应商\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":89,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"1\",\"supplier\":\"浙江瑞银电子有限公司\",\"taxNum\":\"\",\"taxRate\":0.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"供应商\"}]}}'); +INSERT INTO `tbl_log` VALUES (10325, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:41', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10326, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:41', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10327, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:41', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"客户\\\",\\\"contacts\\\":\\\"\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":1,\"rows\":[{\"accountNumber\":\"\",\"address\":\"\",\"advanceIn\":0.000000,\"allNeedGet\":12430066.000000,\"allNeedPay\":0.000000,\"bankName\":\"\",\"beginNeedGet\":0.000000,\"beginNeedPay\":0.000000,\"contacts\":\"\",\"creator\":63,\"deleteFlag\":\"0\",\"description\":\"Stock Status客户\",\"email\":\"\",\"enabled\":true,\"fax\":\"\",\"id\":90,\"isystem\":1,\"phoneNum\":\"\",\"sort\":\"2\",\"supplier\":\"TNB\",\"taxNum\":\"\",\"taxRate\":10.000000,\"telephone\":\"\",\"tenantId\":63,\"type\":\"客户\"}]}}'); +INSERT INTO `tbl_log` VALUES (10328, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:41', 0, 'SupplierController.getList(..)', NULL, 'GET /apis/supplier/list', '{\"search\":\"{\\\"supplier\\\":\\\"\\\",\\\"type\\\":\\\"会员\\\",\\\"telephone\\\":\\\"\\\",\\\"phonenum\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10329, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:43', 0, 'CustomerCategoryController.getTreeList(..)', NULL, 'GET /apis/customerCategory/treeList', '{}', '{\"code\":200,\"data\":{\"data\":[],\"message\":\"成功\"}}'); +INSERT INTO `tbl_log` VALUES (10330, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:43', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10331, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:43', 0, 'DepotController.getList(..)', NULL, 'GET /apis/depot/list', '{\"search\":\"{\\\"name\\\":\\\"\\\",\\\"remark\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":25,\"isDefault\":true,\"name\":\"半成品仓库\",\"remark\":\"总部入库物料\",\"sort\":\"1\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000},{\"address\":\"\",\"deleteFlag\":\"0\",\"enabled\":true,\"id\":26,\"isDefault\":false,\"name\":\"成品仓库\",\"remark\":\"Stock Status成品\",\"sort\":\"2\",\"tenantId\":63,\"truckage\":0.000000,\"type\":0,\"warehousing\":0.000000}]}}'); +INSERT INTO `tbl_log` VALUES (10332, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:43', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10333, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:46', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10334, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:46', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10335, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:46', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10336, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:46', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10337, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:46', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"其它\\\",\\\"subType\\\":\\\"销售订单\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":4,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718483000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSDD00000001726\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1719,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD00000001726\",\"operTime\":1789732682000,\"operTimeStr\":\"2026-09-18 15:58:02\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"totalPrice\":735000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789726236000,\"creator\":63,\"debt\":340000000.000000,\"defaultNumber\":\"XSDD00000001724\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":340000000.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1718,\"lastDebt\":340000000.000000,\"lastDeposit\":0.000000,\"materialCount\":1000000.000000,\"materialsList\":\"3PH APEC3-WC 3PH APEC3-WC 3PH APEC3-WC \",\"number\":\"XSDD00000001724\",\"operTime\":1789725706000,\"operTimeStr\":\"2026-09-18 14:01:46\",\"organId\":90,\"organName\":\"TNB\",\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"0\",\"subType\":\"销售订单\",\"totalPrice\":340000000.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":242550.000000,\"defaultNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":242550.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1580,\"lastDebt\":242550.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":3000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303475-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303475\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":242550.000000,\"type\":\"其它\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售订单\",\"changeAmount\":0.000000,\"createTime\":1785355200000,\"creator\":63,\"debt\":323400.000000,\"defaultNumber\":\"XSDD-42303447-1PH-WS79-ADD1\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":323400.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0.000000,\"hasBackFlag\":false,\"id\":1574,\"lastDebt\":323400.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"materialCount\":4000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSDD-42303447-1PH-WS79-ADD1\",\"operTime\":1785355200000,\"operTimeStr\":\"2026-07-30 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status客户PO:42303447\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"2\",\"subType\":\"销售订单\",\"tenantId\":63,\"totalPrice\":323400.000000,\"type\":\"其它\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10338, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:46', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10339, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:46', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (10340, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:46', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10341, 63, '接口日志', '183.131.72.126/122.233.38.5', '2026-10-13 10:46:46', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10342, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:47', 0, 'AccountController.getAccount(..)', NULL, 'GET /apis/account/getAccount', '{}', '{\"code\":200,\"data\":{\"accountList\":[{\"currentAmount\":200.000000,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":18,\"initialAmount\":200.000000,\"isDefault\":false,\"name\":\"SMT账户\",\"remark\":\"bbbb\",\"serialNo\":\"1234131324\",\"tenantId\":63},{\"currentAmount\":2187859.266400,\"deleteFlag\":\"0\",\"enabled\":true,\"id\":17,\"initialAmount\":100.000000,\"isDefault\":true,\"name\":\"瑞银账户1\",\"remark\":\"aabb\",\"serialNo\":\"zzz111\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10343, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:47', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10344, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:47', 0, 'PersonController.getPersonByNumType(..)', NULL, 'GET /apis/person/getPersonByNumType', '{\"typeNum\":\"1\"}', '[]'); +INSERT INTO `tbl_log` VALUES (10345, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:47', 0, 'DepotHeadController.getList(..)', NULL, 'GET /apis/depotHead/list', '{\"search\":\"{\\\"number\\\":\\\"\\\",\\\"materialParam\\\":\\\"\\\",\\\"type\\\":\\\"出库\\\",\\\"subType\\\":\\\"销售\\\",\\\"linkNumber\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"beginTime\\\":\\\"2026-07-13\\\",\\\"endTime\\\":\\\"2026-10-13\\\",\\\"createTimeRange\\\":[\\\"2026-07-12T16:00:00.000Z\\\",\\\"2026-10-12T16:00:00.000Z\\\"]}\"}', '{\"code\":200,\"data\":{\"total\":29,\"rows\":[{\"accountId\":17,\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"accountName\":\"瑞银账户1\",\"backAmount\":0,\"changeAmount\":0.000000,\"createTime\":1789718584000,\"creator\":63,\"debt\":808500.000000,\"defaultNumber\":\"XSCK00000001728\",\"deleteFlag\":\"0\",\"deposit\":0,\"discount\":0.000000,\"discountLastMoney\":808500.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1720,\"lastDebt\":808500.000000,\"lastDeposit\":0.000000,\"linkNumber\":\"XSDD00000001726\",\"materialCount\":10000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK00000001728\",\"operTime\":1789732981000,\"operTimeStr\":\"2026-09-18 16:03:01\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"现付\",\"purchaseStatus\":\"0\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"totalPrice\":735000.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-87\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1671,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-87\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1786305600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2159-86\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1670,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303506-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2159-86\",\"operTime\":1786305600000,\"operTimeStr\":\"2026-08-10 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2159\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2158-85\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1669,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2158-85\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2158\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-84\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1668,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-84\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785873600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-DO_2157-83\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1667,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-blom-tukar-po-date-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-DO_2157-83\",\"operTime\":1785873600000,\"operTimeStr\":\"2026-08-05 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:DO_2157\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1785268800000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2150-69\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1665,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2150-69\",\"operTime\":1785268800000,\"operTimeStr\":\"2026-07-29 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2150\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784750400000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2142-68\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1664,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303480-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2142-68\",\"operTime\":1784750400000,\"operTimeStr\":\"2026-07-23 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2142\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-1PH-WS79-ADD1-67\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1663,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-1PH-WS79-ADD1-67\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:未填写\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"},{\"accountIdList\":\"\",\"accountMoneyList\":\"\",\"backAmount\":0.000000,\"billType\":\"销售\",\"changeAmount\":0.000000,\"createTime\":1784145600000,\"creator\":63,\"debt\":80850.000000,\"defaultNumber\":\"XSCK-INV_2134-66\",\"deleteFlag\":\"0\",\"deposit\":0.000000,\"discount\":100.000000,\"discountLastMoney\":80850.000000,\"discountMoney\":0.000000,\"fileName\":\"\",\"finishDeposit\":0,\"hasBackFlag\":false,\"id\":1662,\"lastDebt\":80850.000000,\"lastDeposit\":0.000000,\"linkApply\":\"\",\"linkNumber\":\"XSDD-42303475-1PH-WS79-ADD1\",\"materialCount\":1000.000000,\"materialsList\":\"1PH WS79 1PH WS79 1PH WS79 \",\"number\":\"XSCK-INV_2134-66\",\"operTime\":1784145600000,\"operTimeStr\":\"2026-07-16 00:00:00\",\"organId\":90,\"organName\":\"TNB\",\"otherMoney\":0.000000,\"payType\":\"记账\",\"remark\":\"Stock Status:1PH WS79-112,400 (+1);客户发票:INV_2134\",\"salesMan\":\"\",\"source\":\"0\",\"status\":\"1\",\"subType\":\"销售\",\"tenantId\":63,\"totalPrice\":80850.000000,\"type\":\"出库\",\"userName\":\"admin\"}]}}'); +INSERT INTO `tbl_log` VALUES (10346, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:47', 0, 'PlatformConfigController.getInfoByKey(..)', NULL, 'GET /apis/platformConfig/getInfoByKey', '{\"platformKey\":\"bill_excel_url\"}', '{\"code\":200,\"data\":{\"id\":18,\"platformKey\":\"bill_excel_url\",\"platformKeyInfo\":\"单据Excel地址\",\"platformValue\":\"\"}}'); +INSERT INTO `tbl_log` VALUES (10347, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:47', 0, 'UserController.getUserList(..)', NULL, 'GET /apis/user/getUserList', '{}', '[{\"id\":63,\"userName\":\"admin\"},{\"id\":149,\"userName\":\"admin2\"}]'); +INSERT INTO `tbl_log` VALUES (10348, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:47', 0, 'SystemConfigController.getCurrentInfo(..)', NULL, 'GET /apis/systemConfig/getCurrentInfo', '{}', '{\"code\":200,\"data\":{\"auditPrintFlag\":\"1\",\"companyAddress\":\"地址1\",\"companyContacts\":\"小李\",\"companyName\":\"公司test\",\"companyTel\":\"12345678\",\"customerFlag\":\"0\",\"customerStaticPriceFlag\":\"0\",\"deleteFlag\":\"0\",\"depotFlag\":\"0\",\"forceApprovalFlag\":\"1\",\"id\":11,\"inOutManageFlag\":\"0\",\"materialPriceTaxFlag\":\"0\",\"minusStockFlag\":\"0\",\"moveAvgPriceFlag\":\"0\",\"multiAccountFlag\":\"1\",\"multiBillType\":\"\",\"multiLevelApprovalFlag\":\"0\",\"overLinkBillFlag\":\"0\",\"purchaseBySaleFlag\":\"0\",\"saleAgreement\":\"注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。\",\"tenantId\":63,\"updateUnitPriceFlag\":\"1\",\"zeroChangeAmountFlag\":\"0\"}}'); +INSERT INTO `tbl_log` VALUES (10349, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:47', 0, 'DepotController.findDepotByCurrentUser(..)', NULL, 'GET /apis/depot/findDepotByCurrentUser', '{}', '{\"code\":200,\"data\":[{\"depotName\":\"半成品仓库\",\"isDefault\":true,\"id\":25},{\"depotName\":\"成品仓库\",\"isDefault\":false,\"id\":26}]}'); +INSERT INTO `tbl_log` VALUES (10350, 63, '接口日志', '183.131.72.35/122.233.38.5', '2026-10-13 10:46:47', 0, 'SupplierController.findBySelectCus(..)', NULL, 'POST /apis/supplier/findBySelect_cus', '{\"jsonObject\":{\"limit\":1}}', '[{\"supplier\":\"TNB\",\"id\":90}]'); +INSERT INTO `tbl_log` VALUES (10351, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:48', 0, 'DeliveryPlanController.getList(..)', NULL, 'GET /apis/deliveryPlan/list', '{\"search\":\"{\\\"planNumber\\\":\\\"\\\",\\\"sourceBillNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"createTime\":1789720385000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":7,\"materialsList\":\"1PH WS79\",\"planNumber\":\"JH00000001741\",\"planQuantity\":10000.000000,\"saleOrderNumber\":\"XSDD00000001726\",\"shippedQuantity\":0.000000,\"sourceBillId\":1720,\"sourceBillNumber\":\"XSCK00000001728\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"createTime\":1789717298000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"id\":6,\"materialsList\":\"3PH APEC3-WC\",\"planNumber\":\"JH00000001717\",\"planQuantity\":149.000000,\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"shippedQuantity\":0.000000,\"sourceBillId\":1714,\"sourceBillNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"sourceType\":\"sale\",\"status\":\"2\",\"tenantId\":63}]}}'); +INSERT INTO `tbl_log` VALUES (10352, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:49', 0, 'SaleShipmentController.getList(..)', NULL, 'GET /apis/saleShipment/list', '{\"search\":\"{\\\"shipmentNumber\\\":\\\"\\\",\\\"saleOutNumber\\\":\\\"\\\",\\\"saleOrderNumber\\\":\\\"\\\",\\\"logisticsNo\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":2,\"rows\":[{\"actualQuantity\":10000.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789720647000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789720682000,\"createTime\":1789720588000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":7,\"deliveryPlanNumber\":\"JH00000001741\",\"differenceQuantity\":0.000000,\"id\":17,\"materialsList\":\"1PH WS79\",\"planQuantity\":10000.000000,\"plannedShipTime\":1789734921000,\"saleOrderNumber\":\"XSDD00000001726\",\"saleOutId\":1720,\"saleOutNumber\":\"XSCK00000001728\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789720682000,\"shipmentNumber\":\"FHTZ00000001742\",\"sourceType\":\"sale\",\"status\":\"2\"},{\"actualQuantity\":149.000000,\"approveBy\":63,\"approveByName\":\"admin\",\"approveRemark\":\"审批通过\",\"approveTime\":1789717350000,\"confirmBy\":63,\"confirmByName\":\"admin\",\"confirmTime\":1789717357000,\"createTime\":1789717342000,\"creator\":63,\"creatorName\":\"admin\",\"customerId\":90,\"customerName\":\"TNB\",\"deleteFlag\":\"0\",\"deliveryPlanId\":6,\"deliveryPlanNumber\":\"JH00000001717\",\"differenceQuantity\":0.000000,\"id\":16,\"logisticsCompany\":\"FEXD\",\"logisticsNo\":\"FD10000001\",\"materialsList\":\"3PH APEC3-WC\",\"planQuantity\":149.000000,\"plannedShipTime\":1789717304000,\"receiver\":\"Hank\",\"receiverAddress\":\"5433 Grand Ave\",\"receiverPhone\":\"60001-1111\",\"saleOrderNumber\":\"XSDD-42260529-3PH-APEC3-WC-OV\",\"saleOutId\":1714,\"saleOutNumber\":\"XSCK-3PH-APEC3-WC-OV-28\",\"shipBy\":63,\"shipByName\":\"admin\",\"shipTime\":1789717357000,\"shipmentNumber\":\"FHTZ00000001718\",\"sourceType\":\"sale\",\"status\":\"2\"}]}}'); +INSERT INTO `tbl_log` VALUES (10353, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:58', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (10354, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:58', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10355, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:58', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10356, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:58', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD347srggDPOR1FVDLJJLK0QkWSHIMLkYlGDtI5OAT39iD04f8AamWVxLE0UakKGY5LEtgYxkYP1yO4FeW+O/A/hXxFqT6p4p8Y3Ni9wN9hZXF/FBFbgRorKFkDcl1yxXHXGMjJAZ6rcRSSr+7ldCoJCqQAx7ZOCev/ANcEcUksk6tJ5duHVY9ynzMF35+Xpx06+9fOnw1s7uw+Kuo6N4a1O81bwdbNIbuRQGhwyfK20/Kzh1UBlGXEZIG3Ir6RUMEUOQWxyQMAn6UARxvEJXhWYNIDuKFwSuf1x/jVQSec09nuuo3LYaROQhKhsKxHTk89vb5a8b+M3gSebQ9c8X6prd1cSW/2f7DYRkiC23NHHJwxP3uvy7eRk5zx2fwUZU+D2iO7BVUXBJJwAPPkoBHdNcQW42TXKBlQMxkYA4zjcenemTtPmaGOaNZpIma3GwjaQACSeQeWHYfjVDxDqg8O+Hb7UEtbmVLeKSdxbhSwA+Zz85A6bjz6dCcKc/wP4k0bxl4ZN9pTXbQCZopVu12ypIMHnacZwVbKnvn72aAOoQFUVSxYgYLHGT78VTkuDLGWhkcMQ4iRcDzGA6HcvBBB49s8845Twd8RbDxvq+qW+ixX0ltaSJuuZ440iCHIG0bvMJfaxGRwOuOh6bWL+LRdNudSltd9pZQTXcxTG9QiljtB6sfm7jvzzQBYhM0UUJmbO7HmGV1BQnGFG1QDzx2qYOzHAQjDFW3ccY6j17fn6jFeSN8e/Ar6ZHcSRau80c4VbZoF84KPmD7t+0rkAYLbiQCQetemaPrlprmk2+oWSylZ7aO5WF1CyKrruUHnAOPfHfOCDQBbXz5ngly0CDd5kLqpLdhyCcevFWKYkm9pF2MuxtuWGA3AOR6jnH1Bp9AFcpAlxHGh8t2ZptqDAfjBLev3h+OPSvOvEd18MfF9xcWfiLUrGSbSbiaELPdG0eJ2IEgALL5mCvXBHHGTnPphU7w244AI28YPTn1//XXB6z8MfAupavealq2hRNcTyq8skU80Q+YY3MFcLksDkgd8nqTQB5T4BuLbRPj1e6f4Oubq58NP5nnpAGmRkWIkc45VZjtV/Qj5iGJP0ZKfJlNzJNthCbWXBIBz94+gHPb3J44ytB8IaH4WsDa6Hp8FmC24yBNzscsRuc/M2N7AZOQDgGtSNxGZHKskG0S+ZI56nORg8qAAPz9qAPMvjdrmnHwHrekjWLAXgWDNj9pTzy3nRt/q/vY2nd+APTOU+DGtaO/w30PRG1q2GpyPPizS5UTriWR8bR8wBUE5PY9elb+t/CrwbrmqS39/oTT3VwAJJku5U24CquFDhQAo7DGF6UmlfCrwl4d1uPV9K0w2s8EbeXIlxM7xsQQSAWIbKsRgg9B60AdnLbQXFo9rPEk1vIhjkjlG9XUjBDA9QR1z1r5l07Xbj4WS/EXwrvnTEROnF70I6FmEaOu0YMhjmSQ7cH91ggY+X6StZL1ogk0aiRZSjMecoOQ3QAkjA44yc4GCow/Enw58LeLtUi1HXNNN1cxQ+QrfaJIxsDFgMKw6Fm/P6YAOW+CegPoXw6t7uKzX7ZqiPdySsykkglYk4AO3ZhhknBZ+ma6vxhCYPhp4jVgPMOk3JkIYtlvJbPLcn8e2K2Y3lj1BozAkaysWZ95IfjC4zj5sJyoGMc57GK7s49YtNQ02++zTQyxtE0a7sqrqykNggjKnqCDycetAHk37N+lWK+FdT1gW0f8AaD3rWpuDy3lKkbBB6DcxJx14znAx7DbQWdlJFZ20IhEcO2ONEKosYOAo7YGcAdgeMCqXhvwto3hHTpLDQ7P7JaySmZk815MuQATlyT0UflVxQq3aRS+dJKg3RzGMgYOcqWXjtnBwPu9SM0BYla7hSfyZWEbkjZvIHmZ/u+vPGOv5jM9ZsVvN5MYvEWVI2j2IsQDKw2gMCDgDqSMccjJHXSoAKKKKACiiigBERY0VEUKqjAUDAA9KWiigApgiQTNKB87KFJz1Azj+ZoooASSCGZ0eSKN2jOULKCVPt6dBUcdjax25gEKmJtuUf5gcAAdfZR+VFFAEht4TE0TRq0bEsVYZBJOe/vUlFFABRRRQB//Z\",\"uuid\":\"667efed9fbba42da9b4615e89d748752\"}}'); +INSERT INTO `tbl_log` VALUES (10357, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:46:58', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (10358, 63, '用户', '183.131.72.229/122.233.38.5', '2026-10-13 10:47:03', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (10359, NULL, '接口日志', '183.131.72.229/122.233.38.5', '2026-10-13 10:47:03', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"31vr\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"667efed9fbba42da9b4615e89d748752\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (10360, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:03', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (10361, 63, '接口日志', '183.131.72.125/122.233.38.5', '2026-10-13 10:47:04', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (10362, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:04', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (10363, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:04', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10364, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:04', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10365, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:04', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10366, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:13', 0, 'UserController.logout(..)', NULL, 'GET /apis/user/logout', '{}', '{\"code\":400}'); +INSERT INTO `tbl_log` VALUES (10367, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:13', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10368, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:14', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10369, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:14', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (10370, NULL, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:47:14', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3gTyO88aQ/PGwC78qrggHIOPqOM9PepHfy9vyMwZgpKjOM9z7f56ZNRXDzCOXarKVwUdAHyO+V6+uQOSOhz04jxr8WPC/grWILDUGvbq+VC7w2OG8kEDHmAuoyRyByQOeMgkA7OCb7VdOyi4RYgNpOPLlBzypGc9vcYHTJzNHbiKCOISynZg72cszeuSeuf8A9WOK8zsfjd4Tv/EWk6dYrqMj37JEqxwBUjlmdRiTcw+ZTnJUMPmyCeRXpZjkl83kwMcKHQAsQDnOTnjnoRxz14NAErlhtCjOWwTjgD8x9PxqNTc+cd6QiLJAw5LY7Hp39O2Opzx4/wDFXXdR1fWNP+GnhVxb31+GN7tkREWIgnYxGSuVUuwGCVIGG34rF/Zl/wCZp/7dP/a1AHu0bLOjwLPK5VVbz1I5JyRgjjIwDjGMEZzmi2e42To6szRuVjaXClxgHJKjGMk9B+Gc0+3gMWc7VBJwiKAuOAvbOQAP17Yx8kXNl4Yvvi14rj8WancafYLe3jRyW6ks8vnkKvCPgYLHO3tQB9bSfaFuFbzF8jIyqoS3pg9eMnOeMY75yGTTM32YiGYBpBu4I249cH/FTj0INec/C/wx4WsNEvrzwfqtxfxX5USm5O5VeLeFXIjRkOXDcjdgKRwQT3Gta+nh7wxda3eWt1cx2qb5Y7OEmQruwWCsRgAfMcngA8nGaAZpzRyM29JD8oyEzgFh7+h5B4PYjBFOj3SRRPKhjkwGKB87TjkHHXrXFW3xK8Oar4FuPGUc9/Bp9hIUni8vEu8FcRlQSp3Fo8EHHzckfNTNP+JuhXngG+8ZQyXxsrFjDNFcoFkMmV2rhcrk71AI4+YbiMZAB2yqVtgLZg3GVMjlgw6/e5PPrzj36VNXPeDPFll400I6tp1le2tqZnjT7XEqGQjBLLtJBXJIznqrDtXQ0AU75kt1+04USkeWDuRSQSOhbuBk46GvAfCl/aaB+0V4im8W3cVtMwn+yz38inZuZGj+flUPk5A5GAdvfFfQ0zxRhXlHRvlO0nBwf17fjjvXkPxYtI5/Edlc3Pw4uPFVq9mqw3VlcTRvGwdyyP5QbK4ZCuQOrYJ5wAcP49vdE1r48eGzoN5a3KGWyinuYcSq0vnHkt0kIQoOp4AXtgfSCLbzRLbJFHLaqoU5+ZRgKVGD14Oc+1fPPhbwHrviTx1pGuN4XXwtoujvERHJCRLL5LBwCpCtI7ZA8wqBgdWYYP0OhkW98rEccCR/u1UjL9O3bb07g7hQB83eDNZ8ZeGfEOo+ItT8A+I9Z1q/DJLcyRyxAISp2hREQOVHsAFACgHNH4Ha9qOka3cWth4fu9RS+ubSKe7g3bbJN7As+FI2kMTyQPkz2yPpgRX1vZE+dE0sW7ZGke2Mr/CCAC3A7Lj0561jeE/Bei+DLO8fQbCNGuUQsyTyN5+xTtJ3swXln6cYIosB1BUEqTng5GDj/wDXXnFnffB7U4GvxJ4Uka6lkmd79YhMzs7Fiwm+cZYnGe2McYrvVtmubeD+0EiaaKQSDyiwUMCcEd+nrXF3Pwj+Hl4rXr6DBJ8gy0Fy8SNtGM4R1QHjkgDnJPegDzT4HvGvxR8U/wBheadCMMwtlLOIm/fAwBi3O7YHxuG7G/3r3e7tF8Q6Bf6deQz2sV5FLayDK7wjAoWB5GcHjr+I6t0DSNI0LTzYaLZxWltGwzFHHs+bYvLHGWYqFyzZJ7mr8jtFcIzOBC42YI6Pnjn35HPfaB15APjqzu9XtvDuqfD7AGo3OtQQpaFIz8/zpKvmdBmRLcZ3Y+XrgnOp4rvrjwjp3jLwLHJ9ktZNbimt7LaJM2xDvnfyei2h5bPH+9X0HP8ADDwOmtv4gn0hFvvtX2xp5LqUL5pfduKl9v3u2MdsVR1j4beD/Eeq3Wq6nZfbZ5lUyX3nSqMqFUA7GCMMDBKgYCnJzzQFje8AaA3hfwHo2jyrIs8FuGnR2VikrkvIuV4IDMwGM8AcnrXSVAom+0hnLBDHyqsCobPPYH6duvA7z0AFRz28NzHsnhjlTOdsihhn8aKKAJKKKKACiiigApFVUGFUKMk4AxyTk/rRRQAKqooVVCqowABgAUtFFADVjVGdlGC53N7nAH8gKY9rbyTLM8ETSrja7ICwxzwaKKAJaKKKAP/Z\",\"uuid\":\"b28799278c624d8a8e6f09a04ffeedcc\"}}'); +INSERT INTO `tbl_log` VALUES (10371, 63, '用户', '60.163.165.238/122.233.38.5', '2026-10-13 10:49:04', 0, '登录admin', NULL, NULL, NULL, NULL); +INSERT INTO `tbl_log` VALUES (10372, NULL, '接口日志', '60.163.165.238/122.233.38.5', '2026-10-13 10:49:04', 0, 'UserController.login(..)', NULL, 'POST /apis/user/login', '{\"userParam\":{\"code\":\"g45w\",\"loginName\":\"admin\",\"password\":\"******\",\"uuid\":\"b28799278c624d8a8e6f09a04ffeedcc\"}}', '{\"code\":200,\"data\":{\"pwdSimple\":\"******\",\"user\":{\"deleteFlag\":\"0\",\"description\":\"\",\"email\":\"666666@qq.com\",\"id\":63,\"ismanager\":1,\"isystem\":1,\"leaderFlag\":\"0\",\"loginName\":\"admin\",\"password\":\"******\",\"phonenum\":\"1123123123132\",\"position\":\"主管\",\"status\":0,\"tenantId\":63,\"username\":\"admin\"},\"msgTip\":\"user can login\",\"token\":\"******\"}}'); +INSERT INTO `tbl_log` VALUES (10373, 63, '接口日志', '36.249.93.184/122.233.38.5', '2026-10-13 10:49:04', 0, 'FunctionController.findMenuByPNumber(..)', NULL, 'POST /apis/function/findMenuByPNumber', '{\"jsonObject\":{\"userId\":63,\"pNumber\":0}}', '[{\"component\":\"/layouts/TabLayout\",\"icon\":\"home\",\"id\":0,\"text\":\"首页\",\"url\":\"/dashboard/analysis\",\"textEn\":\"Home\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/SaleOrderList\",\"icon\":\"profile\",\"id\":242,\"text\":\"销售订单\",\"url\":\"/bill/sale_order\",\"textEn\":\"Sales Orders\"},{\"component\":\"/bill/SaleOutList\",\"icon\":\"profile\",\"id\":41,\"text\":\"销售出库\",\"url\":\"/bill/sale_out\",\"textEn\":\"Sales Shipments\"},{\"component\":\"/bill/DeliveryPlanList\",\"icon\":\"profile\",\"id\":271,\"text\":\"交货计划管理\",\"url\":\"/bill/delivery_plan\",\"textEn\":\"Delivery Plans\"},{\"component\":\"/bill/SaleShipmentList\",\"icon\":\"car\",\"id\":268,\"text\":\"发货管理\",\"url\":\"/bill/sale_shipment\",\"textEn\":\"Shipment Management\"},{\"component\":\"/bill/SaleBackList\",\"icon\":\"profile\",\"id\":200,\"text\":\"销售退货\",\"url\":\"/bill/sale_back\",\"textEn\":\"Sales Returns\"},{\"component\":\"/bill/RetailOutList\",\"icon\":\"profile\",\"id\":210,\"text\":\"零售出库\",\"url\":\"/bill/retail_out\",\"textEn\":\"Retail Shipments\"},{\"component\":\"/bill/RetailBackList\",\"icon\":\"profile\",\"id\":211,\"text\":\"零售退货\",\"url\":\"/bill/retail_back\",\"textEn\":\"Retail Returns\"}],\"icon\":\"shopping-cart\",\"id\":38,\"text\":\"销售管理\",\"url\":\"/billB\",\"textEn\":\"Sales Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/bill/PurchaseApplyList\",\"icon\":\"profile\",\"id\":261,\"text\":\"请购单\",\"url\":\"/bill/purchase_apply\",\"textEn\":\"Purchase Requisitions\"},{\"component\":\"/bill/PurchaseOrderList\",\"icon\":\"profile\",\"id\":241,\"text\":\"采购订单\",\"url\":\"/bill/purchase_order\",\"textEn\":\"Purchase Orders\"},{\"component\":\"/bill/PurchaseInList\",\"icon\":\"profile\",\"id\":33,\"text\":\"采购入库\",\"url\":\"/bill/purchase_in\",\"textEn\":\"Purchase Receipts\"},{\"component\":\"/bill/PurchaseBackList\",\"icon\":\"profile\",\"id\":199,\"text\":\"采购退货\",\"url\":\"/bill/purchase_back\",\"textEn\":\"Purchase Returns\"}],\"icon\":\"retweet\",\"id\":32,\"text\":\"采购管理\",\"url\":\"/bill\",\"textEn\":\"Purchase Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/production/PackBomList\",\"icon\":\"profile\",\"id\":263,\"text\":\"生产方案\",\"url\":\"/production/pack_bom\",\"textEn\":\"Production BOMs\"},{\"component\":\"/production/OrderList\",\"icon\":\"profile\",\"id\":264,\"text\":\"生产工单\",\"url\":\"/production/order\",\"textEn\":\"Production Orders\"},{\"component\":\"/production/RequisitionList\",\"icon\":\"profile\",\"id\":265,\"text\":\"领料管理\",\"url\":\"/production/requisition\",\"textEn\":\"Material Requisitions\"},{\"component\":\"/production/ReportList\",\"icon\":\"profile\",\"id\":266,\"text\":\"完工报工\",\"url\":\"/production/report\",\"textEn\":\"Production Reports\"}],\"icon\":\"cluster\",\"id\":262,\"text\":\"生产管理\",\"url\":\"/production\",\"textEn\":\"Production Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/MaterialStock\",\"icon\":\"profile\",\"id\":246,\"text\":\"商品库存\",\"url\":\"/report/material_stock\",\"textEn\":\"Product Inventory\"},{\"component\":\"/bill/OtherInList\",\"icon\":\"profile\",\"id\":201,\"text\":\"其它入库\",\"url\":\"/bill/other_in\",\"textEn\":\"Other Receipts\"},{\"component\":\"/bill/OtherOutList\",\"icon\":\"profile\",\"id\":202,\"text\":\"其它出库\",\"url\":\"/bill/other_out\",\"textEn\":\"Other Shipments\"},{\"component\":\"/bill/HeadquartersInList\",\"icon\":\"profile\",\"id\":270,\"text\":\"总部入库\",\"url\":\"/bill/headquarters_in\",\"textEn\":\"Headquarters Receipts\"}],\"icon\":\"hdd\",\"id\":239,\"text\":\"仓库管理\",\"url\":\"/billD\",\"textEn\":\"Warehouse Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/financial/MoneyInList\",\"icon\":\"profile\",\"id\":204,\"text\":\"收款单\",\"url\":\"/financial/money_in\",\"textEn\":\"Receipt Vouchers\"},{\"component\":\"/financial/MoneyOutList\",\"icon\":\"profile\",\"id\":205,\"text\":\"付款单\",\"url\":\"/financial/money_out\",\"textEn\":\"Payment Vouchers\"}],\"icon\":\"money-collect\",\"id\":44,\"text\":\"财务管理\",\"url\":\"/financial\",\"textEn\":\"Finance Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/asset/AssetDashboard\",\"icon\":\"dashboard\",\"id\":276,\"text\":\"资产汇总\",\"url\":\"/asset\",\"textEn\":\"Asset Overview\"},{\"component\":\"/asset/AssetList\",\"icon\":\"profile\",\"id\":273,\"text\":\"资产台账\",\"url\":\"/asset/ledger\",\"textEn\":\"Asset Ledger\"},{\"component\":\"/asset/DeviceList\",\"icon\":\"tool\",\"id\":274,\"text\":\"设备台账\",\"url\":\"/asset/device\",\"textEn\":\"Device Ledger\"},{\"component\":\"/asset/InventoryList\",\"icon\":\"scan\",\"id\":275,\"text\":\"资产盘点\",\"url\":\"/asset/inventory\",\"textEn\":\"Asset Inventory\"}],\"icon\":\"bank\",\"id\":272,\"text\":\"资产管理\",\"url\":\"/assetManagement\",\"textEn\":\"Asset Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/material/MaterialCategoryList\",\"icon\":\"profile\",\"id\":22,\"text\":\"商品类别\",\"url\":\"/material/material_category\",\"textEn\":\"Product Categories\"},{\"component\":\"/material/MaterialList\",\"icon\":\"profile\",\"id\":23,\"text\":\"商品信息\",\"url\":\"/material/material\",\"textEn\":\"Product Information\"},{\"component\":\"/system/UnitList\",\"icon\":\"profile\",\"id\":220,\"text\":\"多单位\",\"url\":\"/system/unit\",\"textEn\":\"Multiple Units\"},{\"component\":\"/material/MaterialAttributeList\",\"icon\":\"profile\",\"id\":247,\"text\":\"多属性\",\"url\":\"/material/material_attribute\",\"textEn\":\"Product Attributes\"}],\"icon\":\"shopping\",\"id\":21,\"text\":\"商品管理\",\"url\":\"/material\",\"textEn\":\"Product Management\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/report/AccountReport\",\"icon\":\"profile\",\"id\":207,\"text\":\"账户统计\",\"url\":\"/report/account_report\",\"textEn\":\"Account Summary\"},{\"component\":\"/report/RetailOutReport\",\"icon\":\"profile\",\"id\":259,\"text\":\"零售统计\",\"url\":\"/report/retail_out_report\",\"textEn\":\"Retail Summary\"},{\"component\":\"/report/BuyInReport\",\"icon\":\"profile\",\"id\":208,\"text\":\"采购统计\",\"url\":\"/report/buy_in_report\",\"textEn\":\"Purchase Summary\"},{\"component\":\"/report/SaleOutReport\",\"icon\":\"profile\",\"id\":209,\"text\":\"销售统计\",\"url\":\"/report/sale_out_report\",\"textEn\":\"Sales Summary\"},{\"component\":\"/report/InDetail\",\"icon\":\"profile\",\"id\":226,\"text\":\"入库明细\",\"url\":\"/report/in_detail\",\"textEn\":\"Inbound Details\"},{\"component\":\"/report/OutDetail\",\"icon\":\"profile\",\"id\":227,\"text\":\"出库明细\",\"url\":\"/report/out_detail\",\"textEn\":\"Outbound Details\"},{\"component\":\"/report/InMaterialCount\",\"icon\":\"profile\",\"id\":228,\"text\":\"入库汇总\",\"url\":\"/report/in_material_count\",\"textEn\":\"Inbound Summary\"},{\"component\":\"/report/OutMaterialCount\",\"icon\":\"profile\",\"id\":229,\"text\":\"出库汇总\",\"url\":\"/report/out_material_count\",\"textEn\":\"Outbound Summary\"},{\"component\":\"/report/InOutStockReport\",\"icon\":\"profile\",\"id\":59,\"text\":\"进销存统计\",\"url\":\"/report/in_out_stock_report\",\"textEn\":\"Inventory Transaction Summary\"},{\"component\":\"/report/CustomerAccount\",\"icon\":\"profile\",\"id\":235,\"text\":\"客户对账\",\"url\":\"/report/customer_account\",\"textEn\":\"Customer Reconciliation\"},{\"component\":\"/report/VendorAccount\",\"icon\":\"profile\",\"id\":237,\"text\":\"供应商对账\",\"url\":\"/report/vendor_account\",\"textEn\":\"Supplier Reconciliation\"},{\"component\":\"/report/StockWarningReport\",\"icon\":\"profile\",\"id\":244,\"text\":\"库存预警\",\"url\":\"/report/stock_warning_report\",\"textEn\":\"Stock Alerts\"}],\"icon\":\"pie-chart\",\"id\":198,\"text\":\"报表查询\",\"url\":\"/report\",\"textEn\":\"Reports\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/VendorList\",\"icon\":\"profile\",\"id\":25,\"text\":\"供应商信息\",\"url\":\"/system/vendor\",\"textEn\":\"Suppliers\"},{\"component\":\"/system/CustomerList\",\"icon\":\"profile\",\"id\":217,\"text\":\"客户信息\",\"url\":\"/system/customer\",\"textEn\":\"Customers\"},{\"component\":\"/system/MemberList\",\"icon\":\"profile\",\"id\":218,\"text\":\"会员信息\",\"url\":\"/system/member\",\"textEn\":\"Members\"},{\"component\":\"/system/CustomerCategoryList\",\"icon\":\"bars\",\"id\":267,\"text\":\"客户分类\",\"url\":\"/system/customerCategory\",\"textEn\":\"Customer Categories\"},{\"component\":\"/system/DepotList\",\"icon\":\"profile\",\"id\":26,\"text\":\"仓库信息\",\"url\":\"/system/depot\",\"textEn\":\"Warehouses\"},{\"component\":\"/system/InOutItemList\",\"icon\":\"profile\",\"id\":194,\"text\":\"收支项目\",\"url\":\"/system/in_out_item\",\"textEn\":\"Income and Expense Items\"},{\"component\":\"/system/AccountList\",\"icon\":\"profile\",\"id\":195,\"text\":\"结算账户\",\"url\":\"/system/account\",\"textEn\":\"Settlement Accounts\"},{\"component\":\"/system/PersonList\",\"icon\":\"profile\",\"id\":31,\"text\":\"操作人员管理\",\"url\":\"/system/person\",\"textEn\":\"Operators\"}],\"icon\":\"appstore\",\"id\":24,\"text\":\"基础资料\",\"url\":\"/systemA\",\"textEn\":\"Master Data\"},{\"component\":\"/layouts/TabLayout\",\"children\":[{\"component\":\"/system/RoleList\",\"icon\":\"profile\",\"id\":13,\"text\":\"角色管理\",\"url\":\"/system/role\",\"textEn\":\"Role Management\"},{\"component\":\"/system/UserList\",\"icon\":\"profile\",\"id\":14,\"text\":\"用户管理\",\"url\":\"/system/user\",\"textEn\":\"User Management\"},{\"component\":\"/system/OrganizationList\",\"icon\":\"profile\",\"id\":243,\"text\":\"部门管理\",\"url\":\"/system/organization\",\"textEn\":\"Department Management\"},{\"component\":\"/system/LogList\",\"icon\":\"profile\",\"id\":15,\"text\":\"日志管理\",\"url\":\"/system/log\",\"textEn\":\"Log Management\"},{\"component\":\"/material/MaterialPropertyList\",\"icon\":\"profile\",\"id\":236,\"text\":\"商品属性\",\"url\":\"/material/material_property\",\"textEn\":\"Product Properties\"},{\"component\":\"/system/SystemConfigList\",\"icon\":\"profile\",\"id\":234,\"text\":\"系统配置\",\"url\":\"/system/system_config\",\"textEn\":\"System Configuration\"},{\"component\":\"/system/FunctionList\",\"icon\":\"profile\",\"id\":16,\"text\":\"菜单管理\",\"url\":\"/system/function\",\"textEn\":\"Resource Menus\"},{\"component\":\"/system/PluginList\",\"icon\":\"profile\",\"id\":245,\"text\":\"插件管理\",\"url\":\"/system/plugin\",\"textEn\":\"Plugin Management\"},{\"component\":\"/system/DictList\",\"icon\":\"profile\",\"id\":260,\"text\":\"字典管理\",\"url\":\"/system/dict\",\"textEn\":\"Dictionary Management\"},{\"component\":\"/system/PlatformConfigList\",\"icon\":\"profile\",\"id\":258,\"text\":\"平台配置\",\"url\":\"/system/platform_config\",\"textEn\":\"Platform Configuration\"}],\"icon\":\"setting\",\"id\":1,\"text\":\"系统管理\",\"url\":\"/system\",\"textEn\":\"System Management\"}]'); +INSERT INTO `tbl_log` VALUES (10374, 63, '接口日志', '36.249.95.13/122.233.38.5', '2026-10-13 10:49:05', 0, 'MaterialPropertyController.getAllList(..)', NULL, 'GET /apis/materialProperty/getAllList', '{}', '{\"code\":200,\"data\":[{\"anotherName\":\"扩展1\",\"id\":1,\"nativeName\":\"扩展1\"},{\"anotherName\":\"扩展2\",\"id\":2,\"nativeName\":\"扩展2\"},{\"anotherName\":\"扩展3\",\"id\":3,\"nativeName\":\"扩展3\"}]}'); +INSERT INTO `tbl_log` VALUES (10375, 63, '接口日志', '36.249.93.44/122.233.38.5', '2026-10-13 10:49:05', 0, 'UserController.getUserBtnByCurrentUser(..)', NULL, 'GET /apis/user/getUserBtnByCurrentUser', '{}', '{\"code\":200,\"data\":{\"userBtn\":[{\"btnStr\":\"8,1\",\"url\":\"/system/role\"},{\"btnStr\":\"1\",\"url\":\"/system/user\"},{\"btnStr\":\"1\",\"url\":\"/system/organization\"},{\"btnStr\":\"1\",\"url\":\"/material/material_property\"},{\"btnStr\":\"1\",\"url\":\"/system/system_config\"},{\"btnStr\":\"1\",\"url\":\"/system/function\"},{\"btnStr\":\"1\",\"url\":\"/system/plugin\"},{\"btnStr\":\"1\",\"url\":\"/material/material_category\"},{\"btnStr\":\"1,3\",\"url\":\"/material/material\"},{\"btnStr\":\"1\",\"url\":\"/system/unit\"},{\"btnStr\":\"1\",\"url\":\"/material/material_attribute\"},{\"btnStr\":\"1,3\",\"url\":\"/system/vendor\"},{\"btnStr\":\"1,3\",\"url\":\"/system/customer\"},{\"btnStr\":\"1,3\",\"url\":\"/system/member\"},{\"btnStr\":\"1\",\"url\":\"/system/depot\"},{\"btnStr\":\"1\",\"url\":\"/system/in_out_item\"},{\"btnStr\":\"1\",\"url\":\"/system/account\"},{\"btnStr\":\"1\",\"url\":\"/system/person\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_apply\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/purchase_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_order\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_out\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/delivery_plan\"},{\"btnStr\":\"1,2,7\",\"url\":\"/bill/sale_shipment\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/sale_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/retail_back\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/item_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/money_out\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/order\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/requisition\"},{\"btnStr\":\"1,2,3\",\"url\":\"/production/report\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/giro\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/financial/advance_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/other_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/allocation_out\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/assemble\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/headquarters_in\"},{\"btnStr\":\"1,2,3,7\",\"url\":\"/bill/disassemble\"}]}}'); +INSERT INTO `tbl_log` VALUES (10376, 63, '接口日志', '36.249.93.144/122.233.38.5', '2026-10-13 10:49:05', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10377, 63, '接口日志', '36.249.93.42/122.233.38.5', '2026-10-13 10:49:05', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10378, 63, '接口日志', '36.249.93.154/122.233.38.5', '2026-10-13 10:49:05', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10379, 63, '接口日志', '36.249.93.31/122.233.38.5', '2026-10-13 10:49:29', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10380, 63, '接口日志', '36.249.93.26/122.233.38.5', '2026-10-13 10:49:29', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10381, 63, '接口日志', '36.249.93.52/122.233.38.5', '2026-10-13 10:49:29', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10382, 63, '接口日志', '36.249.93.184/122.233.38.5', '2026-10-13 10:49:32', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10383, 63, '接口日志', '36.249.93.30/122.233.38.5', '2026-10-13 10:49:32', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10384, 63, '接口日志', '36.249.93.176/122.233.38.5', '2026-10-13 10:49:32', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10385, 63, '接口日志', '36.249.93.44/122.233.38.5', '2026-10-13 10:49:35', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10386, 63, '接口日志', '36.249.93.42/122.233.38.5', '2026-10-13 10:49:36', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10387, 63, '接口日志', '36.249.93.151/122.233.38.5', '2026-10-13 10:49:36', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10388, 63, '接口日志', '36.249.93.52/122.233.38.5', '2026-10-13 10:49:39', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10389, 63, '接口日志', '36.249.93.144/122.233.38.5', '2026-10-13 10:49:39', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10390, 63, '接口日志', '36.249.93.154/122.233.38.5', '2026-10-13 10:49:39', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10391, 63, '接口日志', '36.249.93.31/122.233.38.5', '2026-10-13 10:49:43', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10392, 63, '接口日志', '36.249.93.176/122.233.38.5', '2026-10-13 10:49:43', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10393, 63, '接口日志', '36.249.93.26/122.233.38.5', '2026-10-13 10:49:43', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10394, 63, '接口日志', '36.249.93.184/122.233.38.5', '2026-10-13 10:49:50', 0, 'MsgController.getList(..)', NULL, 'GET /apis/msg/list', '{\"search\":\"{\\\"name\\\":\\\"\\\"}\"}', '{\"code\":200,\"data\":{\"total\":0,\"rows\":[]}}'); +INSERT INTO `tbl_log` VALUES (10395, 63, '接口日志', '36.249.93.151/122.233.38.5', '2026-10-13 10:49:50', 0, 'MsgController.getMsgByStatus(..)', NULL, 'GET /apis/msg/getMsgByStatus', '{\"status\":\"1\"}', '{\"code\":200,\"data\":[]}'); +INSERT INTO `tbl_log` VALUES (10396, 63, '接口日志', '36.249.93.30/122.233.38.5', '2026-10-13 10:49:50', 0, 'DashboardController.operationOverview()', NULL, 'GET /apis/dashboard/operationOverview', '{}', '{\"code\":200,\"data\":{\"headquartersInbound\":{\"documentCount\":153,\"quantity\":469573.000000,\"amount\":102732379.970000,\"latestTime\":\"2026-09-18T16:06:03\"},\"purchaseInbound\":{\"documentCount\":47,\"quantity\":276128.000000,\"amount\":26595018.200000,\"latestTime\":\"2026-09-18T16:29:02\"},\"saleOrder\":{\"documentCount\":76,\"quantity\":271749.000000,\"amount\":31849556.000000,\"latestTime\":\"2026-09-18T15:58:02\"},\"shipment\":{\"documentCount\":2,\"quantity\":10149.000000,\"latestTime\":\"2026-09-18T12:38:02\"},\"topProducts\":[{\"materialName\":\"1PH WS79\",\"specification\":\"1PH WS79\",\"quantity\":10000.000000,\"shipmentCount\":1},{\"materialName\":\"3PH APEC3-WC\",\"specification\":\"3PH APEC3-WC\",\"quantity\":149.000000,\"shipmentCount\":1}],\"monthlyTrend\":[{\"month\":\"2026-05\",\"inbound\":127237.0,\"ordered\":3000.0,\"shipped\":0},{\"month\":\"2026-06\",\"inbound\":77140.0,\"ordered\":14149.0,\"shipped\":0},{\"month\":\"2026-07\",\"inbound\":78556.0,\"ordered\":11000.0,\"shipped\":0},{\"month\":\"2026-08\",\"inbound\":19916.0,\"ordered\":0,\"shipped\":0},{\"month\":\"2026-09\",\"inbound\":20007.0,\"ordered\":10000.0,\"shipped\":10149.0},{\"month\":\"2026-10\",\"inbound\":0,\"ordered\":0,\"shipped\":0}],\"recentDocuments\":[{\"stage\":\"采购入库\",\"number\":\"CGRK00000001740\",\"operTime\":\"2026-09-18T16:29:02\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2609180001\",\"operTime\":\"2026-09-18T16:06:03\",\"quantity\":10000.000000,\"status\":\"1\"},{\"stage\":\"销售订单\",\"number\":\"XSDD00000001726\",\"operTime\":\"2026-09-18T15:58:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001742\",\"operTime\":\"2026-09-18T12:38:02\",\"quantity\":10000.000000,\"status\":\"2\"},{\"stage\":\"采购入库\",\"number\":\"CGRK00000001721\",\"operTime\":\"2026-09-18T11:44:34\",\"quantity\":7.000000,\"status\":\"1\"},{\"stage\":\"实际发货\",\"number\":\"FHTZ00000001718\",\"operTime\":\"2026-09-18T11:42:37\",\"quantity\":149.000000,\"status\":\"2\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070002\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":9500.000000,\"status\":\"1\"},{\"stage\":\"总部入库\",\"number\":\"SM2608070007\",\"operTime\":\"2026-08-07T00:00:00\",\"quantity\":1836.000000,\"status\":\"1\"}]}}'); +INSERT INTO `tbl_log` VALUES (10397, NULL, '接口日志', '36.249.93.42/122.233.38.5', '2026-10-13 10:49:53', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10398, NULL, '接口日志', '36.249.93.154/122.233.38.5', '2026-10-13 10:49:53', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10399, NULL, '接口日志', '183.131.211.173/125.121.53.131', '2026-10-13 11:35:12', 0, 'PlatformConfigController.getPlatformName(..)', NULL, 'GET /apis/platformConfig/getPlatform/name', '{}', '\"SMT\"'); +INSERT INTO `tbl_log` VALUES (10400, NULL, '接口日志', '36.249.93.42/125.121.53.131', '2026-10-13 11:35:12', 0, 'PlatformConfigController.getPlatformUrl(..)', NULL, 'GET /apis/platformConfig/getPlatform/url', '{}', '\"http://www.gyjerp.com/\"'); +INSERT INTO `tbl_log` VALUES (10401, NULL, '接口日志', '36.249.93.31/125.121.53.131', '2026-10-13 11:35:16', 0, 'PlatformConfigController.getPlatformCheckcodeFlag(..)', NULL, 'GET /apis/platformConfig/getPlatform/checkcodeFlag', '{}', '\"1\"'); +INSERT INTO `tbl_log` VALUES (10402, NULL, '接口日志', '36.249.93.52/125.121.53.131', '2026-10-13 11:35:16', 0, 'UserController.randomImage(..)', NULL, 'GET /apis/user/randomImage', '{}', '{\"code\":200,\"data\":{\"base64\":\"data:image/jpg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAjAGkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3iW58t1URsw3qjk/KFDdCCeG5wMDnn8KdcSMkTrDta48tmjQn7xH49MkfnTZ5F81LYxeYJVYsDjG0YB69fvDj0z9D5X43+HnhbWNWn1Dxd4yvLJp5D9jguLyGCKMLHGrbFcENkqrErjqoIyMkA9Sk2ySIksxjEycQ79r5HPBU5+vXt05zNK7Roz7C6qpYheWJHYDv3r51+FFtqGl/F280jwxrF1qfhO1aQ3cy8QHdH8pIPyl/MVVDLywQkfLmvo2gCBsruIco8rbVV3HbOSvXnaM49u3NN+2Qx3iWLyMZ2QMuR97r6cdj6V4x8NodHT46+Lns76+lvj9s86GazSONP9JTdtcSsWwcAZVcjnjpXsjXFu6JdbHZlDmLaOXA6hccHIGQO+Ae3AAojM9yk8V87Ro2WiXaVOU4GQM9w3JP8ql3zSOQgCKAynepzu42kdiMZ7+nTmqElxbrO0dtajdGWilfd5SxrsByccgEKADj+Hr0z5F+z1baPHJ4hfSdR1C5x9m80XVmluAP3uMBZZN3f0xgdcmgD2xkUGKSaTDpxkOVUk8dM4PPTOaVYnjMaxv+7XO4Pl2PphiePxz+FI/2e58y3fypduPMjbDY7jI/WqWqXtp4e0bUdRMXyW1tJdvFGQC6xoMhQeOigenSgC6843PGhPmKQD8pO3I4JHcZ7j39Dh0rMVZYWjMygNtY9s98dM4Iz+hxivIY/j/4Qh0YypHqUk0b+XBbvaoJQNp+c7WEewfd4YNz93HJ7nwn440Tx1pbahpExR4nMM0c+1J7fd93I+YfMQMckH6qRQB0wU+YWZs9lAyMDjrzgnI6/wCS+mln81VCZQqSWz0PGBj3yfyp1AFdbpJ5nit5Ed4XAlU54z2z6/4Y46jzbxJf/DPxZqM9t4k1O2uZNIkuIvJurk2pikBXeqYZC2SMc7s7eCOc+mQIkfmqkrSHzCW3PuKk849hgjA9K4XWPhh4E8RXWpanLpEJvWkb7RMJ5YV8wAbiQrBQe5bB5OTnnICPLPhxNb6d8fLrTfB11PN4am8zzghaSMxrESCSR0WUhVY8843NuJb6IiuYjkwyNKpnaN+pMbDII4HqO/GD1xgVneG/COheErM22iafFaqyqsjjJeXBYgux5Y5ZuvTOBwAKi8Vao+k+HdR1Gy0e41e7VFi+ww71knXeFO3Ck4AkJyAaAPHvhe6xftA+N5HOFUX7E+gF0lfQCoqDCKFGScAY5JyT+deE/BDwvrb+Lde8V67a3NjLNujEMyNG0skkm92wTu2qUxyCCSecqa9tW586KKSOSLy3wTKjhlzuA2g988jNICVndJWL7UgRNxdj1Pf6AAfr7V8+/s3MQ3iNWMXkSNapIrqTnImxz0HPHPXPrwfWvHnifU/D/hmK60fQJtXvrt/JS0CMxQFGbeyKCWUEAEcdeori/gB4Q1bw5ourahq1rNZvqEkaxW08ZSQLHv8AmIPIyXIAIB+XPQimB61FKrTyoJfM+bIAXhMAArnpnOTjrzXOePX+z/DnXkmaLMmn3SllPlDJicjAzySQBjPOTW75xvISwcQQhQxlWZd6kENg4yuCMHr0PSsnxr59x4K13T7aI3N7NpdwqxRfeYmNhwvLHJOAADzxQB5F8Btf8OaX4T1KC+1rT9L1P7f5pa5kSIyxeWAgJbG9Q3mfKDkZzxkEnwR/0r4p+ML7R/l8PHzdixfu4/nnzB+74x8gkxx8oyOM4Mnwr+HGmX/g66g8Z+GpY5lvnkU3dtLbyhAkYUiQBW2ZL5BOOM44Jr17Q/DGkeDtMSz0O0FtAZV3r5mTISduWZsknnPrwAOOKAN0gkqQxGDkgd6Wq8doqSFzJLId5kUO2QpORx7YOMdOPXJNigCM28LFy0MZLghiVHzAgA59eAPyFOSNI92xFXcxZtoxknqT70UUAOphijMolKjeBgH/AD9T+Z9TRRQANDGwOUHzMHOOMsMYJ/IflTmVXGGUMMg4IzyDkUUUALTI40iUqgwCxbr3JJP6k0UUAPpFVUUKoCqBgADAAoooAWkZFcYdQwyDgjPIOQfzoooAWiiigD//2Q==\",\"uuid\":\"6ac1c34fb5d54042957ea6a46e1b13b0\"}}'); + +-- ---------------------------- +-- Table structure for tbl_material +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_material`; +CREATE TABLE `tbl_material` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `category_id` bigint NULL DEFAULT NULL COMMENT '产品类型id', + `name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '名称', + `mfrs` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '制造商', + `model` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '型号', + `standard` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '规格', + `brand` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '品牌', + `mnemonic` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '助记码', + `color` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '颜色', + `unit` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '单位-单个', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `img_name` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '图片名称', + `unit_id` bigint NULL DEFAULT NULL COMMENT '单位Id', + `expiry_num` int NULL DEFAULT NULL COMMENT '保质期天数', + `weight` decimal(24, 6) NULL DEFAULT NULL COMMENT '基础重量(kg)', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用 0-禁用 1-启用', + `other_field1` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '自定义1', + `other_field2` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '自定义2', + `other_field3` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '自定义3', + `enable_serial_number` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '是否开启序列号,0否,1是', + `enable_batch_number` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '是否开启批号,0否,1是', + `position` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '仓位货架', + `attribute` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多属性信息', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `FK675951272AB6672C`(`category_id`) USING BTREE, + INDEX `UnitId`(`unit_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 707 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '产品表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_material +-- ---------------------------- +INSERT INTO `tbl_material` VALUES (683, 32, '单相有功电能表C8(VD)', '浙江瑞银电子有限公司', 'DDS1226-C8(VD)', 'DDS1226-C8(VD)', '', '', '', '件', 'Excel初始化;条码:C.1.C.2.00021', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (684, 32, '单相有功电能表C8(VG)', '浙江瑞银电子有限公司', 'DDS1226-C8(VG)', 'DDS1226-C8(VG)', '', '', '', '件', 'Excel初始化;条码:C.1.C.2.00023', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (685, 32, '单相多功能电能表T49(VB)', '浙江瑞银电子有限公司', 'DDSD1226-T49(VB)', 'DDSD1226-T49(VB)', '', '', '', '件', 'Excel初始化;条码:C.1.T.0.00032', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (686, 32, '单相多功能电能表T49(VH)_(马来市场)', '浙江瑞银电子有限公司', 'DDSD1226-T49(VH)', 'DDSD1226-T49(VH)', '', '', '', '件', 'Excel初始化;条码:C.1.T.0.0004500005', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (687, 32, '三相四线多功能电能表CXVI(VA)-新', '浙江瑞银电子有限公司', 'DTSD1226-CXVI(VA)', 'DTSD1226-CXVI(VA)', '', '', '', '件', 'Excel初始化;条码:C.3.C.2.00025', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (688, 32, '三相四线多功能电能表SXVI(VG)-新', '浙江瑞银电子有限公司', 'DTSD1226-SXVI(VG)', 'DTSD1226-SXVI(VG)', '', '', '', '件', 'Excel初始化;条码:C.3.S.0.00020', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (689, 32, '三相四线多功能电能表SXVI(VH)-新', '浙江瑞银电子有限公司', 'DTSD1226-SXVI(VH)', 'DTSD1226-SXVI(VH)', '', '', '', '件', 'Excel初始化;条码:C.3.S.0.00026', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (690, 32, '三相四线多功能电能表SXVI(VK)-新', '浙江瑞银电子有限公司', 'DTSD1226-SXVI(VK)', 'DTSD1226-SXVI(VK)', '', '', '', '件', 'Excel初始化;条码:C.3.S.0.00030', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (691, 32, '三相四线多功能电能表T46(VC)', '浙江瑞银电子有限公司', 'DTSD1226-T46(VC)', 'DTSD1226-T46(VC)', '', '', '', '件', 'Excel初始化;条码:C.3.T.0.00030', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (692, 32, '三相四线多功能电能表T46(VH)', '浙江瑞银电子有限公司', 'DTSD1226-T46(VH)', 'DTSD1226-T46(VH)', '', '', '', '件', 'Excel初始化;条码:C.3.T.0.00036', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (693, 32, '三相四线多功能电能表T46(VJ)', '浙江瑞银电子有限公司', 'DTSD1226-T46(VJ)', 'DTSD1226-T46(VJ)', '', '', '', '件', 'Excel初始化;条码:C.3.T.0.00038', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (694, 32, 'MD-LR62(VB)', '浙江瑞银电子有限公司', 'MD-LR62(VB)', 'MD-LR62(VB)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.00421', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (695, 32, 'MD-LR63(VB)', '浙江瑞银电子有限公司', 'MD-LR63(VB)', 'MD-LR63(VB)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.00422', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (696, 32, 'MT-3NSXL(VC)RF通讯模块', '浙江瑞银电子有限公司', 'MT-3NSXL(VC)', 'MT-3NSXL(VC)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.00547', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (697, 32, 'MT-P109(VA)', '浙江瑞银电子有限公司', 'MT-P109(VA)', 'MT-P109(VA)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.00553', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (698, 32, 'MD-4GVIII(VB)', '浙江瑞银电子有限公司', 'MD-4GVIII(VB)', 'MD-4GVIII(VB)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.00562', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (699, 32, 'MD-4G111(VF) 4G模块', '浙江瑞银电子有限公司', 'MD-4G111(VF)', 'MD-4G111(VF)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.00654', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (700, 32, 'TC160(VA) 通讯模块供电盒', '浙江瑞银电子有限公司', 'TC160(VA)', 'TC160(VA)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.00686', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (701, 32, 'MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)', '浙江瑞银电子有限公司', 'MD-RS114(VB)', 'MD-RS114(VB)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.0068900002', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (702, 32, 'MD-RS178(VA) RS485分线器', '浙江瑞银电子有限公司', 'MD-RS178(VA)', 'MD-RS178(VA)', '', '', '', '件', 'Excel初始化;条码:C.4.T.0.00722', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (703, 33, '1PH WS79', '浙江瑞银电子有限公司', '1PH WS79', '1PH WS79', '', '', '', '件', 'Excel初始化;条码:1PH-WS79', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (704, 33, '3PH APEC3-WC', '浙江瑞银电子有限公司', '3PH APEC3-WC', '3PH APEC3-WC', '', '', '', '件', 'Excel初始化;条码:3PH-APEC3-WC', '', NULL, NULL, NULL, b'1', '', '', '', '0', '0', '', '', 63, '0'); +INSERT INTO `tbl_material` VALUES (705, 34, 'MD-4G111(VF) 包装', NULL, 'MD-4G111(VF)', 'MD-4G111(VF) packing', NULL, 'MD-4G111(VF) bz', NULL, '件', NULL, '', NULL, NULL, NULL, b'1', NULL, NULL, NULL, '0', '0', NULL, '{}', NULL, '0'); +INSERT INTO `tbl_material` VALUES (706, 33, 'MD-4G111(VF) 4G', 'SMT', 'MD-4G111(VF) 4G', 'MD-4G111(VF) 4G', NULL, 'MD-4G111(VF) 4G', NULL, '只', NULL, '', NULL, NULL, NULL, b'1', NULL, NULL, NULL, '0', '0', NULL, '{}', NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_material_attribute +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_material_attribute`; +CREATE TABLE `tbl_material_attribute` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `attribute_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '属性名', + `attribute_value` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '属性值', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '产品属性表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_material_attribute +-- ---------------------------- +INSERT INTO `tbl_material_attribute` VALUES (1, '多颜色', '红色|橙色|黄色|绿色|蓝色|紫色', 63, '0'); +INSERT INTO `tbl_material_attribute` VALUES (2, '多尺寸', 'S|M|L|XL|XXL|XXXL', 63, '0'); +INSERT INTO `tbl_material_attribute` VALUES (3, '自定义1', '小米|华为', 63, '0'); +INSERT INTO `tbl_material_attribute` VALUES (4, '自定义2', NULL, 63, '0'); +INSERT INTO `tbl_material_attribute` VALUES (5, '自定义3', NULL, 63, '0'); +INSERT INTO `tbl_material_attribute` VALUES (6, '测试属性_UPD', '测试值A|测试值B|测试值C', NULL, '1'); + +-- ---------------------------- +-- Table structure for tbl_material_category +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_material_category`; +CREATE TABLE `tbl_material_category` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '名称', + `category_level` smallint NULL DEFAULT NULL COMMENT '等级', + `parent_id` bigint NULL DEFAULT NULL COMMENT '上级id', + `sort` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '显示顺序', + `serial_no` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '编号', + `remark` varchar(1024) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `FK3EE7F725237A77D8`(`parent_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '产品类型表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_material_category +-- ---------------------------- +INSERT INTO `tbl_material_category` VALUES (32, '半成品', 1, NULL, '1', '001', '总部入库条码商品', '2026-09-18 10:06:29', '2026-09-18 10:06:29', 63, '0'); +INSERT INTO `tbl_material_category` VALUES (33, '成品', 1, NULL, '2', '002', 'Stock Status成品', '2026-09-18 10:06:29', '2026-09-18 10:06:29', 63, '0'); +INSERT INTO `tbl_material_category` VALUES (34, '包装', NULL, NULL, NULL, '010', NULL, '2026-09-18 11:46:03', '2026-09-18 11:46:03', NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_material_current_stock +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_material_current_stock`; +CREATE TABLE `tbl_material_current_stock` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `material_id` bigint NULL DEFAULT NULL COMMENT '产品id', + `depot_id` bigint NULL DEFAULT NULL COMMENT '仓库id', + `current_number` decimal(24, 6) NULL DEFAULT NULL COMMENT '当前库存数量', + `current_unit_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '当前单价', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE, + INDEX `depot_id`(`depot_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 150 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '产品当前库存' ROW_FORMAT = COMPACT; + +-- ---------------------------- +-- Records of tbl_material_current_stock +-- ---------------------------- +INSERT INTO `tbl_material_current_stock` VALUES (125, 698, 25, 50.000000, 324.000000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (126, 693, 25, 34473.000000, 797.040000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (127, 699, 25, 76970.000000, 0.100000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (128, 692, 25, 500.000000, 550.800000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (129, 688, 25, 400.000000, 613.980000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (130, 686, 25, 42490.000000, 403.380000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (131, 697, 25, 500.000000, 129.600000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (132, 687, 25, 48041.000000, 481.950000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (133, 694, 25, 200.000000, 334.692000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (134, 695, 25, 100.000000, 1003.752000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (135, 702, 25, 1000.000000, 24.300000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (136, 700, 25, 50.000000, 132.840000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (137, 690, 25, 13070.000000, 518.400000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (138, 701, 25, 100.000000, 142.560000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (139, 689, 25, 120.000000, 690.120000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (140, 684, 25, 112400.000000, 80.190000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (141, 683, 25, 20000.000000, 85.860000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (142, 696, 25, 54656.000000, 0.100000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (143, 685, 25, 40000.000000, 218.700000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (144, 691, 25, 14460.000000, 486.000000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (145, 703, 26, 52400.000000, 59.500000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (146, 704, 26, 7223.000000, 317.500000, 63, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (147, 705, 25, 0.000000, 0.000000, NULL, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (148, 705, 26, 0.000000, 0.000000, NULL, '0'); +INSERT INTO `tbl_material_current_stock` VALUES (149, 703, 25, 0.000000, 59.500000, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_material_extend +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_material_extend`; +CREATE TABLE `tbl_material_extend` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `material_id` bigint NULL DEFAULT NULL COMMENT '商品id', + `bar_code` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '商品条码', + `commodity_unit` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '商品单位', + `sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多属性', + `purchase_decimal` decimal(24, 6) NULL DEFAULT NULL COMMENT '采购价格', + `commodity_decimal` decimal(24, 6) NULL DEFAULT NULL COMMENT '零售价格', + `wholesale_decimal` decimal(24, 6) NULL DEFAULT NULL COMMENT '销售价格', + `low_decimal` decimal(24, 6) NULL DEFAULT NULL COMMENT '最低售价', + `default_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '1' COMMENT '是否为默认单位,1是,0否', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建日期', + `create_serial` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '创建人编码', + `update_serial` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '更新人编码', + `update_time` bigint NULL DEFAULT NULL COMMENT '更新时间戳', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_Flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE, + INDEX `bar_code`(`bar_code`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 127 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '产品价格扩展' ROW_FORMAT = COMPACT; + +-- ---------------------------- +-- Records of tbl_material_extend +-- ---------------------------- +INSERT INTO `tbl_material_extend` VALUES (103, 683, 'C.1.C.2.00021', '件', NULL, 85.860000, 85.860000, 85.860000, 85.860000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189092, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (104, 684, 'C.1.C.2.00023', '件', NULL, 80.190000, 80.190000, 80.190000, 80.190000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189092, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (105, 685, 'C.1.T.0.00032', '件', NULL, 218.700000, 218.700000, 218.700000, 218.700000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189093, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (106, 686, 'C.1.T.0.0004500005', '件', NULL, 403.380000, 403.380000, 403.380000, 403.380000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189093, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (107, 687, 'C.3.C.2.00025', '件', NULL, 481.950000, 481.950000, 481.950000, 481.950000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189093, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (108, 688, 'C.3.S.0.00020', '件', NULL, 613.980000, 613.980000, 613.980000, 613.980000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189094, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (109, 689, 'C.3.S.0.00026', '件', NULL, 690.120000, 690.120000, 690.120000, 690.120000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189094, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (110, 690, 'C.3.S.0.00030', '件', NULL, 518.400000, 518.400000, 518.400000, 518.400000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189094, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (111, 691, 'C.3.T.0.00030', '件', NULL, 486.000000, 486.000000, 486.000000, 486.000000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189095, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (112, 692, 'C.3.T.0.00036', '件', NULL, 550.800000, 550.800000, 550.800000, 550.800000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189095, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (113, 693, 'C.3.T.0.00038', '件', NULL, 797.040000, 797.040000, 797.040000, 797.040000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189095, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (114, 694, 'C.4.T.0.00421', '件', NULL, 334.692000, 334.692000, 334.692000, 334.692000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189096, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (115, 695, 'C.4.T.0.00422', '件', NULL, 1003.752000, 1003.752000, 1003.752000, 1003.752000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189096, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (116, 696, 'C.4.T.0.00547', '件', NULL, 0.100000, 0.100000, 0.100000, 0.100000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189097, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (117, 697, 'C.4.T.0.00553', '件', NULL, 129.600000, 129.600000, 129.600000, 129.600000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189097, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (118, 698, 'C.4.T.0.00562', '件', NULL, 324.000000, 324.000000, 324.000000, 324.000000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189097, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (119, 699, 'C.4.T.0.00654', '件', NULL, 0.100000, 0.100000, 0.100000, 0.100000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789703076524, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (120, 700, 'C.4.T.0.00686', '件', NULL, 132.840000, 132.840000, 132.840000, 132.840000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189098, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (121, 701, 'C.4.T.0.0068900002', '件', NULL, 142.560000, 142.560000, 142.560000, 142.560000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189098, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (122, 702, 'C.4.T.0.00722', '件', NULL, 24.300000, 24.300000, 24.300000, 24.300000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789697189098, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (123, 703, '1PH-WS79', '件', NULL, 59.500000, 73.500000, 73.500000, 73.500000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789718583926, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (124, 704, '3PH-APEC3-WC', '件', NULL, 317.500000, 340.000000, 340.000000, 340.000000, '1', '2026-09-18 10:06:29', 'admin', 'admin', 1789711835973, 63, '0'); +INSERT INTO `tbl_material_extend` VALUES (125, 705, '1001', '件', '', 10.000000, 10.000000, 10.000000, 10.000000, '1', '2026-09-18 11:46:34', 'admin', 'admin', 1789720142420, NULL, '0'); +INSERT INTO `tbl_material_extend` VALUES (126, 706, '1002', '只', '', 100.000000, 200.000000, 200.000000, 200.000000, '1', '2026-09-18 11:47:33', 'admin', 'admin', 1789703253942, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_material_initial_stock +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_material_initial_stock`; +CREATE TABLE `tbl_material_initial_stock` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `material_id` bigint NULL DEFAULT NULL COMMENT '产品id', + `depot_id` bigint NULL DEFAULT NULL COMMENT '仓库id', + `number` decimal(24, 6) NULL DEFAULT NULL COMMENT '初始库存数量', + `low_safe_stock` decimal(24, 6) NULL DEFAULT NULL COMMENT '最低库存数量', + `high_safe_stock` decimal(24, 6) NULL DEFAULT NULL COMMENT '最高库存数量', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE, + INDEX `depot_id`(`depot_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 102 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '产品初始库存' ROW_FORMAT = COMPACT; + +-- ---------------------------- +-- Records of tbl_material_initial_stock +-- ---------------------------- +INSERT INTO `tbl_material_initial_stock` VALUES (78, 698, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (79, 693, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (80, 699, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (81, 692, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (82, 688, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (83, 686, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (84, 697, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (85, 687, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (86, 694, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (87, 695, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (88, 702, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (89, 700, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (90, 690, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (91, 701, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (92, 689, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (93, 684, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (94, 683, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (95, 696, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (96, 685, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (97, 691, 25, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (98, 703, 26, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (99, 704, 26, 0.000000, 0.000000, 0.000000, 63, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (100, 705, 25, 0.000000, NULL, NULL, NULL, '0'); +INSERT INTO `tbl_material_initial_stock` VALUES (101, 705, 26, 0.000000, NULL, NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_material_property +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_material_property`; +CREATE TABLE `tbl_material_property` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `native_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '原始名称', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '是否启用', + `sort` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '排序', + `another_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '别名', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '产品扩展字段表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_material_property +-- ---------------------------- + +-- ---------------------------- +-- Table structure for tbl_msg +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_msg`; +CREATE TABLE `tbl_msg` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `msg_title` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '消息标题', + `msg_content` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '消息内容', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `type` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '消息类型', + `user_id` bigint NULL DEFAULT NULL COMMENT '接收人id', + `status` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '状态,1未读 2已读', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_Flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '消息表' ROW_FORMAT = COMPACT; + +-- ---------------------------- +-- Records of tbl_msg +-- ---------------------------- + +-- ---------------------------- +-- Table structure for tbl_orga_user_rel +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_orga_user_rel`; +CREATE TABLE `tbl_orga_user_rel` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `orga_id` bigint NULL DEFAULT NULL COMMENT '部门id', + `user_id` bigint NOT NULL COMMENT '用户id', + `user_blng_orga_dspl_seq` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '用户在所属部门中显示顺序', + `delete_flag` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint NULL DEFAULT NULL COMMENT '创建人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `updater` bigint NULL DEFAULT NULL COMMENT '更新人', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + PRIMARY KEY (`id`) USING BTREE, + INDEX `orga_id`(`orga_id`) USING BTREE, + INDEX `user_id`(`user_id`) USING BTREE, + INDEX `creator`(`creator`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '部门用户关系表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_orga_user_rel +-- ---------------------------- +INSERT INTO `tbl_orga_user_rel` VALUES (10, 13, 131, '2', '0', '2019-12-28 12:13:15', 63, '2026-09-09 11:42:25', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (11, 12, 63, '15', '0', '2020-09-13 18:42:45', 63, '2021-03-19 00:11:40', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (12, 13, 135, '9', '0', '2021-03-18 22:24:25', 63, '2021-03-19 00:09:23', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (13, 13, 134, '1', '0', '2021-03-18 22:31:39', 63, '2021-03-18 23:59:55', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (14, 22, 133, '22', '0', '2021-03-18 22:31:44', 63, '2021-03-18 22:32:04', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (15, 12, 144, NULL, '0', '2021-03-19 00:00:40', 63, '2021-03-19 00:08:07', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (16, 12, 145, NULL, '0', '2021-03-19 00:03:44', 63, '2021-03-19 00:03:44', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (17, NULL, 146, NULL, '0', '2026-09-09 10:32:59', 63, '2026-09-09 10:32:59', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (18, NULL, 147, NULL, '0', '2026-09-11 08:48:05', 63, '2026-09-11 08:48:05', 63, 63); +INSERT INTO `tbl_orga_user_rel` VALUES (19, NULL, 148, NULL, '0', '2026-09-14 20:09:41', 63, '2026-09-14 20:10:04', 63, NULL); +INSERT INTO `tbl_orga_user_rel` VALUES (20, 13, 149, NULL, '0', '2026-09-30 07:41:49', 63, '2026-09-30 07:41:49', 63, NULL); + +-- ---------------------------- +-- Table structure for tbl_organization +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_organization`; +CREATE TABLE `tbl_organization` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `org_no` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '部门编号', + `org_abr` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '部门简称', + `parent_id` bigint NULL DEFAULT NULL COMMENT '父部门id', + `sort` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '部门显示顺序', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '部门表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_organization +-- ---------------------------- +INSERT INTO `tbl_organization` VALUES (12, '001', '测试部门', NULL, '2', 'aaaa2', '2019-12-28 12:13:01', '2019-12-28 12:13:01', 63, '0'); +INSERT INTO `tbl_organization` VALUES (13, 'jg1', '部门1', 12, '3', '', '2020-07-21 00:09:57', '2020-07-21 00:10:22', 63, '0'); +INSERT INTO `tbl_organization` VALUES (14, '12', '部门2', 13, '4', '', '2020-07-21 22:45:42', '2021-02-15 22:18:30', 63, '0'); +INSERT INTO `tbl_organization` VALUES (15, 'DEPT_REG', '测试部门_UPD', NULL, NULL, NULL, '2026-09-14 20:12:09', '2026-09-14 20:14:46', NULL, '1'); + +-- ---------------------------- +-- Table structure for tbl_pack_bom +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_pack_bom`; +CREATE TABLE `tbl_pack_bom` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `bom_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '方案编号', + `bom_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '方案名称', + `product_material_id` bigint NULL DEFAULT NULL COMMENT '待包装产品商品id', + `product_material_extend_id` bigint NULL DEFAULT NULL COMMENT '待包装产品扩展id', + `product_sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '待包装产品多属性', + `output_material_id` bigint NULL DEFAULT NULL COMMENT '成品SKU商品id', + `output_material_extend_id` bigint NULL DEFAULT NULL COMMENT '成品扩展id', + `output_sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '成品多属性', + `output_number` decimal(24, 6) NULL DEFAULT NULL COMMENT '单位待包装产品产出成品数量', + `version` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT 'V1' COMMENT '版本', + `enabled` bit(1) NULL DEFAULT b'1' COMMENT '启用状态', + `remark` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `product_material_id`(`product_material_id`) USING BTREE, + INDEX `output_material_id`(`output_material_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '包装BOM主表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_pack_bom +-- ---------------------------- +INSERT INTO `tbl_pack_bom` VALUES (18, 'BOM00000001735', 'v1.0', 703, 123, NULL, 703, 123, NULL, 1.000000, 'v1.0', b'1', NULL, '2026-09-18 12:14:19', 63, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_pack_bom_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_pack_bom_item`; +CREATE TABLE `tbl_pack_bom_item` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `bom_id` bigint NOT NULL COMMENT '包装BOM id', + `material_id` bigint NOT NULL COMMENT '包材商品id', + `material_extend_id` bigint NULL DEFAULT NULL COMMENT '商品扩展id', + `material_sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多属性', + `unit` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '单位', + `quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '用量(每产出1单位成品所需包材数量)', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `bom_id`(`bom_id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '包装BOM包材明细表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_pack_bom_item +-- ---------------------------- +INSERT INTO `tbl_pack_bom_item` VALUES (26, 18, 705, 125, '', '件', 1.000000, '', NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_person +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_person`; +CREATE TABLE `tbl_person` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `type` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类型', + `name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '姓名', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用', + `sort` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '排序', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 45 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '经手人表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_person +-- ---------------------------- +INSERT INTO `tbl_person` VALUES (31, '商务主管', 'Arif', b'1', '1', 63, '0'); +INSERT INTO `tbl_person` VALUES (32, '技术主管', 'Hafiz', b'1', '2', 63, '0'); +INSERT INTO `tbl_person` VALUES (33, '软件工程师', 'Aziman', b'1', '3', 63, '0'); +INSERT INTO `tbl_person` VALUES (34, 'IT', 'Lim', b'1', '4', 63, '0'); +INSERT INTO `tbl_person` VALUES (35, '实施', 'Amir', b'1', '5', 63, '0'); +INSERT INTO `tbl_person` VALUES (36, '资产管理员', '张伟', b'1', '10', 63, '0'); +INSERT INTO `tbl_person` VALUES (37, '设备工程师', '陈晨', b'1', '20', 63, '0'); +INSERT INTO `tbl_person` VALUES (38, '生产主管', '王磊', b'1', '30', 63, '0'); +INSERT INTO `tbl_person` VALUES (39, 'IT运维工程师', '赵敏', b'1', '40', 63, '0'); +INSERT INTO `tbl_person` VALUES (43, '财务员', 'Juwairiah', b'1', NULL, NULL, '0'); +INSERT INTO `tbl_person` VALUES (44, 'CEO', 'Neezam', b'1', NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_platform_config +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_platform_config`; +CREATE TABLE `tbl_platform_config` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `platform_key` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '关键词', + `platform_key_info` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '关键词名称', + `platform_value` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '值', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 24 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '平台参数' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_platform_config +-- ---------------------------- +INSERT INTO `tbl_platform_config` VALUES (1, 'platform_name', '平台名称', 'SMT'); +INSERT INTO `tbl_platform_config` VALUES (2, 'activation_code', '激活码', ''); +INSERT INTO `tbl_platform_config` VALUES (3, 'platform_url', '官方网站', 'http://www.gyjerp.com/'); +INSERT INTO `tbl_platform_config` VALUES (4, 'bill_print_flag', '三联打印启用标记', '0'); +INSERT INTO `tbl_platform_config` VALUES (5, 'bill_print_url', '三联打印地址', ''); +INSERT INTO `tbl_platform_config` VALUES (6, 'pay_fee_url', '租户续费地址', ''); +INSERT INTO `tbl_platform_config` VALUES (7, 'register_flag', '注册启用标记', '0'); +INSERT INTO `tbl_platform_config` VALUES (8, 'app_activation_code', '手机端激活码', ''); +INSERT INTO `tbl_platform_config` VALUES (9, 'send_workflow_url', '发起流程地址', ''); +INSERT INTO `tbl_platform_config` VALUES (10, 'weixinUrl', '微信url', ''); +INSERT INTO `tbl_platform_config` VALUES (11, 'weixinAppid', '微信appid', ''); +INSERT INTO `tbl_platform_config` VALUES (12, 'weixinSecret', '微信secret', ''); +INSERT INTO `tbl_platform_config` VALUES (13, 'aliOss_endpoint', '阿里OSS-endpoint', ''); +INSERT INTO `tbl_platform_config` VALUES (14, 'aliOss_accessKeyId', '阿里OSS-accessKeyId', ''); +INSERT INTO `tbl_platform_config` VALUES (15, 'aliOss_accessKeySecret', '阿里OSS-accessKeySecret', ''); +INSERT INTO `tbl_platform_config` VALUES (16, 'aliOss_bucketName', '阿里OSS-bucketName', ''); +INSERT INTO `tbl_platform_config` VALUES (17, 'aliOss_linkUrl', '阿里OSS-linkUrl', ''); +INSERT INTO `tbl_platform_config` VALUES (18, 'bill_excel_url', '单据Excel地址', ''); +INSERT INTO `tbl_platform_config` VALUES (19, 'email_from', '邮件发送端-发件人', ''); +INSERT INTO `tbl_platform_config` VALUES (20, 'email_auth_code', '邮件发送端-授权码', ''); +INSERT INTO `tbl_platform_config` VALUES (21, 'email_smtp_host', '邮件发送端-SMTP服务器', ''); +INSERT INTO `tbl_platform_config` VALUES (22, 'checkcode_flag', '验证码启用标记', '1'); +INSERT INTO `tbl_platform_config` VALUES (23, 'app_version', '手机端版本', ''); + +-- ---------------------------- +-- Table structure for tbl_production_order +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_production_order`; +CREATE TABLE `tbl_production_order` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `order_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '工单号', + `source_type` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '来源类型(销售订单/手工备货)', + `source_id` bigint NULL DEFAULT NULL COMMENT '来源单据id(销售订单depot_head.id)', + `source_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '来源单据号(销售订单号)', + `product_material_id` bigint NULL DEFAULT NULL COMMENT '待包装产品商品id', + `product_material_extend_id` bigint NULL DEFAULT NULL COMMENT '待包装产品扩展id', + `product_sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '待包装产品多属性', + `bom_id` bigint NULL DEFAULT NULL COMMENT '包装BOM id', + `output_material_id` bigint NULL DEFAULT NULL COMMENT '成品SKU商品id', + `output_material_extend_id` bigint NULL DEFAULT NULL COMMENT '成品扩展id', + `output_sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '成品多属性', + `order_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '工单数量(待包装产品)', + `output_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '预计成品数量', + `finished_quantity` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '已完工良品数', + `plan_start_date` datetime(0) NULL DEFAULT NULL COMMENT '计划开工日期', + `plan_end_date` datetime(0) NULL DEFAULT NULL COMMENT '计划完工日期', + `actual_start_date` datetime(0) NULL DEFAULT NULL COMMENT '实际开工日期', + `actual_end_date` datetime(0) NULL DEFAULT NULL COMMENT '实际完工日期', + `priority` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '优先级,0普通、1紧急', + `status` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '状态,0已创建、1已下达、2生产中、3已完工、4已关闭', + `audit_by` bigint NULL DEFAULT NULL COMMENT '审批人', + `audit_time` datetime(0) NULL DEFAULT NULL COMMENT '审批时间', + `release_by` bigint NULL DEFAULT NULL COMMENT '下达人', + `release_time` datetime(0) NULL DEFAULT NULL COMMENT '下达时间', + `close_reason` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '关闭原因', + `remark` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `order_number`(`order_number`) USING BTREE, + INDEX `source_number`(`source_number`) USING BTREE, + INDEX `status`(`status`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '生产工单主表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_production_order +-- ---------------------------- +INSERT INTO `tbl_production_order` VALUES (11, 'GD20260918122018493', '销售订单', 1719, 'XSDD00000001726', 703, 123, NULL, 18, 703, 123, NULL, 10000.000000, 10000.000000, 0.000000, '2026-09-18 00:00:00', '2026-09-25 00:00:00', NULL, NULL, '0', '1', 63, '2026-09-18 12:22:55', 63, '2026-09-18 12:22:55', NULL, '', '2026-09-18 12:20:19', 63, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_production_order_log +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_production_order_log`; +CREATE TABLE `tbl_production_order_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `order_id` bigint NULL DEFAULT NULL COMMENT '工单id', + `order_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '工单号', + `operation_type` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '操作类型(创建/修改/审批下达/开工/生成领料/发料/完工/关闭等)', + `operation_desc` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '操作描述', + `operator` bigint NULL DEFAULT NULL COMMENT '操作人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '操作时间', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + PRIMARY KEY (`id`) USING BTREE, + INDEX `order_id`(`order_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 59 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '工单操作日志表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_production_order_log +-- ---------------------------- +INSERT INTO `tbl_production_order_log` VALUES (53, 11, 'GD20260918122018493', '创建工单', '创建生产工单,数量:10000', 63, '2026-09-18 12:20:19', NULL); +INSERT INTO `tbl_production_order_log` VALUES (54, 11, 'GD20260918122018493', '审批下达', '工单审批通过并下达', 63, '2026-09-18 12:22:55', NULL); +INSERT INTO `tbl_production_order_log` VALUES (55, 11, 'GD20260918122018493', '生成领料单', '生成领料单[LL20260918122329111]', 63, '2026-09-18 12:23:29', NULL); +INSERT INTO `tbl_production_order_log` VALUES (56, 11, 'GD20260918122018493', '领料驳回', '领料单[LL20260918122329111]被驳回:11', 63, '2026-09-18 12:31:51', NULL); +INSERT INTO `tbl_production_order_log` VALUES (57, 11, 'GD20260918122018493', '生成领料单', '生成领料单[LL20260918123156921]', 63, '2026-09-18 12:31:57', NULL); +INSERT INTO `tbl_production_order_log` VALUES (58, 11, 'GD20260918122018493', '领料发料', '领料单[LL20260918123156921]确认发料,出库单号[LL20260924134027104]', 63, '2026-09-24 13:40:27', NULL); + +-- ---------------------------- +-- Table structure for tbl_production_report +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_production_report`; +CREATE TABLE `tbl_production_report` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `report_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '报告号', + `order_id` bigint NULL DEFAULT NULL COMMENT '工单id', + `order_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '工单号', + `finished_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '实际良品数', + `defect_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '不良品数', + `qualified_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '质检结果,0未检、1合格、2不合格', + `depot_id` bigint NULL DEFAULT NULL COMMENT '入库仓库id', + `in_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '生产入库单号', + `audit_status` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '审核状态,0待审核、1已审核、2已驳回', + `audit_by` bigint NULL DEFAULT NULL COMMENT '审核人', + `audit_time` datetime(0) NULL DEFAULT NULL COMMENT '审核时间', + `report_by` bigint NULL DEFAULT NULL COMMENT '报工人', + `report_date` datetime(0) NULL DEFAULT NULL COMMENT '报工日期', + `remark` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `report_number`(`report_number`) USING BTREE, + INDEX `order_id`(`order_id`) USING BTREE, + INDEX `audit_status`(`audit_status`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '完工报告主表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_production_report +-- ---------------------------- + +-- ---------------------------- +-- Table structure for tbl_production_report_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_production_report_item`; +CREATE TABLE `tbl_production_report_item` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `report_id` bigint NOT NULL COMMENT '完工报告id', + `material_id` bigint NOT NULL COMMENT '物料商品id', + `material_extend_id` bigint NULL DEFAULT NULL COMMENT '商品扩展id', + `material_sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多属性', + `unit` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '单位', + `consumption_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '实际消耗数量', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `report_id`(`report_id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '完工报告物料消耗明细表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_production_report_item +-- ---------------------------- + +-- ---------------------------- +-- Table structure for tbl_production_requisition +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_production_requisition`; +CREATE TABLE `tbl_production_requisition` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `requisition_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '领料单号', + `order_id` bigint NULL DEFAULT NULL COMMENT '工单id', + `order_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '工单号', + `depot_id` bigint NULL DEFAULT NULL COMMENT '发料仓库id', + `status` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '状态,0待确认、1已发料、2已驳回', + `confirm_by` bigint NULL DEFAULT NULL COMMENT '确认人', + `confirm_time` datetime(0) NULL DEFAULT NULL COMMENT '确认时间', + `remark` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `requisition_number`(`requisition_number`) USING BTREE, + INDEX `order_id`(`order_id`) USING BTREE, + INDEX `status`(`status`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '生产领料单主表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_production_requisition +-- ---------------------------- +INSERT INTO `tbl_production_requisition` VALUES (8, 'LL20260918122329111', 11, 'GD20260918122018493', 25, '2', NULL, NULL, '11', '2026-09-18 12:23:29', 63, NULL, '0'); +INSERT INTO `tbl_production_requisition` VALUES (9, 'LL20260918123156921', 11, 'GD20260918122018493', 25, '1', 63, '2026-09-24 13:40:27', NULL, '2026-09-18 12:31:57', 63, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_production_requisition_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_production_requisition_item`; +CREATE TABLE `tbl_production_requisition_item` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `requisition_id` bigint NOT NULL COMMENT '领料单id', + `depot_id` bigint NULL DEFAULT NULL COMMENT '发料仓库id', + `material_id` bigint NOT NULL COMMENT '物料商品id', + `material_extend_id` bigint NULL DEFAULT NULL COMMENT '商品扩展id', + `material_sku` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '多属性', + `unit` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '单位', + `required_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '申请数量(BOM定额)', + `issued_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '实发数量', + `unit_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '参考单价', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `requisition_id`(`requisition_id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE, + INDEX `idx_pri_depot_id`(`depot_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '生产领料单明细表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_production_requisition_item +-- ---------------------------- +INSERT INTO `tbl_production_requisition_item` VALUES (25, 8, 25, 705, 125, '', '件', 10000.000000, 10000.000000, NULL, NULL, NULL, '0'); +INSERT INTO `tbl_production_requisition_item` VALUES (26, 9, 25, 705, 125, '', '件', 10000.000000, 10000.000000, NULL, NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_role +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_role`; +CREATE TABLE `tbl_role` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '名称', + `type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类型', + `price_limit` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '价格屏蔽 1-屏蔽采购价 2-屏蔽零售价 3-屏蔽销售价', + `value` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '值', + `description` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '描述', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用', + `sort` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '排序', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '角色表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_role +-- ---------------------------- +INSERT INTO `tbl_role` VALUES (4, '管理员', '全部数据', NULL, NULL, NULL, b'1', NULL, NULL, '0'); +INSERT INTO `tbl_role` VALUES (10, '租户', '全部数据', NULL, NULL, '', b'1', NULL, NULL, '0'); +INSERT INTO `tbl_role` VALUES (16, '销售经理', '全部数据', NULL, NULL, 'ddd', b'1', NULL, 63, '0'); +INSERT INTO `tbl_role` VALUES (17, '销售代表', '个人数据', NULL, NULL, 'rrr', b'1', NULL, 63, '0'); +INSERT INTO `tbl_role` VALUES (21, 'admin', '全部数据', NULL, NULL, NULL, b'1', NULL, 63, '0'); +INSERT INTO `tbl_role` VALUES (22, '测试角色_UPD', '全部数据', NULL, NULL, NULL, b'1', NULL, NULL, '1'); +INSERT INTO `tbl_role` VALUES (23, 'system admin', '全部数据', NULL, NULL, NULL, b'1', NULL, NULL, '0'); +INSERT INTO `tbl_role` VALUES (24, 'system admin', '全部数据', NULL, NULL, NULL, b'1', NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_sale_shipment +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_sale_shipment`; +CREATE TABLE `tbl_sale_shipment` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `shipment_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '发货通知单号', + `source_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'sale' COMMENT '来源类型:sale销售出库、retail零售出库', + `delivery_plan_id` bigint NULL DEFAULT NULL COMMENT '交货计划id', + `delivery_plan_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '交货计划单号', + `sale_out_id` bigint NOT NULL COMMENT '销售出库单id', + `sale_out_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '销售出库单号', + `sale_order_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联销售订单/交货计划单号', + `customer_id` bigint NULL DEFAULT NULL COMMENT '客户id', + `status` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0' COMMENT '状态:0待审批、1待发货、2已发货、3部分发货、4已驳回', + `planned_ship_time` datetime(0) NULL DEFAULT NULL COMMENT '计划发货时间', + `logistics_company` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '物流公司', + `logistics_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '物流单号', + `receiver` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '收货人', + `receiver_phone` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '收货电话', + `receiver_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '收货地址', + `notice_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '发货通知备注', + `approve_by` bigint NULL DEFAULT NULL COMMENT '审批人', + `approve_time` datetime(0) NULL DEFAULT NULL COMMENT '审批时间', + `approve_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审批备注', + `ship_by` bigint NULL DEFAULT NULL COMMENT '发货执行人', + `ship_time` datetime(0) NULL DEFAULT NULL COMMENT '发货时间', + `confirm_by` bigint NULL DEFAULT NULL COMMENT '确认人', + `confirm_time` datetime(0) NULL DEFAULT NULL COMMENT '确认时间', + `difference_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '差异处理说明', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_sale_shipment_number`(`shipment_number`) USING BTREE, + INDEX `idx_sale_shipment_sale_out_id`(`sale_out_id`) USING BTREE, + INDEX `idx_sale_shipment_sale_out_number`(`sale_out_number`) USING BTREE, + INDEX `idx_sale_shipment_status`(`status`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '销售发货通知/发货单' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_sale_shipment +-- ---------------------------- +INSERT INTO `tbl_sale_shipment` VALUES (16, 'FHTZ00000001718', 'sale', 6, 'JH00000001717', 1714, 'XSCK-3PH-APEC3-WC-OV-28', 'XSDD-42260529-3PH-APEC3-WC-OV', 90, '2', '2026-09-18 11:41:44', 'FEXD', 'FD10000001', 'Hank', '60001-1111', '5433 Grand Ave', NULL, 63, '2026-09-18 11:42:30', '审批通过', 63, '2026-09-18 11:42:37', 63, '2026-09-18 11:42:37', NULL, '2026-09-18 11:42:22', 63, NULL, '0'); +INSERT INTO `tbl_sale_shipment` VALUES (17, 'FHTZ00000001742', 'sale', 7, 'JH00000001741', 1720, 'XSCK00000001728', 'XSDD00000001726', 90, '2', '2026-09-18 16:35:21', NULL, NULL, NULL, NULL, NULL, NULL, 63, '2026-09-18 12:37:27', '审批通过', 63, '2026-09-18 12:38:02', 63, '2026-09-18 12:38:02', NULL, '2026-09-18 12:36:28', 63, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_sale_shipment_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_sale_shipment_item`; +CREATE TABLE `tbl_sale_shipment_item` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `shipment_id` bigint NOT NULL COMMENT '发货通知id', + `delivery_plan_item_id` bigint NULL DEFAULT NULL COMMENT '交货计划明细id', + `sale_out_item_id` bigint NOT NULL COMMENT '销售出库明细id', + `material_id` bigint NULL DEFAULT NULL COMMENT '商品id', + `material_extend_id` bigint NULL DEFAULT NULL COMMENT '商品扩展id', + `bar_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '条码', + `material_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '商品名称', + `standard` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格', + `model` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '型号', + `unit` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单位', + `batch_number` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '批号', + `sn_list` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '序列号', + `plan_quantity` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '通知发货数量', + `actual_quantity` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '实际发货数量', + `shipped_quantity` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '创建时已通知/已发货数量', + `difference_quantity` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '差异数量=实际-通知', + `depot_id` bigint NULL DEFAULT NULL COMMENT '出库仓库id', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_sale_shipment_item_shipment_id`(`shipment_id`) USING BTREE, + INDEX `idx_sale_shipment_item_sale_out_item_id`(`sale_out_item_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '销售发货明细' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_sale_shipment_item +-- ---------------------------- +INSERT INTO `tbl_sale_shipment_item` VALUES (12, 16, 5, 1519, 704, 124, '3PH-APEC3-WC', '3PH APEC3-WC', '3PH APEC3-WC', '3PH APEC3-WC', '件', NULL, NULL, 149.000000, 0.000000, 0.000000, -149.000000, 26, '', 63, '1'); +INSERT INTO `tbl_sale_shipment_item` VALUES (13, 16, 5, 1519, 704, 124, '3PH-APEC3-WC', '3PH APEC3-WC', '3PH APEC3-WC', '3PH APEC3-WC', '件', NULL, NULL, 149.000000, 149.000000, 0.000000, 0.000000, 26, '', 63, '0'); +INSERT INTO `tbl_sale_shipment_item` VALUES (14, 17, 6, 1525, 703, 123, '1PH-WS79', '1PH WS79', '1PH WS79', '1PH WS79', '件', NULL, NULL, 10000.000000, 0.000000, 0.000000, -10000.000000, 25, NULL, NULL, '1'); +INSERT INTO `tbl_sale_shipment_item` VALUES (15, 17, 6, 1525, 703, 123, '1PH-WS79', '1PH WS79', '1PH WS79', '1PH WS79', '件', NULL, NULL, 10000.000000, 10000.000000, 0.000000, 0.000000, 25, NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_sequence +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_sequence`; +CREATE TABLE `tbl_sequence` ( + `seq_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '序列名称', + `min_value` bigint NOT NULL COMMENT '最小值', + `max_value` bigint NOT NULL COMMENT '最大值', + `current_val` bigint NOT NULL COMMENT '当前值', + `increment_val` int NOT NULL DEFAULT 1 COMMENT '增长步数', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`seq_name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '单据编号表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_sequence +-- ---------------------------- +INSERT INTO `tbl_sequence` VALUES ('depot_number_seq', 1, 999999999999999999, 1748, 1, '单据编号sequence'); + +-- ---------------------------- +-- Table structure for tbl_serial_number +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_serial_number`; +CREATE TABLE `tbl_serial_number` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `material_id` bigint NULL DEFAULT NULL COMMENT '产品表id', + `depot_id` bigint NULL DEFAULT NULL COMMENT '仓库id', + `serial_number` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '序列号', + `is_sell` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '是否卖出,0未卖出,1卖出', + `in_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '入库单价', + `remark` varchar(1024) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint NULL DEFAULT NULL COMMENT '创建人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `updater` bigint NULL DEFAULT NULL COMMENT '更新人', + `in_bill_no` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '入库单号', + `out_bill_no` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '出库单号', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE, + INDEX `depot_id`(`depot_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '序列号表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_serial_number +-- ---------------------------- + +-- ---------------------------- +-- Table structure for tbl_smt_inbound_item +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_smt_inbound_item`; +CREATE TABLE `tbl_smt_inbound_item` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `header_id` bigint NOT NULL, + `material_code` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 'ERP??/????', + `material_name` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '????', + `specification` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '????', + `qty` decimal(24, 6) NOT NULL, + `unit_price` decimal(24, 6) NULL DEFAULT NULL, + `total_net_money` decimal(24, 6) NULL DEFAULT NULL, + `total_money` decimal(24, 6) NULL DEFAULT NULL, + `source_doc_no` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `tenant_id` bigint NULL DEFAULT NULL, + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_smt_inbound_header`(`header_id`) USING BTREE, + INDEX `idx_smt_inbound_code`(`material_code`) USING BTREE, + INDEX `idx_smt_inbound_tenant`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 768 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = 'SMT?????????' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_smt_inbound_item +-- ---------------------------- +INSERT INTO `tbl_smt_inbound_item` VALUES (615, 1272, 'C.4.T.0.00562', 'MD-4GVIII(VB)', 'MD-4GVIII(VB)', 50.000000, 324.000000, 14336.280000, 16200.000000, 'SH2503070002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (616, 1273, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 1990.000000, 797.040000, 1403636.810000, 1586109.600000, 'SH2503210018', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (617, 1274, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 1990.000000, 0.100000, 176.110000, 199.000000, 'SH2503260007', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (618, 1275, 'C.3.T.0.00036', '三相四线多功能电能表T46(VH)', 'DTSD1226-T46(VH)', 500.000000, 550.800000, 275400.000000, 275400.000000, 'SH2503280020', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (619, 1276, 'C.3.S.0.00020', '三相四线多功能电能表SXVI(VG)-新', 'DTSD1226-SXVI(VG)', 400.000000, 613.980000, 245592.000000, 245592.000000, 'SH2503280021', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (620, 1277, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 8290.000000, 0.100000, 829.000000, 829.000000, 'SH2504010002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (621, 1278, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 8290.000000, 403.380000, 3344020.200000, 3344020.200000, 'SH2503310004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (622, 1279, 'C.4.T.0.00553', 'MT-P109(VA)', 'MT-P109(VA)', 500.000000, 129.600000, 64800.000000, 64800.000000, 'SH2504010004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (623, 1280, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3024.000000, 481.950000, 1457416.800000, 1457416.800000, 'SH2505090009', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (624, 1281, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 336.000000, 481.950000, 161935.200000, 161935.200000, 'SH2505140012', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (625, 1282, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 1640.000000, 481.950000, 790398.000000, 790398.000000, 'SH2505140013', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (626, 1283, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 504.000000, 481.950000, 242902.800000, 242902.800000, 'SH2505220012', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (627, 1284, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3696.000000, 481.950000, 1781287.200000, 1781287.200000, 'SH2505210003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (628, 1285, 'C.4.T.0.00421', 'MD-LR62(VB)', 'MD-LR62(VB)', 170.000000, 334.692000, 56897.640000, 56897.640000, 'SH2505230003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (629, 1286, 'C.4.T.0.00422', 'MD-LR63(VB)', 'MD-LR63(VB)', 100.000000, 1003.752000, 100375.200000, 100375.200000, 'SH2505230002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (630, 1287, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 336.000000, 481.950000, 161935.200000, 161935.200000, 'SH2505270016', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (631, 1288, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 464.000000, 481.950000, 223624.800000, 223624.800000, 'SH2505280004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (632, 1289, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3464.000000, 481.950000, 1669474.800000, 1669474.800000, 'SH2506120013', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (633, 1290, 'C.4.T.0.00722', 'MD-RS178(VA) RS485分线器', 'MD-RS178(VA)', 1000.000000, 24.300000, 24300.000000, 24300.000000, 'SH2506190019', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (634, 1291, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 504.000000, 481.950000, 242902.800000, 242902.800000, 'SH2506200018', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (635, 1292, 'C.4.T.0.00421', 'MD-LR62(VB)', 'MD-LR62(VB)', 30.000000, 334.692000, 10040.760000, 10040.760000, 'SH2506230010', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (636, 1293, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 504.000000, 481.950000, 242902.800000, 242902.800000, 'SH2506240005', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (637, 1294, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3360.000000, 481.950000, 1619352.000000, 1619352.000000, 'SH2506240004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (638, 1295, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 5.000000, 481.950000, 2409.750000, 2409.750000, 'SH2507010002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (639, 1296, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 363.000000, 481.950000, 174947.850000, 174947.850000, 'SH2507010002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (640, 1297, 'C.4.T.0.00686', 'TC160(VA) 通讯模块供电盒', 'TC160(VA)', 50.000000, 132.840000, 6642.000000, 6642.000000, 'SH2507160005', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (641, 1298, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 4620.000000, 797.040000, 3682324.800000, 3682324.800000, 'SH2508130002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (642, 1299, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4620.000000, 0.100000, 462.000000, 462.000000, 'SH2508130003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (643, 1300, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 5270.000000, 0.100000, 527.000000, 527.000000, 'SH2508140009', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (644, 1301, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 5270.000000, 797.040000, 4200400.800000, 4200400.800000, 'SH2508140008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (645, 1302, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 110.000000, 797.040000, 87674.400000, 87674.400000, 'SH2508200016', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (646, 1303, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 2100.000000, 518.400000, 1088640.000000, 1088640.000000, 'SH2508200015', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (647, 1304, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 110.000000, 0.100000, 11.000000, 11.000000, 'SH2508200018', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (648, 1305, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 2900.000000, 518.400000, 1503360.000000, 1503360.000000, 'SH2509050002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (649, 1306, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 10000.000000, 0.100000, 1000.000000, 1000.000000, 'SH2509250002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (650, 1307, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 10000.000000, 403.380000, 4033800.000000, 4033800.000000, 'SH2509250001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (651, 1308, 'C.4.T.0.0068900002', 'MD-RS114(VB) 基于RS485的MODBS TCPMODBS RTUASVII转换模块_(DZG)', 'MD-RS114(VB)', 100.000000, 142.560000, 14256.000000, 14256.000000, 'SH2510170019', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (652, 1309, 'C.3.S.0.00026', '三相四线多功能电能表SXVI(VH)-新', 'DTSD1226-SXVI(VH)', 120.000000, 690.120000, 82814.400000, 82814.400000, 'SH2510170020', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (653, 1310, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 516.000000, 403.380000, 208144.080000, 208144.080000, 'SH2510290008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (654, 1311, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 9484.000000, 403.380000, 3825655.920000, 3825655.920000, 'SH2510290008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (655, 1312, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 9990.000000, 0.100000, 999.000000, 999.000000, 'SH2510290009', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (656, 1313, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 10.000000, 0.100000, 1.000000, 1.000000, 'SH2510290009', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (657, 1314, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 2970.000000, 518.400000, 1539648.000000, 1539648.000000, 'SH2511140012', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (658, 1315, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 4200.000000, 403.380000, 1694196.000000, 1694196.000000, 'SH2511210018', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (659, 1316, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4200.000000, 0.100000, 420.000000, 420.000000, 'SH2511210019', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (660, 1317, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 5040.000000, 797.040000, 4017081.600000, 4017081.600000, 'SH2511240013', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (661, 1318, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 5040.000000, 0.100000, 504.000000, 504.000000, 'SH2511240014', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (662, 1319, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 30.000000, 518.400000, 15552.000000, 15552.000000, 'SH2511250009', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (663, 1320, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 4960.000000, 797.040000, 3953318.400000, 3953318.400000, 'SH2511280023', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (664, 1321, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 5040.000000, 0.100000, 504.000000, 504.000000, 'SH2512030005', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (665, 1321, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4960.000000, 0.100000, 496.000000, 496.000000, 'SH2512030005', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (666, 1322, 'C.1.T.0.0004500005', '单相多功能电能表T49(VH)_(马来市场)', 'DDSD1226-T49(VH)', 10000.000000, 403.380000, 4033800.000000, 4033800.000000, 'SH2512030004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (667, 1323, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 5040.000000, 797.040000, 4017081.600000, 4017081.600000, 'SH2512090010', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (668, 1324, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 5040.000000, 0.100000, 504.000000, 504.000000, 'SH2512090009', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (669, 1325, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 2730.000000, 797.040000, 2175919.200000, 2175919.200000, 'SH2512120024', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (670, 1326, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 1580.000000, 518.400000, 819072.000000, 819072.000000, 'SH2512120023', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (671, 1327, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 2730.000000, 0.100000, 273.000000, 273.000000, 'SH2512160015', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (672, 1328, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4960.000000, 0.100000, 496.000000, 496.000000, 'SH2512160014', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (673, 1329, 'C.4.T.0.00654', 'MD-4G111(VF) 4G模块', 'MD-4G111(VF)', 4713.000000, 0.100000, 471.300000, 471.300000, 'SH2512290007', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (674, 1330, 'C.3.T.0.00038', '三相四线多功能电能表T46(VJ)', 'DTSD1226-T46(VJ)', 4713.000000, 797.040000, 3756449.520000, 3756449.520000, 'SH2512290006', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (675, 1331, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 320.000000, 518.400000, 165888.000000, 165888.000000, 'SH2512290008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (676, 1332, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 1000.000000, 693.360000, 693360.000000, 693360.000000, 'SH2601040003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (677, 1333, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 100.000000, 518.400000, 51840.000000, 51840.000000, 'SH2512290008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (678, 1334, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 2000.000000, 518.400000, 1036800.000000, 1036800.000000, 'SH2601200021', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (679, 1335, 'C.3.S.0.00030', '三相四线多功能电能表SXVI(VK)-新', 'DTSD1226-SXVI(VK)', 70.000000, 518.400000, 36288.000000, 36288.000000, 'SH2601200021', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (680, 1336, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 3240.000000, 80.190000, 259815.600000, 259815.600000, 'SH2604100007', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (681, 1337, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 3170.000000, 80.190000, 254202.300000, 254202.300000, 'SH2604100007', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (682, 1338, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 3850.000000, 80.190000, 308731.500000, 308731.500000, 'SH2604100007', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (683, 1339, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 540.000000, 80.190000, 43302.600000, 43302.600000, 'SH2604100007', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (684, 1340, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 540.000000, 80.190000, 43302.600000, 43302.600000, 'SH2604150004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (685, 1341, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 1080.000000, 80.190000, 86605.200000, 86605.200000, 'SH2604150004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (686, 1342, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 3780.000000, 80.190000, 303118.200000, 303118.200000, 'SH2604150004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (687, 1343, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 1680.000000, 481.950000, 809676.000000, 809676.000000, 'SH2604150003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (688, 1344, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3696.000000, 481.950000, 1781287.200000, 1781287.200000, 'SH2604150002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (689, 1345, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 2700.000000, 80.190000, 216513.000000, 216513.000000, 'SH2604160008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (690, 1346, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4320.000000, 80.190000, 346420.800000, 346420.800000, 'SH2604160008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (691, 1347, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4860.000000, 80.190000, 389723.400000, 389723.400000, 'SH2604160008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (692, 1348, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 12420.000000, 80.190000, 995959.800000, 995959.800000, 'SH2604210010', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (693, 1349, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3360.000000, 481.950000, 1619352.000000, 1619352.000000, 'SH2604220010', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (694, 1350, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3528.000000, 481.950000, 1700319.600000, 1700319.600000, 'SH2604220011', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (695, 1351, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 540.000000, 80.190000, 43302.600000, 43302.600000, 'SH2604210010', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (696, 1352, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 168.000000, 481.950000, 80967.600000, 80967.600000, 'SH2604220011', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (697, 1353, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 168.000000, 481.950000, 80967.600000, 80967.600000, 'SH2604220011', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (698, 1354, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 8960.000000, 80.190000, 718502.400000, 718502.400000, 'SH2604220009', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (699, 1355, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 7570.000000, 80.190000, 607038.300000, 607038.300000, 'SH2604240012', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (700, 1356, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4310.000000, 80.190000, 345618.900000, 345618.900000, 'SH2604240012', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (701, 1357, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 149.000000, 481.950000, 71810.550000, 71810.550000, 'SH2604240013', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (702, 1358, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4860.000000, 80.190000, 389723.400000, 389723.400000, 'SH2604300001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (703, 1359, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 7020.000000, 80.190000, 562933.800000, 562933.800000, 'SH2604300001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (704, 1360, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 7020.000000, 80.190000, 562933.800000, 562933.800000, 'SH2605080017', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (705, 1361, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 4860.000000, 80.190000, 389723.400000, 389723.400000, 'SH2605080017', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (706, 1362, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 5400.000000, 80.190000, 433026.000000, 433026.000000, 'SH2605140004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (707, 1363, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 840.000000, 481.950000, 404838.000000, 404838.000000, 'SH2605180007', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (708, 1364, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 168.000000, 481.950000, 80967.600000, 80967.600000, 'SH2605180007', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (709, 1365, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 540.000000, 80.190000, 43302.600000, 43302.600000, 'SH2605180005', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (710, 1366, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 12400.000000, 80.190000, 994356.000000, 994356.000000, 'SH2605180006', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (711, 1367, 'C.1.C.2.00023', '单相有功电能表C8(VG)', 'DDS1226-C8(VG)', 8420.000000, 80.190000, 675199.800000, 675199.800000, 'SH2605180005', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (712, 1368, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 1848.000000, 481.950000, 890643.600000, 890643.600000, 'SH2605190018', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (713, 1369, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 1008.000000, 481.950000, 485805.600000, 485805.600000, 'SH2605190018', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (714, 1370, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 504.000000, 481.950000, 242902.800000, 242902.800000, 'SH2605190018', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (715, 1371, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3360.000000, 481.950000, 1619352.000000, 1619352.000000, 'SH2605280028', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (716, 1372, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 168.000000, 481.950000, 80967.600000, 80967.600000, 'SH2606040013', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (717, 1373, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 2432.000000, 481.950000, 1172102.400000, 1172102.400000, 'SH2606040013', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (718, 1374, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 44.000000, 481.950000, 21205.800000, 21205.800000, 'SH2606080003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (719, 1375, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 4320.000000, 85.860000, 370915.200000, 370915.200000, 'SH2606170024', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (720, 1376, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 5940.000000, 85.860000, 510008.400000, 510008.400000, 'SH2606170024', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (721, 1377, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 3780.000000, 85.860000, 324550.800000, 324550.800000, 'SH2606230001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (722, 1378, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 1080.000000, 85.860000, 92728.800000, 92728.800000, 'SH2606230001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (723, 1379, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 2215.000000, 85.860000, 190179.900000, 190179.900000, 'SH2606230001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (724, 1380, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 2160.000000, 85.860000, 185457.600000, 185457.600000, 'SH2606230001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (725, 1381, 'C.1.C.2.00021', '单相有功电能表C8(VD)', 'DDS1226-C8(VD)', 505.000000, 85.860000, 43359.300000, 43359.300000, 'SH2606230001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (726, 1382, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 1224.000000, 0.100000, 122.400000, 122.400000, 'SH2606290012', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (727, 1383, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 1260.000000, 218.700000, 275562.000000, 275562.000000, 'SH2606290005', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (728, 1384, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 8160.000000, 0.100000, 816.000000, 816.000000, 'SH2606290006', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (729, 1385, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 6720.000000, 218.700000, 1469664.000000, 1469664.000000, 'SH2606290005', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (730, 1386, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 1050.000000, 486.000000, 510300.000000, 510300.000000, 'SH2606290011', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (731, 1387, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 2652.000000, 0.100000, 265.200000, 265.200000, 'SH2607020014', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (732, 1388, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 5100.000000, 0.100000, 510.000000, 510.000000, 'SH2607020012', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (733, 1389, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 2100.000000, 218.700000, 459270.000000, 459270.000000, 'SH2607020011', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (734, 1390, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 2940.000000, 218.700000, 642978.000000, 642978.000000, 'SH2607020011', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (735, 1391, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 2520.000000, 486.000000, 1224720.000000, 1224720.000000, 'SH2607020013', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (736, 1392, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 840.000000, 486.000000, 408240.000000, 408240.000000, 'SH2607130003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (737, 1393, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 3780.000000, 218.700000, 826686.000000, 826686.000000, 'SH2607130001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (738, 1394, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 2940.000000, 218.700000, 642978.000000, 642978.000000, 'SH2607130001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (739, 1395, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 4088.000000, 0.100000, 408.800000, 408.800000, 'SH2607130002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (740, 1396, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 2652.000000, 0.100000, 265.200000, 265.200000, 'SH2607130002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (741, 1397, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 816.000000, 0.100000, 81.600000, 81.600000, 'SH2607130004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (742, 1398, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 816.000000, 0.100000, 81.600000, 81.600000, 'SH2607130004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (743, 1399, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 260.000000, 218.700000, 56862.000000, 56862.000000, 'SH2607130001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (744, 1400, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 630.000000, 486.000000, 306180.000000, 306180.000000, 'SH2607130003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (745, 1401, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3360.000000, 481.950000, 1619352.000000, 1619352.000000, 'SH2607140004', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (746, 1402, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 1680.000000, 486.000000, 816480.000000, 816480.000000, 'SH2607140008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (747, 1403, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 2520.000000, 486.000000, 1224720.000000, 1224720.000000, 'SH2607140008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (748, 1404, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 5100.000000, 0.100000, 510.000000, 510.000000, 'SH2607140009', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (749, 1405, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 840.000000, 486.000000, 408240.000000, 408240.000000, 'SH2607140008', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (750, 1406, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 3024.000000, 481.950000, 1457416.800000, 1457416.800000, 'SH2607160019', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (751, 1407, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 3852.000000, 0.100000, 385.200000, 385.200000, 'SH2607160021', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (752, 1408, 'C.3.C.2.00025', '三相四线多功能电能表CXVI(VA)-新', 'DTSD1226-CXVI(VA)', 336.000000, 481.950000, 161935.200000, 161935.200000, 'SH2607160019', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (753, 1409, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 1050.000000, 486.000000, 510300.000000, 510300.000000, 'SH2607160020', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (754, 1410, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 210.000000, 486.000000, 102060.000000, 102060.000000, 'SH2607160020', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (755, 1411, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 210.000000, 486.000000, 102060.000000, 102060.000000, 'SH2607160020', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (756, 1412, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 2100.000000, 486.000000, 1020600.000000, 1020600.000000, 'SH2607160020', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (757, 1413, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 210.000000, 486.000000, 102060.000000, 102060.000000, 'SH2607160020', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (758, 1414, 'C.3.T.0.00030', '三相四线多功能电能表T46(VC)', 'DTSD1226-T46(VC)', 600.000000, 486.000000, 291600.000000, 291600.000000, 'SH2607160020', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (759, 1415, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 1260.000000, 218.700000, 275562.000000, 275562.000000, 'SH2607220001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (760, 1416, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 10200.000000, 0.100000, 1020.000000, 1020.000000, 'SH2607220002', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (761, 1417, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 5880.000000, 218.700000, 1285956.000000, 1285956.000000, 'SH2607220001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (762, 1418, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 2520.000000, 218.700000, 551124.000000, 551124.000000, 'SH2607220001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (763, 1419, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 420.000000, 218.700000, 91854.000000, 91854.000000, 'SH2607220001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (764, 1420, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 8160.000000, 0.100000, 816.000000, 816.000000, 'SH2608060003', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (765, 1421, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 420.000000, 218.700000, 91854.000000, 91854.000000, 'SH2608060001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (766, 1422, 'C.1.T.0.00032', '单相多功能电能表T49(VB)', 'DDSD1226-T49(VB)', 9500.000000, 218.700000, 2077650.000000, 2077650.000000, 'SH2608060001', 63, '0'); +INSERT INTO `tbl_smt_inbound_item` VALUES (767, 1423, 'C.4.T.0.00547', 'MT-3NSXL(VC)RF通讯模块', 'MT-3NSXL(VC)', 1836.000000, 0.100000, 183.600000, 183.600000, 'SH2608060003', 63, '0'); + +-- ---------------------------- +-- Table structure for tbl_supplier +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_supplier`; +CREATE TABLE `tbl_supplier` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `supplier` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '供应商名称', + `contacts` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '联系人', + `phone_num` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '联系电话', + `email` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '电子邮箱', + `description` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `isystem` tinyint NULL DEFAULT NULL COMMENT '是否系统自带 0==系统 1==非系统', + `type` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类型', + `category_id` bigint NULL DEFAULT NULL, + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用', + `advance_in` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '预收款', + `begin_need_get` decimal(24, 6) NULL DEFAULT NULL COMMENT '期初应收', + `begin_need_pay` decimal(24, 6) NULL DEFAULT NULL COMMENT '期初应付', + `all_need_get` decimal(24, 6) NULL DEFAULT NULL COMMENT '累计应收', + `all_need_pay` decimal(24, 6) NULL DEFAULT NULL COMMENT '累计应付', + `fax` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '传真', + `telephone` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '手机', + `address` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '地址', + `tax_num` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '纳税人识别号', + `bank_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '开户行', + `account_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '账号', + `tax_rate` decimal(24, 6) NULL DEFAULT NULL COMMENT '税率', + `sort` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '排序', + `creator` bigint NULL DEFAULT NULL COMMENT '操作员', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `type`(`type`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE, + INDEX `idx_category_id`(`category_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 91 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '供应商/客户信息表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_supplier +-- ---------------------------- +INSERT INTO `tbl_supplier` VALUES (89, '浙江瑞银电子有限公司', '', '', '', 'Excel初始化默认供应商', 1, '供应商', NULL, b'1', 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, '', '', '', '', '', '', 0.000000, '1', 63, 63, '0'); +INSERT INTO `tbl_supplier` VALUES (90, 'TNB', '', '', '', 'Stock Status客户', 1, '客户', NULL, b'1', 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, '', '', '', '', '', '', 10.000000, '2', 63, 63, '0'); + +-- ---------------------------- +-- Table structure for tbl_sys_dict_data +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_sys_dict_data`; +CREATE TABLE `tbl_sys_dict_data` ( + `dict_code` bigint NOT NULL AUTO_INCREMENT COMMENT '字典编码', + `dict_sort` int NULL DEFAULT 0 COMMENT '字典排序', + `dict_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典标签', + `dict_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典键值', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型', + `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)', + `list_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表格回显样式', + `is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'N' COMMENT '是否默认(Y是 N否)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`dict_code`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_sys_dict_data +-- ---------------------------- +INSERT INTO `tbl_sys_dict_data` VALUES (1, 1, '男', '0', 'sys_user_sex', '', 'default', 'Y', '0', 'admin', '2021-12-15 21:36:18', 'admin', '2026-04-04 22:38:19', '性别男', '0'); +INSERT INTO `tbl_sys_dict_data` VALUES (2, 2, '女', '1', 'sys_user_sex', '', 'default', 'N', '0', 'admin', '2021-12-15 21:36:18', 'admin', '2026-04-04 22:38:27', '性别女', '0'); +INSERT INTO `tbl_sys_dict_data` VALUES (11, 1, '正常', '0', 'sys_normal_disable', NULL, 'green', 'N', '0', 'admin', '2026-04-03 22:31:34', 'admin', '2026-04-04 22:35:39', '正常状态', '0'); +INSERT INTO `tbl_sys_dict_data` VALUES (12, 2, '停用', '1', 'sys_normal_disable', NULL, 'red', 'N', '0', 'admin', '2026-04-03 22:32:03', 'admin', '2026-04-04 21:38:10', '停用状态', '0'); +INSERT INTO `tbl_sys_dict_data` VALUES (13, 3, '采购员', '采购员', 'person_type', NULL, 'default', 'N', '0', 'admin', '2026-09-17 15:22:39', '', NULL, NULL, '0'); +INSERT INTO `tbl_sys_dict_data` VALUES (14, 4, 'CEO', 'CEO', 'person_type', NULL, 'default', 'N', '0', 'admin', '2026-09-18 13:37:45', '', NULL, NULL, '0'); +INSERT INTO `tbl_sys_dict_data` VALUES (15, 5, 'IT', 'IT', 'person_type', NULL, 'default', 'N', '0', 'admin', '2026-09-18 13:37:55', '', NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_sys_dict_type +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_sys_dict_type`; +CREATE TABLE `tbl_sys_dict_type` ( + `dict_id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', + `dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典名称', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`dict_id`) USING BTREE, + UNIQUE INDEX `dict_type`(`dict_type`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_sys_dict_type +-- ---------------------------- +INSERT INTO `tbl_sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', 'admin', '2021-12-15 21:36:18', 'admin', '2026-04-02 16:20:41', '用户性别列表', '0'); +INSERT INTO `tbl_sys_dict_type` VALUES (12, '系统开关', 'sys_normal_disable', '0', 'admin', '2026-04-03 22:30:57', 'admin', '2026-04-04 21:41:09', '系统开关列表', '0'); + +-- ---------------------------- +-- Table structure for tbl_system_config +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_system_config`; +CREATE TABLE `tbl_system_config` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `company_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '公司名称', + `company_contacts` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '公司联系人', + `company_address` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '公司地址', + `company_tel` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '公司电话', + `company_fax` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '公司传真', + `company_post_code` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '公司邮编', + `sale_agreement` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '销售协议', + `depot_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '仓库启用标记,0未启用,1启用', + `customer_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '客户启用标记,0未启用,1启用', + `minus_stock_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '负库存启用标记,0未启用,1启用', + `purchase_by_sale_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '以销定购启用标记,0未启用,1启用', + `multi_level_approval_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '多级审核启用标记,0未启用,1启用', + `multi_bill_type` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '流程类型,可多选', + `force_approval_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '强审核启用标记,0未启用,1启用', + `update_unit_price_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '1' COMMENT '更新单价启用标记,0未启用,1启用', + `over_link_bill_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '超出关联单据启用标记,0未启用,1启用', + `in_out_manage_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '出入库管理启用标记,0未启用,1启用', + `multi_account_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '多账户启用标记,0未启用,1启用', + `move_avg_price_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '移动平均价启用标记,0未启用,1启用', + `audit_print_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '先审核后打印启用标记,0未启用,1启用', + `zero_change_amount_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '零收付款启用标记,0未启用,1启用', + `customer_static_price_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '客户静态单价启用标记,0未启用,1启用', + `material_price_tax_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '商品价格含税启用标记,0未启用,1启用', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '系统参数' ROW_FORMAT = COMPACT; + +-- ---------------------------- +-- Records of tbl_system_config +-- ---------------------------- +INSERT INTO `tbl_system_config` VALUES (11, '公司test', '小李', '地址1', '12345678', NULL, NULL, '注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。', '0', '0', '0', '0', '0', '', '1', '1', '0', '0', '1', '0', '1', '0', '0', '0', 63, '0'); + +-- ---------------------------- +-- Table structure for tbl_tenant +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_tenant`; +CREATE TABLE `tbl_tenant` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '用户id', + `login_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '登录名', + `user_num_limit` int NULL DEFAULT NULL COMMENT '用户数量限制', + `type` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '租户类型,0免费租户,1付费租户', + `enabled` bit(1) NULL DEFAULT b'1' COMMENT '启用 0-禁用 1-启用', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `expire_time` datetime(0) NULL DEFAULT NULL COMMENT '到期时间', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `create_time`(`create_time`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '租户' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_tenant +-- ---------------------------- +INSERT INTO `tbl_tenant` VALUES (13, 63, 'admin', 2000, '1', b'1', '2021-02-17 23:19:17', '2099-02-17 23:19:17', NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_unit +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_unit`; +CREATE TABLE `tbl_unit` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '名称,支持多单位', + `basic_unit` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '基础单位', + `other_unit` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '副单位', + `other_unit_two` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '副单位2', + `other_unit_three` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '副单位3', + `ratio` decimal(24, 3) NULL DEFAULT NULL COMMENT '比例', + `ratio_two` decimal(24, 3) NULL DEFAULT NULL COMMENT '比例2', + `ratio_three` decimal(24, 3) NULL DEFAULT NULL COMMENT '比例3', + `enabled` bit(1) NULL DEFAULT NULL COMMENT '启用', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '多单位表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_unit +-- ---------------------------- +INSERT INTO `tbl_unit` VALUES (15, '个/(箱=12个)', '个', '箱', NULL, NULL, 12.000, NULL, NULL, b'1', 63, '0'); +INSERT INTO `tbl_unit` VALUES (19, '个/(盒=15个)', '个', '盒', NULL, NULL, 15.000, NULL, NULL, b'1', 63, '0'); +INSERT INTO `tbl_unit` VALUES (20, '盒/(箱=8盒)', '盒', '箱', NULL, NULL, 8.000, NULL, NULL, b'1', 63, '0'); +INSERT INTO `tbl_unit` VALUES (21, '瓶/(箱=12瓶)', '瓶', '箱', NULL, NULL, 12.000, NULL, NULL, b'1', 63, '0'); +INSERT INTO `tbl_unit` VALUES (22, '测试件/(箱=20测试件)', '测试件', '箱', NULL, NULL, 20.000, NULL, NULL, b'1', NULL, '1'); + +-- ---------------------------- +-- Table structure for tbl_user +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_user`; +CREATE TABLE `tbl_user` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `username` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '用户姓名--例如张三', + `login_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '登录用户名', + `password` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '登陆密码', + `leader_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '是否经理,0否,1是', + `position` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '职位', + `department` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '所属部门', + `email` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '电子邮箱', + `phonenum` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '手机号码', + `ismanager` tinyint NOT NULL DEFAULT 1 COMMENT '是否为管理者 0==管理者 1==员工', + `isystem` tinyint NOT NULL DEFAULT 0 COMMENT '是否系统自带数据 ', + `status` tinyint NULL DEFAULT 0 COMMENT '状态,0正常,2封禁', + `description` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '用户描述信息', + `remark` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `weixin_open_id` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '微信绑定', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 150 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '用户表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_user +-- ---------------------------- +INSERT INTO `tbl_user` VALUES (63, 'admin', 'admin', 'd176a5dbc4504e5492c8a644cd977120', '0', '主管', NULL, '666666@qq.com', '1123123123132', 1, 1, 0, '', NULL, NULL, 63, '0'); +INSERT INTO `tbl_user` VALUES (120, '管理员', 'admin_backup', 'e10adc3949ba59abbe56e057f20f883e', '0', NULL, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, NULL, 0, '1'); +INSERT INTO `tbl_user` VALUES (131, 'test123', 'test123', 'e10adc3949ba59abbe56e057f20f883e', '0', '总监', NULL, '7777777@qq.com', '', 1, 0, 0, '', NULL, NULL, 63, '1'); +INSERT INTO `tbl_user` VALUES (146, '管理员', 'admin_backup', '9d39f3391ff9a640f09db5377a596dd2', '0', NULL, NULL, NULL, NULL, 1, 0, 0, NULL, NULL, NULL, 63, '1'); +INSERT INTO `tbl_user` VALUES (147, '瑞银', 'reallin', '9d39f3391ff9a640f09db5377a596dd2', '0', NULL, NULL, NULL, NULL, 1, 0, 0, NULL, NULL, NULL, 63, '1'); +INSERT INTO `tbl_user` VALUES (148, '测试用户_UPD', 'testuser_reg', '5c428d8875d2948607f3e3fe134d71b4', '0', NULL, NULL, NULL, NULL, 1, 0, 0, NULL, NULL, NULL, NULL, '1'); +INSERT INTO `tbl_user` VALUES (149, 'admin2', 'admin2', 'd176a5dbc4504e5492c8a644cd977120', '0', NULL, NULL, NULL, NULL, 1, 0, 0, NULL, NULL, NULL, NULL, '0'); + +-- ---------------------------- +-- Table structure for tbl_user_business +-- ---------------------------- +DROP TABLE IF EXISTS `tbl_user_business`; +CREATE TABLE `tbl_user_business` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `type` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '类别', + `key_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '主id', + `value` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL COMMENT '值', + `btn_str` varchar(20000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '按钮权限', + `tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `type`(`type`) USING BTREE, + INDEX `key_id`(`key_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 89 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '用户/角色/模块关系表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of tbl_user_business +-- ---------------------------- +INSERT INTO `tbl_user_business` VALUES (2, 'RoleFunctions', '4', '[210][225][211][261][32][241][33][199][242][38][41][200][201][239][202][40][232][233][197][44][203][204][205][206][212][246][198][207][259][208][209][226][227][248][228][229][59][235][237][244][22][21][23][220][247][25][24][217][218][26][194][195][31][13][14][243][15][236][234][16][18][245][258][260][1][262][263][264][265][266][270][272][273][274][275][276]', '[{\"funId\":270,\"btnStr\":\"1,2,3,7\"}]', 63, '0'); +INSERT INTO `tbl_user_business` VALUES (5, 'RoleFunctions', '4', '[210][225][211][261][32][241][33][199][242][38][41][200][201][239][202][40][232][233][197][44][203][204][205][206][212][246][198][207][259][208][209][226][227][248][228][229][59][235][237][244][22][21][23][220][247][25][24][217][218][26][194][195][31][13][14][243][15][236][234][16][18][245][258][260][1][270][272][273][274][275][276]', '[{\"funId\":13,\"btnStr\":\"1\"},{\"funId\":14,\"btnStr\":\"1\"},{\"funId\":243,\"btnStr\":\"1\"},{\"funId\":236,\"btnStr\":\"1\"},{\"funId\":234,\"btnStr\":\"1\"},{\"funId\":16,\"btnStr\":\"1\"},{\"funId\":18,\"btnStr\":\"1\"},{\"funId\":245,\"btnStr\":\"1\"},{\"funId\":22,\"btnStr\":\"1\"},{\"funId\":23,\"btnStr\":\"1,3\"},{\"funId\":220,\"btnStr\":\"1\"},{\"funId\":247,\"btnStr\":\"1\"},{\"funId\":25,\"btnStr\":\"1,3\"},{\"funId\":217,\"btnStr\":\"1,3\"},{\"funId\":218,\"btnStr\":\"1,3\"},{\"funId\":26,\"btnStr\":\"1\"},{\"funId\":194,\"btnStr\":\"1\"},{\"funId\":195,\"btnStr\":\"1\"},{\"funId\":31,\"btnStr\":\"1\"},{\"funId\":261,\"btnStr\":\"1,2,7,3\"},{\"funId\":241,\"btnStr\":\"1,2,7,3\"},{\"funId\":33,\"btnStr\":\"1,2,7,3\"},{\"funId\":199,\"btnStr\":\"1,2,7,3\"},{\"funId\":242,\"btnStr\":\"1,2,7,3\"},{\"funId\":41,\"btnStr\":\"1,2,7,3\"},{\"funId\":200,\"btnStr\":\"1,2,7,3\"},{\"funId\":210,\"btnStr\":\"1,2,7,3\"},{\"funId\":211,\"btnStr\":\"1,2,7,3\"},{\"funId\":197,\"btnStr\":\"1,7,2,3\"},{\"funId\":203,\"btnStr\":\"1,7,2,3\"},{\"funId\":204,\"btnStr\":\"1,7,2,3\"},{\"funId\":205,\"btnStr\":\"1,7,2,3\"},{\"funId\":206,\"btnStr\":\"1,2,7,3\"},{\"funId\":212,\"btnStr\":\"1,7,2,3\"},{\"funId\":201,\"btnStr\":\"1,2,7,3\"},{\"funId\":202,\"btnStr\":\"1,2,7,3\"},{\"funId\":40,\"btnStr\":\"1,2,7,3\"},{\"funId\":232,\"btnStr\":\"1,2,7,3\"},{\"funId\":233,\"btnStr\":\"1,2,7,3\"},{\"funId\":270,\"btnStr\":\"1,2,3,7\"}]', NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (6, 'RoleFunctions', '5', '[22][23][25][26][194][195][31][33][200][201][41][199][202]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (7, 'RoleFunctions', '6', '[22][23][220][240][25][217][218][26][194][195][31][59][207][208][209][226][227][228][229][235][237][210][211][241][33][199][242][41][200][201][202][40][232][233][197][203][204][205][206][212]', '[{\"funId\":\"33\",\"btnStr\":\"4\"}]', NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (9, 'RoleFunctions', '7', '[168][13][12][16][14][15][189][18][19][132]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (10, 'RoleFunctions', '8', '[168][13][12][16][14][15][189][18][19][132][22][23][25][26][27][157][158][155][156][125][31][127][126][128][33][34][35][36][37][39][40][41][42][43][46][47][48][49][50][51][52][53][54][55][56][57][192][59][60][61][62][63][65][66][68][69][70][71][73][74][76][77][79][191][81][82][83][85][89][161][86][176][165][160][28][134][91][92][29][94][95][97][104][99][100][101][102][105][107][108][110][111][113][114][116][117][118][120][121][131][135][123][122][20][130][146][147][138][148][149][153][140][145][184][152][143][170][171][169][166][167][163][164][172][173][179][178][181][182][183][186][187][247]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (11, 'RoleFunctions', '9', '[168][13][12][16][14][15][189][18][19][132][22][23][25][26][27][157][158][155][156][125][31][127][126][128][33][34][35][36][37][39][40][41][42][43][46][47][48][49][50][51][52][53][54][55][56][57][192][59][60][61][62][63][65][66][68][69][70][71][73][74][76][77][79][191][81][82][83][85][89][161][86][176][165][160][28][134][91][92][29][94][95][97][104][99][100][101][102][105][107][108][110][111][113][114][116][117][118][120][121][131][135][123][122][20][130][146][147][138][148][149][153][140][145][184][152][143][170][171][169][166][167][163][164][172][173][179][178][181][182][183][186][187][188]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (12, 'UserRole', '1', '[5]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (13, 'UserRole', '2', '[6][7]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (14, 'UserDepot', '2', '[1][2][6][7]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (15, 'UserDepot', '1', '[1][2][5][6][7][10][12][14][15][17]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (16, 'UserRole', '63', '[21]', NULL, 63, '0'); +INSERT INTO `tbl_user_business` VALUES (18, 'UserDepot', '63', '[14][15][18][19][20]', NULL, 63, '0'); +INSERT INTO `tbl_user_business` VALUES (19, 'UserDepot', '5', '[6][45][46][50]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (20, 'UserRole', '5', '[5]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (21, 'UserRole', '64', '[13]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (22, 'UserDepot', '64', '[1]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (23, 'UserRole', '65', '[5]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (24, 'UserDepot', '65', '[1]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (25, 'UserCustomer', '64', '[5][2]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (26, 'UserCustomer', '65', '[6]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (27, 'UserCustomer', '63', '[58][80][82]', NULL, 63, '0'); +INSERT INTO `tbl_user_business` VALUES (28, 'UserDepot', '96', '[7]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (29, 'UserRole', '96', '[6]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (30, 'UserRole', '113', '[10]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (32, 'RoleFunctions', '10', '[210][225][211][261][32][241][33][199][242][38][41][200][201][239][202][40][232][233][197][44][203][204][205][206][212][246][198][207][259][208][209][226][227][248][228][229][59][235][237][244][22][21][23][220][247][25][24][217][218][26][194][195][31][13][14][243][15][236][234][262][263][264][265][266][267]', '[{\"funId\":13,\"btnStr\":\"1\"},{\"funId\":14,\"btnStr\":\"1\"},{\"funId\":243,\"btnStr\":\"1\"},{\"funId\":234,\"btnStr\":\"1\"},{\"funId\":236,\"btnStr\":\"1\"},{\"funId\":22,\"btnStr\":\"1\"},{\"funId\":23,\"btnStr\":\"1,3\"},{\"funId\":220,\"btnStr\":\"1\"},{\"funId\":247,\"btnStr\":\"1\"},{\"funId\":25,\"btnStr\":\"1,3\"},{\"funId\":217,\"btnStr\":\"1,3\"},{\"funId\":218,\"btnStr\":\"1,3\"},{\"funId\":26,\"btnStr\":\"1\"},{\"funId\":194,\"btnStr\":\"1\"},{\"funId\":195,\"btnStr\":\"1\"},{\"funId\":31,\"btnStr\":\"1\"},{\"funId\":261,\"btnStr\":\"1,2,7,3\"},{\"funId\":241,\"btnStr\":\"1,2,7,3\"},{\"funId\":33,\"btnStr\":\"1,2,7,3\"},{\"funId\":199,\"btnStr\":\"1,7,2,3\"},{\"funId\":242,\"btnStr\":\"1,2,7,3\"},{\"funId\":41,\"btnStr\":\"1,2,7,3\"},{\"funId\":200,\"btnStr\":\"1,2,7,3\"},{\"funId\":210,\"btnStr\":\"1,2,7,3\"},{\"funId\":211,\"btnStr\":\"1,2,7,3\"},{\"funId\":197,\"btnStr\":\"1,2,7,3\"},{\"funId\":203,\"btnStr\":\"1,7,2,3\"},{\"funId\":204,\"btnStr\":\"1,7,2,3\"},{\"funId\":205,\"btnStr\":\"1,2,7,3\"},{\"funId\":206,\"btnStr\":\"1,7,2,3\"},{\"funId\":212,\"btnStr\":\"1,2,7,3\"},{\"funId\":201,\"btnStr\":\"1,2,7,3\"},{\"funId\":202,\"btnStr\":\"1,2,7,3\"},{\"funId\":40,\"btnStr\":\"1,2,7,3\"},{\"funId\":232,\"btnStr\":\"1,2,7,3\"},{\"funId\":233,\"btnStr\":\"1,2,7,3\"}]', NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (34, 'UserRole', '115', '[10]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (35, 'UserRole', '117', '[10]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (36, 'UserDepot', '117', '[8][9]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (37, 'UserCustomer', '117', '[52]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (38, 'UserRole', '120', '[4]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (41, 'RoleFunctions', '12', '', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (48, 'RoleFunctions', '13', '[59][207][208][209][226][227][228][229][235][237][210][211][241][33][199][242][41][200]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (51, 'UserRole', '74', '[10]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (52, 'UserDepot', '121', '[13]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (54, 'UserDepot', '115', '[13]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (56, 'UserCustomer', '115', '[56]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (57, 'UserCustomer', '121', '[56]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (67, 'UserRole', '131', '[16]', NULL, 63, '0'); +INSERT INTO `tbl_user_business` VALUES (68, 'RoleFunctions', '16', '[210][262][263][264][265][266]', NULL, 63, '0'); +INSERT INTO `tbl_user_business` VALUES (69, 'RoleFunctions', '17', '[210][225][211][241][32][33][199][242][38][41][200][201][239][202][40][232][233][197][44][203][204][205][206][212][262][263][264][265][266]', '[{\"funId\":\"241\",\"btnStr\":\"1,2\"},{\"funId\":\"33\",\"btnStr\":\"1,2\"},{\"funId\":\"199\",\"btnStr\":\"1,2\"},{\"funId\":\"242\",\"btnStr\":\"1,2\"},{\"funId\":\"41\",\"btnStr\":\"1,2\"},{\"funId\":\"200\",\"btnStr\":\"1,2\"},{\"funId\":\"210\",\"btnStr\":\"1,2\"},{\"funId\":\"211\",\"btnStr\":\"1,2\"},{\"funId\":\"197\",\"btnStr\":\"1\"},{\"funId\":\"203\",\"btnStr\":\"1\"},{\"funId\":\"204\",\"btnStr\":\"1\"},{\"funId\":\"205\",\"btnStr\":\"1\"},{\"funId\":\"206\",\"btnStr\":\"1\"},{\"funId\":\"212\",\"btnStr\":\"1\"},{\"funId\":\"201\",\"btnStr\":\"1,2\"},{\"funId\":\"202\",\"btnStr\":\"1,2\"},{\"funId\":\"40\",\"btnStr\":\"1,2\"},{\"funId\":\"232\",\"btnStr\":\"1,2\"},{\"funId\":\"233\",\"btnStr\":\"1,2\"}]', 63, '0'); +INSERT INTO `tbl_user_business` VALUES (83, 'RoleFunctions', '21', '[242][38][41][271][268][200][210][211][261][32][241][33][199][263][262][264][265][266][246][201][202][270][204][205][273][272][274][275][22][21][23][220][247][207][259][208][209][226][227][228][229][59][235][237][244][13][1][14][243][15][236][234][16][245][260][258][25][24][217][218][267][26][194][195][31][276]', '[{\"funId\":13,\"btnStr\":\"8,1\"},{\"funId\":14,\"btnStr\":\"1\"},{\"funId\":243,\"btnStr\":\"1\"},{\"funId\":236,\"btnStr\":\"1\"},{\"funId\":234,\"btnStr\":\"1\"},{\"funId\":16,\"btnStr\":\"1\"},{\"funId\":245,\"btnStr\":\"1\"},{\"funId\":22,\"btnStr\":\"1\"},{\"funId\":23,\"btnStr\":\"1,3\"},{\"funId\":220,\"btnStr\":\"1\"},{\"funId\":247,\"btnStr\":\"1\"},{\"funId\":25,\"btnStr\":\"1,3\"},{\"funId\":217,\"btnStr\":\"1,3\"},{\"funId\":218,\"btnStr\":\"1,3\"},{\"funId\":26,\"btnStr\":\"1\"},{\"funId\":194,\"btnStr\":\"1\"},{\"funId\":195,\"btnStr\":\"1\"},{\"funId\":31,\"btnStr\":\"1\"},{\"funId\":261,\"btnStr\":\"1,2,3,7\"},{\"funId\":241,\"btnStr\":\"1,2,3,7\"},{\"funId\":33,\"btnStr\":\"1,2,3,7\"},{\"funId\":199,\"btnStr\":\"1,2,3,7\"},{\"funId\":242,\"btnStr\":\"1,2,3,7\"},{\"funId\":41,\"btnStr\":\"1,2,3,7\"},{\"funId\":271,\"btnStr\":\"1,2,7\"},{\"funId\":268,\"btnStr\":\"1,2,7\"},{\"funId\":200,\"btnStr\":\"1,2,3,7\"},{\"funId\":210,\"btnStr\":\"1,2,3,7\"},{\"funId\":211,\"btnStr\":\"1,2,3,7\"},{\"funId\":197,\"btnStr\":\"1,2,3,7\"},{\"funId\":203,\"btnStr\":\"1,2,3,7\"},{\"funId\":204,\"btnStr\":\"1,2,3,7\"},{\"funId\":205,\"btnStr\":\"1,2,3,7\"},{\"funId\":264,\"btnStr\":\"1,2,3\"},{\"funId\":265,\"btnStr\":\"1,2,3\"},{\"funId\":266,\"btnStr\":\"1,2,3\"},{\"funId\":206,\"btnStr\":\"1,2,3,7\"},{\"funId\":212,\"btnStr\":\"1,2,3,7\"},{\"funId\":201,\"btnStr\":\"1,2,3,7\"},{\"funId\":202,\"btnStr\":\"1,2,3,7\"},{\"funId\":40,\"btnStr\":\"1,2,3,7\"},{\"funId\":232,\"btnStr\":\"1,2,3,7\"},{\"funId\":270,\"btnStr\":\"1,2,3,7\"},{\"funId\":233,\"btnStr\":\"1,2,3,7\"}]', 63, '0'); +INSERT INTO `tbl_user_business` VALUES (84, 'UserRole', '146', '[21]', NULL, 63, '0'); +INSERT INTO `tbl_user_business` VALUES (85, 'UserRole', '147', '[21]', NULL, 63, '0'); +INSERT INTO `tbl_user_business` VALUES (86, 'UserCustomer', '147', '[80]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (87, 'UserRole', '148', '[4]', NULL, NULL, '0'); +INSERT INTO `tbl_user_business` VALUES (88, 'UserRole', '149', '[23]', NULL, NULL, '0'); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/smtERP-boot/docs/sql_update_permission_management.sql b/smtERP-boot/docs/sql_update_permission_management.sql new file mode 100644 index 0000000..bc6ad40 --- /dev/null +++ b/smtERP-boot/docs/sql_update_permission_management.sql @@ -0,0 +1,13 @@ +-- 为“角色管理”菜单增加“权限管理”按钮权限(按钮编号 8) +-- 当前项目 Mapper 使用 tbl_function;如部署库仍使用旧表名 jsh_function,请替换表名后执行。 +UPDATE `tbl_function` +SET `push_btn` = CASE + WHEN `push_btn` IS NULL OR `push_btn` = '' THEN '8' + WHEN FIND_IN_SET('8', `push_btn`) = 0 THEN CONCAT(`push_btn`, ',8') + ELSE `push_btn` +END +WHERE `number` = '000102' + AND IFNULL(`delete_flag`, '0') != '1'; + +-- 执行后使用 admin 登录,在“角色管理 -> 分配按钮”中, +-- 给需要管理全部菜单的角色勾选“权限管理”。 diff --git a/smtERP-boot/docs/sql_update_production.sql b/smtERP-boot/docs/sql_update_production.sql new file mode 100644 index 0000000..4ac34a8 --- /dev/null +++ b/smtERP-boot/docs/sql_update_production.sql @@ -0,0 +1,221 @@ +-- ---------------------------- +-- 生产管理模块建表脚本(P0) +-- 执行方式:在 MySQL 8.0 中执行本脚本 +-- ---------------------------- + +-- ---------------------------- +-- 1、包装BOM主表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_pack_bom`; +CREATE TABLE `jsh_pack_bom` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `bom_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '方案编号', + `bom_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '方案名称', + `product_material_id` bigint(0) NULL DEFAULT NULL COMMENT '待包装产品商品id', + `product_material_extend_id` bigint(0) NULL DEFAULT NULL COMMENT '待包装产品扩展id', + `product_sku` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '待包装产品多属性', + `output_material_id` bigint(0) NULL DEFAULT NULL COMMENT '成品SKU商品id', + `output_material_extend_id` bigint(0) NULL DEFAULT NULL COMMENT '成品扩展id', + `output_sku` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '成品多属性', + `output_number` decimal(24, 6) NULL DEFAULT NULL COMMENT '单位待包装产品产出成品数量', + `version` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'V1' COMMENT '版本', + `enabled` bit(1) NULL DEFAULT b'1' COMMENT '启用状态', + `remark` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `product_material_id`(`product_material_id`) USING BTREE, + INDEX `output_material_id`(`output_material_id`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '包装BOM主表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- 2、包装BOM包材明细表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_pack_bom_item`; +CREATE TABLE `jsh_pack_bom_item` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `bom_id` bigint(0) NOT NULL COMMENT '包装BOM id', + `material_id` bigint(0) NOT NULL COMMENT '包材商品id', + `material_extend_id` bigint(0) NULL DEFAULT NULL COMMENT '商品扩展id', + `material_sku` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '多属性', + `unit` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位', + `quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '用量(每产出1单位成品所需包材数量)', + `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `bom_id`(`bom_id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '包装BOM包材明细表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- 3、生产工单主表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_production_order`; +CREATE TABLE `jsh_production_order` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `order_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工单号', + `source_type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '来源类型(销售订单/手工备货)', + `source_id` bigint(0) NULL DEFAULT NULL COMMENT '来源单据id(销售订单depot_head.id)', + `source_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '来源单据号(销售订单号)', + `product_material_id` bigint(0) NULL DEFAULT NULL COMMENT '待包装产品商品id', + `product_material_extend_id` bigint(0) NULL DEFAULT NULL COMMENT '待包装产品扩展id', + `product_sku` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '待包装产品多属性', + `bom_id` bigint(0) NULL DEFAULT NULL COMMENT '包装BOM id', + `output_material_id` bigint(0) NULL DEFAULT NULL COMMENT '成品SKU商品id', + `output_material_extend_id` bigint(0) NULL DEFAULT NULL COMMENT '成品扩展id', + `output_sku` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '成品多属性', + `order_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '工单数量(待包装产品)', + `output_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '预计成品数量', + `finished_quantity` decimal(24, 6) NULL DEFAULT 0.000000 COMMENT '已完工良品数', + `plan_start_date` datetime(0) NULL DEFAULT NULL COMMENT '计划开工日期', + `plan_end_date` datetime(0) NULL DEFAULT NULL COMMENT '计划完工日期', + `actual_start_date` datetime(0) NULL DEFAULT NULL COMMENT '实际开工日期', + `actual_end_date` datetime(0) NULL DEFAULT NULL COMMENT '实际完工日期', + `priority` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '优先级,0普通、1紧急', + `status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '状态,0已创建、1已下达、2生产中、3已完工、4已关闭', + `audit_by` bigint(0) NULL DEFAULT NULL COMMENT '审批人', + `audit_time` datetime(0) NULL DEFAULT NULL COMMENT '审批时间', + `release_by` bigint(0) NULL DEFAULT NULL COMMENT '下达人', + `release_time` datetime(0) NULL DEFAULT NULL COMMENT '下达时间', + `close_reason` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '关闭原因', + `remark` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `order_number`(`order_number`) USING BTREE, + INDEX `source_number`(`source_number`) USING BTREE, + INDEX `status`(`status`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '生产工单主表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- 4、工单操作日志表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_production_order_log`; +CREATE TABLE `jsh_production_order_log` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `order_id` bigint(0) NULL DEFAULT NULL COMMENT '工单id', + `order_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工单号', + `operation_type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作类型(创建/修改/审批下达/开工/生成领料/发料/完工/关闭等)', + `operation_desc` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作描述', + `operator` bigint(0) NULL DEFAULT NULL COMMENT '操作人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '操作时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户id', + PRIMARY KEY (`id`) USING BTREE, + INDEX `order_id`(`order_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '工单操作日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- 5、生产领料单主表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_production_requisition`; +CREATE TABLE `jsh_production_requisition` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `requisition_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '领料单号', + `order_id` bigint(0) NULL DEFAULT NULL COMMENT '工单id', + `order_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工单号', + `depot_id` bigint(0) NULL DEFAULT NULL COMMENT '发料仓库id', + `status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '状态,0待确认、1已发料、2已驳回', + `confirm_by` bigint(0) NULL DEFAULT NULL COMMENT '确认人', + `confirm_time` datetime(0) NULL DEFAULT NULL COMMENT '确认时间', + `remark` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `requisition_number`(`requisition_number`) USING BTREE, + INDEX `order_id`(`order_id`) USING BTREE, + INDEX `status`(`status`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '生产领料单主表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- 6、生产领料单明细表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_production_requisition_item`; +CREATE TABLE `jsh_production_requisition_item` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `requisition_id` bigint(0) NOT NULL COMMENT '领料单id', + `depot_id` bigint(0) NULL DEFAULT NULL COMMENT '发料仓库id', + `material_id` bigint(0) NOT NULL COMMENT '物料商品id', + `material_extend_id` bigint(0) NULL DEFAULT NULL COMMENT '商品扩展id', + `material_sku` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '多属性', + `unit` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位', + `required_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '申请数量(BOM定额)', + `issued_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '实发数量', + `unit_price` decimal(24, 6) NULL DEFAULT NULL COMMENT '参考单价', + `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `requisition_id`(`requisition_id`) USING BTREE, + INDEX `depot_id`(`depot_id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '生产领料单明细表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- 7、完工报告主表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_production_report`; +CREATE TABLE `jsh_production_report` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `report_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '报告号', + `order_id` bigint(0) NULL DEFAULT NULL COMMENT '工单id', + `order_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '工单号', + `finished_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '实际良品数', + `defect_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '不良品数', + `qualified_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '质检结果,0未检、1合格、2不合格', + `depot_id` bigint(0) NULL DEFAULT NULL COMMENT '入库仓库id', + `in_number` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生产入库单号', + `audit_status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '审核状态,0待审核、1已审核、2已驳回', + `audit_by` bigint(0) NULL DEFAULT NULL COMMENT '审核人', + `audit_time` datetime(0) NULL DEFAULT NULL COMMENT '审核时间', + `report_by` bigint(0) NULL DEFAULT NULL COMMENT '报工人', + `report_date` datetime(0) NULL DEFAULT NULL COMMENT '报工日期', + `remark` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `creator` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `report_number`(`report_number`) USING BTREE, + INDEX `order_id`(`order_id`) USING BTREE, + INDEX `audit_status`(`audit_status`) USING BTREE, + INDEX `tenant_id`(`tenant_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '完工报告主表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- 8、完工报告物料消耗明细表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_production_report_item`; +CREATE TABLE `jsh_production_report_item` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `report_id` bigint(0) NOT NULL COMMENT '完工报告id', + `material_id` bigint(0) NOT NULL COMMENT '物料商品id', + `material_extend_id` bigint(0) NULL DEFAULT NULL COMMENT '商品扩展id', + `material_sku` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '多属性', + `unit` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位', + `consumption_quantity` decimal(24, 6) NULL DEFAULT NULL COMMENT '实际消耗数量', + `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户id', + `delete_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '删除标记,0未删除,1删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `report_id`(`report_id`) USING BTREE, + INDEX `material_id`(`material_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '完工报告物料消耗明细表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- 9、生产管理菜单(jsh_function) +-- ---------------------------- +INSERT INTO `jsh_function` (`number`, `name`, `parent_number`, `url`, `component`, `state`, `sort`, `enabled`, `type`, `push_btn`, `icon`, `delete_flag`) VALUES ('0901', '生产管理', '0', '/production', '/layouts/TabLayout', b'0', '0480', b'1', '电脑版', '', 'cluster', '0'); +INSERT INTO `jsh_function` (`number`, `name`, `parent_number`, `url`, `component`, `state`, `sort`, `enabled`, `type`, `push_btn`, `icon`, `delete_flag`) VALUES ('090101', '包装方案', '0901', '/production/pack_bom', '/production/PackBomList', b'0', '0481', b'1', '电脑版', '1,2,3', 'profile', '0'); +INSERT INTO `jsh_function` (`number`, `name`, `parent_number`, `url`, `component`, `state`, `sort`, `enabled`, `type`, `push_btn`, `icon`, `delete_flag`) VALUES ('090102', '生产工单', '0901', '/production/order', '/production/OrderList', b'0', '0482', b'1', '电脑版', '1,2,3', 'profile', '0'); +INSERT INTO `jsh_function` (`number`, `name`, `parent_number`, `url`, `component`, `state`, `sort`, `enabled`, `type`, `push_btn`, `icon`, `delete_flag`) VALUES ('090103', '领料管理', '0901', '/production/requisition', '/production/RequisitionList', b'0', '0483', b'1', '电脑版', '1,2,3', 'profile', '0'); +INSERT INTO `jsh_function` (`number`, `name`, `parent_number`, `url`, `component`, `state`, `sort`, `enabled`, `type`, `push_btn`, `icon`, `delete_flag`) VALUES ('090104', '完工报工', '0901', '/production/report', '/production/ReportList', b'0', '0484', b'1', '电脑版', '1,2,3', 'profile', '0'); diff --git a/smtERP-boot/pom.xml b/smtERP-boot/pom.xml new file mode 100644 index 0000000..e444164 --- /dev/null +++ b/smtERP-boot/pom.xml @@ -0,0 +1,219 @@ + + + 4.0.0 + com.reallin + smt-erp + 1.0.0 + smt-erp + smt-erp + + + org.springframework.boot + spring-boot-starter-parent + 2.0.0.RELEASE + + + + UTF-8 + UTF-8 + 11 + 2.28.2 + 1.9.10 + + + + + com.gitee.starblues + springboot-plugin-framework + 2.2.1-RELEASE + + + com.gitee.starblues + springboot-plugin-framework-extension-mybatis + 2.2.1-RELEASE + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-test + test + + + com.alibaba + fastjson + 1.2.83 + + + mysql + mysql-connector-java + 8.0.33 + + + + org.apache.httpcomponents + httpclient + 4.5.2 + + + net.sourceforge.jexcelapi + jxl + 2.6.12 + + + org.apache.poi + poi-ooxml + 4.1.2 + + + + org.projectlombok + lombok + 1.18.12 + + + + org.apache.logging.log4j + log4j-to-slf4j + 2.15.0 + compile + + + org.slf4j + jul-to-slf4j + 1.7.25 + compile + + + com.baomidou + mybatis-plus-boot-starter + 3.0.7.1 + + + org.springframework.boot + spring-boot-starter-redis + 1.4.1.RELEASE + + + io.springfox + springfox-swagger2 + 2.7.0 + compile + + + com.github.xiaoymin + swagger-bootstrap-ui + 1.6 + + + com.aliyun.oss + aliyun-sdk-oss + 3.10.1 + + + com.itextpdf + itextpdf + 5.5.13.1 + + + org.apache.commons + commons-io + 1.3.2 + + + com.belerweb + pinyin4j + 2.5.1 + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.2.13 + + + com.sun.mail + javax.mail + 1.6.2 + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.4 + + + org.springframework.boot + spring-boot-maven-plugin + 2.0.3.RELEASE + + + build-info + generate-sources + + build-info + + + + repackage + package + + repackage + + + com.reallin.smt.ErpApplication + JAR + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.5.1 + + + make-zip + package + + single + + + + src/main/assembly/assembly.xml + + ./dist + + + + + + org.mybatis.generator + mybatis-generator-maven-plugin + 1.4.0 + + ${basedir}/src/test/resources/generatorConfig.xml + true + true + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.7.0 + + 11 + + + + + diff --git a/smtERP-boot/scripts/sync_sas_assets.ps1 b/smtERP-boot/scripts/sync_sas_assets.ps1 new file mode 100644 index 0000000..7eb5d79 --- /dev/null +++ b/smtERP-boot/scripts/sync_sas_assets.ps1 @@ -0,0 +1,194 @@ +param( + [string]$BaseUrl = 'https://sms.smt.com.my/sas/api', + [string]$DatabaseHost = '127.0.0.1', + [int]$DatabasePort = 3306, + [string]$DatabaseName = 'app072', + [string]$DatabaseUser = 'root', + [string]$MySqlPath = 'D:\Program Files\mysql\MySQL Server 8.0\bin\mysql.exe' +) + +$ErrorActionPreference = 'Stop' +if ([string]::IsNullOrWhiteSpace($env:SAS_USERNAME) -or [string]::IsNullOrWhiteSpace($env:SAS_PASSWORD)) { + throw 'Please set SAS_USERNAME and SAS_PASSWORD.' +} +if ([string]::IsNullOrWhiteSpace($env:MYSQL_PWD)) { + throw 'Please set MYSQL_PWD.' +} + +function ConvertTo-SqlValue($value) { + if ($null -eq $value -or [string]::IsNullOrWhiteSpace([string]$value)) { return 'NULL' } + return "'" + ([string]$value).Replace("'", "''") + "'" +} + +function Limit-Text($value, [int]$length) { + if ($null -eq $value) { return $null } + $text = [string]$value + if ($text.Length -le $length) { return $text } + return $text.Substring(0, $length) +} + +function ConvertTo-IsoDate($value) { + if ($null -eq $value -or [string]::IsNullOrWhiteSpace([string]$value)) { return $null } + return ([DateTime]::Parse([string]$value)).ToString('yyyy-MM-dd') +} + +function Join-Present([object[]]$values, [string]$separator) { + return (($values | Where-Object { $null -ne $_ -and -not [string]::IsNullOrWhiteSpace([string]$_) }) -join $separator) +} + +$loginBody = @{ + username = $env:SAS_USERNAME + password = $env:SAS_PASSWORD +} | ConvertTo-Json +$login = Invoke-RestMethod -Uri "$BaseUrl/auth/login" -Method Post -ContentType 'application/json' -Body $loginBody +if (-not $login.token) { throw 'SAS login did not return a token.' } +$headers = @{ Authorization = "Bearer $($login.token)" } +$hardware = (Invoke-RestMethod -Uri "$BaseUrl/hardware?limit=9999&page=1" -Headers $headers).data +$software = (Invoke-RestMethod -Uri "$BaseUrl/software?limit=9999&page=1" -Headers $headers).data +$simCards = (Invoke-RestMethod -Uri "$BaseUrl/sim?limit=9999&page=1" -Headers $headers).data + +$sql = New-Object System.Text.StringBuilder +[void]$sql.AppendLine('SET NAMES utf8mb4; START TRANSACTION;') +[void]$sql.AppendLine("SET @cat_hardware=(SELECT id FROM tbl_asset_category WHERE category_code='HARDWARE' LIMIT 1);") +[void]$sql.AppendLine("SET @cat_software=(SELECT id FROM tbl_asset_category WHERE category_code='SOFTWARE' LIMIT 1);") +[void]$sql.AppendLine("SET @cat_sim=(SELECT id FROM tbl_asset_category WHERE category_code='SIM_CARD' LIMIT 1);") +[void]$sql.AppendLine("SET @creator=(SELECT id FROM tbl_user WHERE IFNULL(delete_flag,'0')!='1' ORDER BY id LIMIT 1);") + +foreach ($item in $hardware) { + $code = if ([string]::IsNullOrWhiteSpace([string]$item.asset_code)) { "SAS-HW-$($item.id)" } else { [string]$item.asset_code } + $name = Join-Present @($item.brand, $item.model) ' ' + if ([string]::IsNullOrWhiteSpace($name)) { $name = Join-Present @($item.type, "硬件资产 $($item.id)") ' ' } + $specification = Limit-Text (Join-Present @( + $item.type, $item.brand, $item.model, $item.operating_system, $item.cpu, + $item.memory_capacity, $item.storage_capacity + ) ' / ') 150 + $status = switch ([string]$item.status) { + 'Dormant' { 'IDLE' } + 'Spoil' { 'REPAIR' } + 'Dispose' { 'SCRAPPED' } + default { 'IN_USE' } + } + $remark = Limit-Text (Join-Present @( + $(if ($item.serial_number) { "序列号: $($item.serial_number)" }), + $(if ($item.mac_address) { "MAC: $($item.mac_address)" }), + $(if ($item.purpose) { "用途: $($item.purpose)" }), + $(if ($item.remarks) { "原备注: $($item.remarks)" }) + ) ';') 500 + $values = @( + (ConvertTo-SqlValue (Limit-Text $code 64)), + (ConvertTo-SqlValue (Limit-Text $name 150)), + '@cat_hardware', + (ConvertTo-SqlValue '硬件资产'), + (ConvertTo-SqlValue $specification), + (ConvertTo-SqlValue '台'), + '1', '0', + (ConvertTo-SqlValue (ConvertTo-IsoDate $item.date_of_purchase)), + (ConvertTo-SqlValue (Limit-Text $item.department 100)), + (ConvertTo-SqlValue (Limit-Text $item.person_in_charge 100)), + (ConvertTo-SqlValue (Limit-Text $item.location 255)), + (ConvertTo-SqlValue $status), + (ConvertTo-SqlValue 'SAS'), + (ConvertTo-SqlValue 'HARDWARE'), + (ConvertTo-SqlValue ([string]$item.id)), + (ConvertTo-SqlValue $remark), + '@creator', "'0'", 'NOW()', 'NOW()' + ) -join ',' + $statement = "INSERT INTO tbl_asset " + + "(asset_code,asset_name,category_id,asset_category,specification,unit,quantity,original_value,purchase_date,use_department,keeper,location,status,source,external_source,external_id,remark,creator,delete_flag,create_time,update_time) " + + "VALUES($values) ON DUPLICATE KEY UPDATE " + + "asset_code=VALUES(asset_code),asset_name=VALUES(asset_name),category_id=VALUES(category_id)," + + "asset_category=VALUES(asset_category),specification=VALUES(specification),purchase_date=VALUES(purchase_date)," + + "use_department=VALUES(use_department),keeper=VALUES(keeper),location=VALUES(location),status=VALUES(status)," + + "remark=VALUES(remark),updater=@creator,delete_flag='0',update_time=NOW();" + [void]$sql.AppendLine($statement) +} + +foreach ($item in $software) { + $code = "SAS-SW-$($item.id)" + $name = if ([string]::IsNullOrWhiteSpace([string]$item.description)) { "软件资产 $($item.id)" } else { [string]$item.description } + $specification = Limit-Text (Join-Present @($item.vendor, $item.cd_cert) ' / ') 150 + $quantity = if ($null -eq $item.quantity -or [decimal]$item.quantity -le 0) { [decimal]1 } else { [decimal]$item.quantity } + $originalValue = if ($null -eq $item.price) { [decimal]0 } else { [decimal]$item.price * $quantity } + $quantityText = $quantity.ToString([System.Globalization.CultureInfo]::InvariantCulture) + $valueText = $originalValue.ToString([System.Globalization.CultureInfo]::InvariantCulture) + $remark = Limit-Text (Join-Present @( + $(if ($item.vendor) { "供应商: $($item.vendor)" }), + $(if ($item.license_key) { "许可证: $($item.license_key)" }), + $(if ($item.invoice_no) { "发票号: $($item.invoice_no)" }), + $(if ($item.remark) { "原备注: $($item.remark)" }) + ) ';') 500 + $values = @( + (ConvertTo-SqlValue $code), + (ConvertTo-SqlValue (Limit-Text $name 150)), + '@cat_software', + (ConvertTo-SqlValue '软件资产'), + (ConvertTo-SqlValue $specification), + (ConvertTo-SqlValue '套'), + $quantityText, $valueText, + (ConvertTo-SqlValue (ConvertTo-IsoDate $item.invoice_date)), + (ConvertTo-SqlValue (Limit-Text $item.department 100)), + 'NULL', 'NULL', + (ConvertTo-SqlValue 'IN_USE'), + (ConvertTo-SqlValue 'SAS'), + (ConvertTo-SqlValue 'SOFTWARE'), + (ConvertTo-SqlValue ([string]$item.id)), + (ConvertTo-SqlValue $remark), + '@creator', "'0'", 'NOW()', 'NOW()' + ) -join ',' + $statement = "INSERT INTO tbl_asset " + + "(asset_code,asset_name,category_id,asset_category,specification,unit,quantity,original_value,purchase_date,use_department,keeper,location,status,source,external_source,external_id,remark,creator,delete_flag,create_time,update_time) " + + "VALUES($values) ON DUPLICATE KEY UPDATE " + + "asset_name=VALUES(asset_name),category_id=VALUES(category_id),asset_category=VALUES(asset_category)," + + "specification=VALUES(specification),quantity=VALUES(quantity),original_value=VALUES(original_value)," + + "purchase_date=VALUES(purchase_date),use_department=VALUES(use_department),status=VALUES(status)," + + "remark=VALUES(remark),updater=@creator,delete_flag='0',update_time=NOW();" + [void]$sql.AppendLine($statement) +} + +foreach ($item in $simCards) { + $code = if ([string]::IsNullOrWhiteSpace([string]$item.sim_number)) { "SAS-SIM-$($item.id)" } else { "SIM-$($item.sim_number)" } + $name = if ([string]::IsNullOrWhiteSpace([string]$item.sim_number)) { "SIM卡 $($item.id)" } else { "SIM卡 $($item.sim_number)" } + $specification = Limit-Text (Join-Present @($item.ip_address, $item.comm_device, $item.comm_device_serial) ' / ') 150 + $status = if ([string]$item.status -eq 'Eliminated') { 'SCRAPPED' } else { 'IN_USE' } + $remark = Limit-Text (Join-Present @( + $(if ($item.comm_device_serial) { "设备序列号: $($item.comm_device_serial)" }), + $(if ($item.meter_serial) { "电表序列号: $($item.meter_serial)" }), + $(if ($item.duration) { "使用期限: $($item.duration)" }), + $(if ($item.date_activation) { "启用日期: $(ConvertTo-IsoDate $item.date_activation)" }) + ) ';') 500 + $values = @( + (ConvertTo-SqlValue (Limit-Text $code 64)), + (ConvertTo-SqlValue (Limit-Text $name 150)), + '@cat_sim', + (ConvertTo-SqlValue 'SIM卡'), + (ConvertTo-SqlValue $specification), + (ConvertTo-SqlValue '张'), + '1', '0', + (ConvertTo-SqlValue (ConvertTo-IsoDate $item.date_activation)), + 'NULL', + (ConvertTo-SqlValue (Limit-Text $item.owner 100)), + (ConvertTo-SqlValue (Limit-Text $item.location 255)), + (ConvertTo-SqlValue $status), + (ConvertTo-SqlValue 'SAS'), + (ConvertTo-SqlValue 'SIM'), + (ConvertTo-SqlValue ([string]$item.id)), + (ConvertTo-SqlValue $remark), + '@creator', "'0'", 'NOW()', 'NOW()' + ) -join ',' + $statement = "INSERT INTO tbl_asset " + + "(asset_code,asset_name,category_id,asset_category,specification,unit,quantity,original_value,purchase_date,use_department,keeper,location,status,source,external_source,external_id,remark,creator,delete_flag,create_time,update_time) " + + "VALUES($values) ON DUPLICATE KEY UPDATE " + + "asset_code=VALUES(asset_code),asset_name=VALUES(asset_name),category_id=VALUES(category_id)," + + "asset_category=VALUES(asset_category),specification=VALUES(specification),purchase_date=VALUES(purchase_date)," + + "keeper=VALUES(keeper),location=VALUES(location),status=VALUES(status),remark=VALUES(remark)," + + "updater=@creator,delete_flag='0',update_time=NOW();" + [void]$sql.AppendLine($statement) +} + +[void]$sql.AppendLine('COMMIT;') + +$OutputEncoding = New-Object System.Text.UTF8Encoding($false) +$sql.ToString() | & $MySqlPath -h $DatabaseHost -P $DatabasePort -u $DatabaseUser -D $DatabaseName --default-character-set=utf8mb4 +if ($LASTEXITCODE -ne 0) { throw "MySQL synchronization failed with exit code $LASTEXITCODE." } + +Write-Output "SYNCED hardware=$($hardware.Count) software=$($software.Count) sim=$($simCards.Count)" diff --git a/smtERP-boot/src/main/assembly/assembly.xml b/smtERP-boot/src/main/assembly/assembly.xml new file mode 100644 index 0000000..ea40299 --- /dev/null +++ b/smtERP-boot/src/main/assembly/assembly.xml @@ -0,0 +1,66 @@ + + + + bin + + + zip + + + true + + + + ${project.basedir}/target + + *.jar + + /lib + + + ${project.basedir}/src/main/resources + + *.properties + *.yml + *.yaml + *.xml + + /config + + + ${project.basedir}/src/main/bin + /bin + + run-manage.sh + + lf + + + ${project.basedir}/src/main/bin/ + / + + start.bat + restart.sh + start.sh + stop.sh + status.sh + + + + docs + /docs + + + ${project.basedir} + + *.md + *.txt + + / + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/bin/restart.sh b/smtERP-boot/src/main/bin/restart.sh new file mode 100644 index 0000000..70c0be1 --- /dev/null +++ b/smtERP-boot/src/main/bin/restart.sh @@ -0,0 +1 @@ +./bin/run-manage.sh restart \ No newline at end of file diff --git a/smtERP-boot/src/main/bin/run-manage.sh b/smtERP-boot/src/main/bin/run-manage.sh new file mode 100644 index 0000000..a349a38 --- /dev/null +++ b/smtERP-boot/src/main/bin/run-manage.sh @@ -0,0 +1,133 @@ +#!/bin/bash + +SERVER_NAME=jshERP +readonly APP_HOME=${FILE_PATH:-$(dirname $(cd `dirname $0`; pwd))} +#readonly JAVA_HOME="" +readonly CONFIG_HOME="$APP_HOME/config/" +readonly LIB_HOME="$APP_HOME/lib" +readonly LOGS_HOME="$APP_HOME/logs" +readonly PID_FILE="$LOGS_HOME/application.pid" +readonly APP_MAIN_CLASS="jshERP.jar" +readonly LOG_CONFIG="$CONFIG_HOME/logback-spring.xml" +readonly JAVA_RUN="-Dlogs.home=$LOGS_HOME -Dlogging.config=$LOG_CONFIG -Dspring.config.location=file:$CONFIG_HOME -Dspring.pid.file=$PID_FILE -Dspring.pid.fail-on-write-error=true" +readonly JAVA_OPTS="-server -Xms128m -Xmx320m -XX:PermSize=128M -XX:MaxPermSize=256M $JAVA_RUN" +readonly JAVA="java" +PID=0 +if [ ! -x "$LOGS_HOME" ] +then + mkdir $LOGS_HOME +fi +chmod +x -R "$JAVA_HOME/bin/" +functions="/etc/functions.sh" +if test -f $functions ; then + . $functions +else + success() + { + echo " SUCCESS! $@" + } + failure() + { + echo " ERROR! $@" + } + warning() + { + echo "WARNING! $@" + } +fi +function checkpid() { + PID=$(ps -ef | grep $APP_MAIN_CLASS | grep -v 'grep' | awk '{print int($2)}') + if [[ -n "$PID" ]] + then + return 0 + else + return 1 + fi +} +function start() { + checkpid + if [[ $? -eq 0 ]] + then + warning "[$APP_MAIN_CLASS]: already started! (PID=$PID)" + else + echo -n "[$APP_MAIN_CLASS]: Starting ..." + JAVA_CMD="nohup $JAVA $JAVA_OPTS -jar $LIB_HOME/$APP_MAIN_CLASS > /dev/null 2>&1 &" + # echo "Exec cmmand : $JAVA_CMD" + sh -c "$JAVA_CMD" + sleep 3 + checkpid + if [[ $? -eq 0 ]] + then + success "(PID=$PID) " + else + failure " " + fi + fi +} +function stop() { + checkpid + if [[ $? -eq 0 ]]; + then + echo -n "[$APP_MAIN_CLASS]: Shutting down ...(PID=$PID) " + kill -9 $PID + if [[ $? -eq 0 ]]; + then + echo 0 > $PID_FILE + success " " + else + failure " " + fi + else + warning "[$APP_MAIN_CLASS]: is not running ..." + fi +} +function status() { + checkpid + if [[ $? -eq 0 ]] + then + success "[$APP_MAIN_CLASS]: is running! (PID=$PID)" + return 0 + else + failure "[$APP_MAIN_CLASS]: is not running" + return 1 + fi +} +function info() { + echo "System Information:" + echo + echo "****************************" + echo `head -n 1 /etc/issue` + echo `uname -a` + echo + echo "JAVA_HOME=$JAVA_HOME" + echo + echo "JAVA Environment Information:" + echo `$JAVA -version` + echo + echo "APP_HOME=$APP_HOME" + echo "APP_MAIN_CLASS=$APP_MAIN_CLASS" + echo + echo "****************************" +} +case "$1" in + 'start') + start + ;; + 'stop') + stop + ;; + 'restart') + stop + start + ;; + 'status') + status + ;; + 'info') + info + ;; + *) + echo "Usage: $0 {help|start|stop|restart|status|info}" + ;; +esac +exit 0 \ No newline at end of file diff --git a/smtERP-boot/src/main/bin/start.bat b/smtERP-boot/src/main/bin/start.bat new file mode 100644 index 0000000..37b8bb5 --- /dev/null +++ b/smtERP-boot/src/main/bin/start.bat @@ -0,0 +1,6 @@ +@echo off + +title jshERP + +java -Xms1000m -Xmx2000m -jar .\lib\jshERP.jar +pause over \ No newline at end of file diff --git a/smtERP-boot/src/main/bin/start.sh b/smtERP-boot/src/main/bin/start.sh new file mode 100644 index 0000000..d0bf067 --- /dev/null +++ b/smtERP-boot/src/main/bin/start.sh @@ -0,0 +1 @@ +./bin/run-manage.sh start \ No newline at end of file diff --git a/smtERP-boot/src/main/bin/status.sh b/smtERP-boot/src/main/bin/status.sh new file mode 100644 index 0000000..46d6537 --- /dev/null +++ b/smtERP-boot/src/main/bin/status.sh @@ -0,0 +1 @@ +./bin/run-manage.sh status \ No newline at end of file diff --git a/smtERP-boot/src/main/bin/stop.sh b/smtERP-boot/src/main/bin/stop.sh new file mode 100644 index 0000000..8f3414e --- /dev/null +++ b/smtERP-boot/src/main/bin/stop.sh @@ -0,0 +1 @@ +./bin/run-manage.sh stop \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/ErpApplication.java b/smtERP-boot/src/main/java/com/reallin/smt/ErpApplication.java new file mode 100644 index 0000000..73f7d5f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/ErpApplication.java @@ -0,0 +1,28 @@ +package com.reallin.smt; + +import com.reallin.smt.utils.ComputerInfo; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; + +import java.io.IOException; + +@SpringBootApplication +@MapperScan("com.reallin.smt.datasource.mappers") +@ServletComponentScan +@EnableScheduling +@EnableAsync +public class ErpApplication{ + public static void main(String[] args) throws IOException { + ConfigurableApplicationContext context = SpringApplication.run(ErpApplication.class, args); + Environment environment = context.getBean(Environment.class); + System.out.println("启动成功,后端服务API地址:http://" + ComputerInfo.getIpAddr() + ":" + + environment.getProperty("server.port") + "/jshERP-boot/doc.html"); + System.out.println("您还需启动前端服务,启动命令:yarn run serve 或 npm run serve,测试用户:admin,密码:123456"); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/aspect/ApiLogAspect.java b/smtERP-boot/src/main/java/com/reallin/smt/aspect/ApiLogAspect.java new file mode 100644 index 0000000..90ed1e9 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/aspect/ApiLogAspect.java @@ -0,0 +1,164 @@ +package com.reallin.smt.aspect; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.ValueFilter; +import com.reallin.smt.datasource.entities.Log; +import com.reallin.smt.service.LogService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.Tools; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.CodeSignature; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.validation.BindingResult; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Locale; +import java.util.Map; + +/** + * 统一记录 Controller 的 URL、入参和出参。 + */ +@Aspect +@Component +public class ApiLogAspect { + + private static final int MAX_TEXT_LENGTH = 20000; + private static final String MASKED = "******"; + private static final ValueFilter SENSITIVE_VALUE_FILTER = (object, name, value) -> + isSensitive(name) ? MASKED : value; + + @Resource + private LogService logService; + + @Resource + private UserService userService; + + @Around("execution(public * com.reallin.smt.controller..*(..)) && " + + "!within(com.reallin.smt.controller.LogController)") + public Object recordApiLog(ProceedingJoinPoint joinPoint) throws Throwable { + HttpServletRequest request = currentRequest(joinPoint.getArgs()); + Object result = null; + Throwable failure = null; + try { + result = joinPoint.proceed(); + return result; + } catch (Throwable throwable) { + failure = throwable; + throw throwable; + } finally { + if (request != null) { + saveLog(joinPoint, request, result, failure); + } + } + } + + private void saveLog(ProceedingJoinPoint joinPoint, HttpServletRequest request, + Object result, Throwable failure) { + try { + Log log = new Log(); + try { + log.setUserId(userService.getUserId(request)); + } catch (Exception ignored) { + // 登录等匿名接口允许 user_id 为空。 + } + log.setOperation("接口日志"); + log.setContent(joinPoint.getSignature().toShortString()); + log.setClientIp(Tools.getLocalIp(request)); + log.setCreateTime(new Date()); + log.setStatus((byte) (failure == null ? 0 : 1)); + log.setRequestUrl(buildRequestUrl(request)); + log.setRequestParams(toJson(buildArguments(joinPoint))); + log.setResponseParams(failure == null + ? toJson(result) + : limit(failure.getClass().getName() + ": " + failure.getMessage())); + logService.insertApiLog(log); + } catch (Exception e) { + LoggerFactory.getLogger(ApiLogAspect.class).warn("采集接口请求日志失败", e); + } + } + + private HttpServletRequest currentRequest(Object[] arguments) { + for (Object argument : arguments) { + if (argument instanceof HttpServletRequest) { + return (HttpServletRequest) argument; + } + } + ServletRequestAttributes attributes = + (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + return attributes == null ? null : attributes.getRequest(); + } + + private String buildRequestUrl(HttpServletRequest request) { + return limit(request.getMethod() + " " + request.getRequestURI()); + } + + private Map buildArguments(ProceedingJoinPoint joinPoint) { + String[] names = ((CodeSignature) joinPoint.getSignature()).getParameterNames(); + Object[] values = joinPoint.getArgs(); + Map arguments = new LinkedHashMap<>(); + for (int i = 0; i < values.length; i++) { + Object value = values[i]; + if (value instanceof ServletRequest || value instanceof ServletResponse + || value instanceof BindingResult) { + continue; + } + String name = names != null && names.length > i ? names[i] : "arg" + i; + if (value instanceof MultipartFile) { + MultipartFile file = (MultipartFile) value; + Map fileInfo = new LinkedHashMap<>(); + fileInfo.put("name", file.getOriginalFilename()); + fileInfo.put("size", file.getSize()); + arguments.put(name, fileInfo); + } else { + arguments.put(name, value); + } + } + return arguments; + } + + private String toJson(Object value) { + if (value == null) { + return null; + } + try { + if (value instanceof String) { + String text = ((String) value).trim(); + if ((text.startsWith("{") && text.endsWith("}")) + || (text.startsWith("[") && text.endsWith("]"))) { + return limit(JSON.toJSONString(JSON.parse(text), SENSITIVE_VALUE_FILTER)); + } + } + return limit(JSON.toJSONString(value, SENSITIVE_VALUE_FILTER)); + } catch (Exception e) { + return limit(String.valueOf(value)); + } + } + + private String limit(String value) { + if (value == null || value.length() <= MAX_TEXT_LENGTH) { + return value; + } + return value.substring(0, MAX_TEXT_LENGTH) + "...[已截断]"; + } + + private static boolean isSensitive(String name) { + if (name == null) { + return false; + } + String normalized = name.toLowerCase(Locale.ROOT); + return normalized.contains("password") || normalized.contains("passwd") + || normalized.contains("pwd") || normalized.contains("token") + || normalized.contains("secret") || normalized.contains("authorization"); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/base/AjaxResult.java b/smtERP-boot/src/main/java/com/reallin/smt/base/AjaxResult.java new file mode 100644 index 0000000..356e2ea --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/base/AjaxResult.java @@ -0,0 +1,228 @@ +package com.reallin.smt.base; + +import com.reallin.smt.utils.StringUtil; + +import java.util.HashMap; +import java.util.Objects; + +/** + * 操作消息提醒 + * + * @author ji-sheng-hua + */ +public class AjaxResult extends HashMap +{ + private static final long serialVersionUID = 1L; + + /** 状态码 */ + public static final String CODE_TAG = "code"; + + /** 返回内容 */ + public static final String MSG_TAG = "msg"; + + /** 数据对象 */ + public static final String DATA_TAG = "data"; + + /** + * 状态类型 + */ + public enum Type + { + /** 成功 */ + SUCCESS(0), + /** 警告 */ + WARN(301), + /** 错误 */ + ERROR(500); + private final int value; + + Type(int value) + { + this.value = value; + } + + public int value() + { + return this.value; + } + } + + /** + * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。 + */ + public AjaxResult() + { + } + + /** + * 初始化一个新创建的 AjaxResult 对象 + * + * @param type 状态类型 + * @param msg 返回内容 + */ + public AjaxResult(Type type, String msg) + { + super.put(CODE_TAG, type.value); + super.put(MSG_TAG, msg); + } + + /** + * 初始化一个新创建的 AjaxResult 对象 + * + * @param type 状态类型 + * @param msg 返回内容 + * @param data 数据对象 + */ + public AjaxResult(Type type, String msg, Object data) + { + super.put(CODE_TAG, type.value); + super.put(MSG_TAG, msg); + if (StringUtil.isNotNull(data)) + { + super.put(DATA_TAG, data); + } + } + + /** + * 返回成功消息 + * + * @return 成功消息 + */ + public static AjaxResult success() + { + return AjaxResult.success("操作成功"); + } + + /** + * 返回成功数据 + * + * @return 成功消息 + */ + public static AjaxResult success(Object data) + { + return AjaxResult.success("操作成功", data); + } + + /** + * 返回成功消息 + * + * @param msg 返回内容 + * @return 成功消息 + */ + public static AjaxResult success(String msg) + { + return AjaxResult.success(msg, null); + } + + /** + * 返回成功消息 + * + * @param msg 返回内容 + * @param data 数据对象 + * @return 成功消息 + */ + public static AjaxResult success(String msg, Object data) + { + return new AjaxResult(Type.SUCCESS, msg, data); + } + + /** + * 返回警告消息 + * + * @param msg 返回内容 + * @return 警告消息 + */ + public static AjaxResult warn(String msg) + { + return AjaxResult.warn(msg, null); + } + + /** + * 返回警告消息 + * + * @param msg 返回内容 + * @param data 数据对象 + * @return 警告消息 + */ + public static AjaxResult warn(String msg, Object data) + { + return new AjaxResult(Type.WARN, msg, data); + } + + /** + * 返回错误消息 + * + * @return + */ + public static AjaxResult error() + { + return AjaxResult.error("操作失败"); + } + + /** + * 返回错误消息 + * + * @param msg 返回内容 + * @return 警告消息 + */ + public static AjaxResult error(String msg) + { + return AjaxResult.error(msg, null); + } + + /** + * 返回错误消息 + * + * @param msg 返回内容 + * @param data 数据对象 + * @return 警告消息 + */ + public static AjaxResult error(String msg, Object data) + { + return new AjaxResult(Type.ERROR, msg, data); + } + + /** + * 是否为成功消息 + * + * @return 结果 + */ + public boolean isSuccess() + { + return Objects.equals(Type.SUCCESS.value, this.get(CODE_TAG)); + } + + /** + * 是否为警告消息 + * + * @return 结果 + */ + public boolean isWarn() + { + return Objects.equals(Type.WARN.value, this.get(CODE_TAG)); + } + + /** + * 是否为错误消息 + * + * @return 结果 + */ + public boolean isError() + { + return Objects.equals(Type.ERROR.value, this.get(CODE_TAG)); + } + + /** + * 方便链式调用 + * + * @param key 键 + * @param value 值 + * @return 数据对象 + */ + @Override + public AjaxResult put(String key, Object value) + { + super.put(key, value); + return this; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/base/BaseController.java b/smtERP-boot/src/main/java/com/reallin/smt/base/BaseController.java new file mode 100644 index 0000000..f875634 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/base/BaseController.java @@ -0,0 +1,158 @@ +package com.reallin.smt.base; + +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.ServletUtils; +import com.reallin.smt.utils.SqlUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * web层通用数据处理 + * + * @author ji-sheng-hua + */ +public class BaseController +{ + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); + + /** + * 设置请求分页数据 + */ + protected void startPage() + { + PageUtils.startPage(); + } + + /** + * 设置请求排序数据 + */ + protected void startOrderBy() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) + { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + PageHelper.orderBy(orderBy); + } + } + + /** + * 清理分页的线程变量 + */ + protected void clearPage() + { + PageUtils.clearPage(); + } + + /** + * 获取request + */ + public HttpServletRequest getRequest() + { + return ServletUtils.getRequest(); + } + + /** + * 获取response + */ + public HttpServletResponse getResponse() + { + return ServletUtils.getResponse(); + } + + /** + * 获取session + */ + public HttpSession getSession() + { + return getRequest().getSession(); + } + + /** + * 响应请求分页数据 + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + protected TableDataInfo getDataTable(List list) + { + Map data = new HashMap<>(); + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(200); + data.put("rows", list); + data.put("total", new PageInfo(list).getTotal()); + rspData.setData(data); + return rspData; + } + + /** + * 响应返回结果 + * + * @param rows 影响行数 + * @return 操作结果 + */ + protected AjaxResult toAjax(int rows) + { + return rows > 0 ? success() : error(); + } + + /** + * 响应返回结果 + * + * @param result 结果 + * @return 操作结果 + */ + protected AjaxResult toAjax(boolean result) + { + return result ? success() : error(); + } + + /** + * 返回成功 + */ + public AjaxResult success() + { + return AjaxResult.success(); + } + + /** + * 返回失败消息 + */ + public AjaxResult error() + { + return AjaxResult.error(); + } + + /** + * 返回成功消息 + */ + public AjaxResult success(String message) + { + return AjaxResult.success(message); + } + + /** + * 返回成功数据 + */ + public static AjaxResult success(Object data) + { + return AjaxResult.success("操作成功", data); + } + + /** + * 返回失败消息 + */ + public AjaxResult error(String message) + { + return AjaxResult.error(message); + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/base/PageDomain.java b/smtERP-boot/src/main/java/com/reallin/smt/base/PageDomain.java new file mode 100644 index 0000000..876e511 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/base/PageDomain.java @@ -0,0 +1,87 @@ +package com.reallin.smt.base; + +import com.reallin.smt.utils.StringUtil; + +/** + * 分页数据 + * + * @author ji-sheng-hua + */ +public class PageDomain +{ + /** 当前记录起始索引 */ + private Integer currentPage; + + /** 每页显示记录数 */ + private Integer pageSize; + + /** 排序列 */ + private String orderByColumn; + + /** 排序的方向desc或者asc */ + private String isAsc = "asc"; + + /** 分页参数合理化 */ + private Boolean reasonable = true; + + public String getOrderBy() + { + if (StringUtil.isEmpty(orderByColumn)) + { + return ""; + } + return StringUtil.toUnderScoreCase(orderByColumn) + " " + isAsc; + } + + public Integer getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(Integer currentPage) { + this.currentPage = currentPage; + } + + public Integer getPageSize() + { + return pageSize; + } + + public void setPageSize(Integer pageSize) + { + this.pageSize = pageSize; + } + + public String getOrderByColumn() + { + return orderByColumn; + } + + public void setOrderByColumn(String orderByColumn) + { + this.orderByColumn = orderByColumn; + } + + public String getIsAsc() + { + return isAsc; + } + + public void setIsAsc(String isAsc) + { + this.isAsc = isAsc; + } + + public Boolean getReasonable() + { + if (StringUtil.isNull(reasonable)) + { + return Boolean.TRUE; + } + return reasonable; + } + + public void setReasonable(Boolean reasonable) + { + this.reasonable = reasonable; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/base/TableDataInfo.java b/smtERP-boot/src/main/java/com/reallin/smt/base/TableDataInfo.java new file mode 100644 index 0000000..1809ee5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/base/TableDataInfo.java @@ -0,0 +1,44 @@ +package com.reallin.smt.base; + +import java.io.Serializable; + +/** + * 表格分页数据对象 + * + * @author ji-sheng-hua + */ +public class TableDataInfo implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** 消息状态码 */ + private int code; + + /** 消息状态码 */ + private Object data; + + /** + * 表格数据对象 + */ + public TableDataInfo() + { + } + + public int getCode() + { + return code; + } + + public void setCode(int code) + { + this.code = code; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/base/TableSupport.java b/smtERP-boot/src/main/java/com/reallin/smt/base/TableSupport.java new file mode 100644 index 0000000..cc1bfc7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/base/TableSupport.java @@ -0,0 +1,56 @@ +package com.reallin.smt.base; + +import com.reallin.smt.utils.Convert; +import com.reallin.smt.utils.ServletUtils; + +/** + * 表格数据处理 + * + * @author ji-sheng-hua + */ +public class TableSupport +{ + /** + * 当前记录起始索引 + */ + public static final String CURRENT_PAGE = "currentPage"; + + /** + * 每页显示记录数 + */ + public static final String PAGE_SIZE = "pageSize"; + + /** + * 排序列 + */ + public static final String ORDER_BY_COLUMN = "orderByColumn"; + + /** + * 排序的方向 "desc" 或者 "asc". + */ + public static final String IS_ASC = "isAsc"; + + /** + * 分页参数合理化 + */ + public static final String REASONABLE = "reasonable"; + + /** + * 封装分页对象 + */ + public static PageDomain getPageDomain() + { + PageDomain pageDomain = new PageDomain(); + pageDomain.setCurrentPage(Convert.toInt(ServletUtils.getParameter(CURRENT_PAGE), 1)); + pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); + pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); + pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); + pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); + return pageDomain; + } + + public static PageDomain buildPageRequest() + { + return getPageDomain(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/config/PluginBeanConfig.java b/smtERP-boot/src/main/java/com/reallin/smt/config/PluginBeanConfig.java new file mode 100644 index 0000000..4d06f59 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/config/PluginBeanConfig.java @@ -0,0 +1,24 @@ +package com.reallin.smt.config; + +import com.gitee.starblues.extension.mybatis.SpringBootMybatisExtension; +import com.gitee.starblues.integration.application.AutoPluginApplication; +import com.gitee.starblues.integration.application.PluginApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Author: jishenghua + * @Version: 1.0 + * @Create Date Time: 2019-05-30 15:53 + * @Update Date Time: + * @see + */ +@Configuration +public class PluginBeanConfig { + @Bean + public PluginApplication pluginApplication(){ + PluginApplication pluginApplication = new AutoPluginApplication(); + pluginApplication.addExtension(new SpringBootMybatisExtension()); + return pluginApplication; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/config/PluginConfiguration.java b/smtERP-boot/src/main/java/com/reallin/smt/config/PluginConfiguration.java new file mode 100644 index 0000000..92c6d51 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/config/PluginConfiguration.java @@ -0,0 +1,104 @@ +package com.reallin.smt.config; + +import com.gitee.starblues.integration.DefaultIntegrationConfiguration; +import org.pf4j.RuntimeMode; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + + +/** + * @Description: + * @Author: jishenghua + * @Version: 1.0 + * @Create Date Time: 2019-05-25 12:36 + * @Update Date Time: + * @see + */ +@Component +@ConfigurationProperties(prefix = "plugin") +public class PluginConfiguration extends DefaultIntegrationConfiguration { + + /** + * 运行模式 + * 开发环境: development、dev + * 生产/部署 环境: deployment、prod + */ + @Value("${runMode:dev}") + private String runMode; + + @Value("${pluginPath:plugins}") + private String pluginPath; + + @Value("${pluginConfigFilePath:pluginConfigs}") + private String pluginConfigFilePath; + + @Override + public RuntimeMode environment() { + return RuntimeMode.byName(runMode); + } + + @Override + public String pluginPath() { + return pluginPath; + } + + @Override + public String pluginConfigFilePath() { + return pluginConfigFilePath; + } + + @Override + public String uploadTempPath() { + return "temp"; + } + + @Override + public String backupPath() { + return "backupPlugin"; + } + + @Override + public String pluginRestControllerPathPrefix() { + return "/api/plugin"; + } + + @Override + public boolean enablePluginIdRestControllerPathPrefix() { + return true; + } + + public String getRunMode() { + return runMode; + } + + public void setRunMode(String runMode) { + this.runMode = runMode; + } + + + public String getPluginPath() { + return pluginPath; + } + + public void setPluginPath(String pluginPath) { + this.pluginPath = pluginPath; + } + + public String getPluginConfigFilePath() { + return pluginConfigFilePath; + } + + public void setPluginConfigFilePath(String pluginConfigFilePath) { + this.pluginConfigFilePath = pluginConfigFilePath; + } + + @Override + public String toString() { + return "PluginArgConfiguration{" + + "runMode='" + runMode + '\'' + + ", pluginPath='" + pluginPath + '\'' + + ", pluginConfigFilePath='" + pluginConfigFilePath + '\'' + + '}'; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/config/Swagger2Config.java b/smtERP-boot/src/main/java/com/reallin/smt/config/Swagger2Config.java new file mode 100644 index 0000000..b2f06ab --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/config/Swagger2Config.java @@ -0,0 +1,44 @@ +package com.reallin.smt.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + * 插件集成配置 + * + * @author jishenghua + * @version 1.0 + */ +@Configuration +@EnableSwagger2 +public class Swagger2Config { + + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(this.apiInfo()) + .select() + .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("SMT Restful Api") + .description("SMT接口描述") + .termsOfServiceUrl("http://127.0.0.1") + .contact(new Contact("jishenghua", "", "")) + .version("3.0") + .build(); + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/config/TenantConfig.java b/smtERP-boot/src/main/java/com/reallin/smt/config/TenantConfig.java new file mode 100644 index 0000000..c8f314b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/config/TenantConfig.java @@ -0,0 +1,38 @@ +package com.reallin.smt.config; + +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import org.mybatis.spring.mapper.MapperScannerConfigurer; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Service; + + +@Service +public class TenantConfig { + + @Bean + public PaginationInterceptor paginationInterceptor() { + return new PaginationInterceptor(); + } + + /** + * 相当于顶部的: + * {@code @MapperScan("com.reallin.smt.datasource.mappers*")} + * 这里可以扩展,比如使用配置文件来配置扫描Mapper的路径 + */ + @Bean + public MapperScannerConfigurer mapperScannerConfigurer() { + MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer(); + scannerConfigurer.setBasePackage("com.reallin.smt.datasource.mappers*"); + return scannerConfigurer; + } + + /** + * 性能分析拦截器,不建议生产使用 + */ +// @Bean +// public PerformanceInterceptor performanceInterceptor(){ +// return new PerformanceInterceptor(); +// } + + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/constants/BusinessConstants.java b/smtERP-boot/src/main/java/com/reallin/smt/constants/BusinessConstants.java new file mode 100644 index 0000000..2d6001c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/constants/BusinessConstants.java @@ -0,0 +1,288 @@ +package com.reallin.smt.constants; + +/** + * @ClassName:BusinessConstants + * @Description 业务字典类 + * @Author qiankunpingtai + * @Date 2019-3-6 17:58 + * @Version 1.0 + **/ +public class BusinessConstants { + + /** + * 默认的日期格式 + */ + public static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; + /** + * 一天的初始时间 + */ + public static final String DAY_FIRST_TIME = " 00:00:00"; + /** + * 一天的结束时间 + */ + public static final String DAY_LAST_TIME = " 23:59:59"; + /** + * 默认的分页起始页页码 + */ + public static final Integer DEFAULT_PAGINATION_PAGE_NUMBER = 1; + /** + * 无数据时列表返回的默认数据条数 + */ + public static final Long DEFAULT_LIST_NULL_NUMBER = 0L; + /** + * 默认的分页条数 + */ + public static final Integer DEFAULT_PAGINATION_PAGE_SIZE = 10; + /** + * 单据主表出入库类型 type 入库 出库 其它 + * depothead + * */ + public static final String DEPOTHEAD_TYPE_IN = "入库"; + public static final String DEPOTHEAD_TYPE_OUT = "出库"; + public static final String DEPOTHEAD_TYPE_OTHER = "其它"; + /** + * 付款类型 payType //现付/预付款 + * */ + public static final String PAY_TYPE_PREPAID = "预付款"; + public static final String PAY_TYPE_BY_CASH = "现付"; + /** + * 删除标记 deleteFlag '0'未删除 '1'已删除 + * */ + public static final String DELETE_FLAG_DELETED = "1"; + public static final String DELETE_FLAG_EXISTS = "0"; + /** + * 是否卖出 isSell '0'未卖出 '1'已卖出 + * */ + public static final String IS_SELL_SELLED = "1"; + public static final String IS_SELL_HOLD = "0"; + /** + * 商品是否开启序列号标识enableSerialNumber '0'未启用 '1'启用 + * */ + public static final String ENABLE_SERIAL_NUMBER_ENABLED = "1"; + public static final String ENABLE_SERIAL_NUMBER_NOT_ENABLED = "0"; + /** + * 商品是否开启批号标识enableBatchNumber '0'未启用 '1'启用 + * */ + public static final String ENABLE_BATCH_NUMBER_ENABLED = "1"; + public static final String ENABLE_BATCH_NUMBER_NOT_ENABLED = "0"; + /** + * 单据状态 billsStatus '0'未审核 '1'审核 '2'完成采购|销售 '3'部分采购|销售 + * */ + public static final String BILLS_STATUS_UN_AUDIT = "0"; + public static final String BILLS_STATUS_AUDIT = "1"; + public static final String BILLS_STATUS_SKIPED = "2"; + public static final String BILLS_STATUS_SKIPING = "3"; + /** + * 单据-采购状态 purchaseStatus '0'未采购、'2'完成采购、'3'部分采购 + * */ + public static final String PURCHASE_STATUS_UN_AUDIT = "0"; + public static final String PURCHASE_STATUS_SKIPED = "2"; + public static final String PURCHASE_STATUS_SKIPING = "3"; + /** + * 出入库分类 + * 请购单、采购、采购退货、其它、零售、销售、调拨、盘点复盘等 + * */ + public static final String SUB_TYPE_PURCHASE_APPLY = "请购单"; + public static final String SUB_TYPE_PURCHASE_ORDER = "采购订单"; + public static final String SUB_TYPE_PURCHASE = "采购"; + public static final String SUB_TYPE_PURCHASE_RETURN = "采购退货"; + public static final String SUB_TYPE_OTHER = "其它"; + public static final String SUB_TYPE_RETAIL = "零售"; + public static final String SUB_TYPE_RETAIL_RETURN = "零售退货"; + public static final String SUB_TYPE_SALES_ORDER = "销售订单"; + public static final String SUB_TYPE_SALES = "销售"; + public static final String SUB_TYPE_SALES_RETURN = "销售退货"; + public static final String SUB_TYPE_TRANSFER = "调拨"; + public static final String SUB_TYPE_CHECK_ENTER = "盘点录入"; + public static final String SUB_TYPE_REPLAY = "盘点复盘"; + public static final String SUB_TYPE_ASSEMBLE = "组装单"; + public static final String SUB_TYPE_DISASSEMBLE = "拆卸单"; + /** + * 生产类型分类 + * 生产领料出库 + * */ + public static final String SUB_TYPE_PRODUCE_REQUISITION = "生产领料"; + /** + * 生产工单状态 + * 0已创建、1已下达、2生产中、3已完工、4已关闭 + * */ + public static final String PRODUCTION_ORDER_STATUS_CREATED = "0"; + public static final String PRODUCTION_ORDER_STATUS_RELEASED = "1"; + public static final String PRODUCTION_ORDER_STATUS_PRODUCING = "2"; + public static final String PRODUCTION_ORDER_STATUS_FINISHED = "3"; + public static final String PRODUCTION_ORDER_STATUS_CLOSED = "4"; + /** + * 生产领料单状态 + * 0待确认、1已发料、2已驳回 + * */ + public static final String PRODUCTION_REQUISITION_STATUS_WAIT = "0"; + public static final String PRODUCTION_REQUISITION_STATUS_ISSUED = "1"; + public static final String PRODUCTION_REQUISITION_STATUS_REJECT = "2"; + /** + * 完工报告审核状态 + * 0待审核、1已审核、2已驳回 + * */ + public static final String PRODUCTION_REPORT_AUDIT_WAIT = "0"; + public static final String PRODUCTION_REPORT_AUDIT_PASS = "1"; + public static final String PRODUCTION_REPORT_AUDIT_REJECT = "2"; + /** + * 生产类型分类 + * 生产入库 + * */ + public static final String BILL_TYPE_PRODUCE_IN = "生产入库"; + /** + * 财务单据分类 + * 收款、付款、转账 + * */ + public static final String TYPE_MONEY_IN = "收款"; + public static final String TYPE_MONEY_OUT = "付款"; + public static final String TYPE_GIRO = "转账"; + /** + * 批量插入sql时最大的数据条数 + * */ + public static final int BATCH_INSERT_MAX_NUMBER = 500; + /** + * sequence名称 + * */ + //sequence返回字符串的最小长度 + public static final Long SEQ_TO_STRING_MIN_LENGTH = 10000000000L; + //sequence长度小于基准长度时前追加基础值 + public static final String SEQ_TO_STRING_LESS_INSERT = "0"; + //单据编号 + public static final String DEPOT_NUMBER_SEQ = "depot_number_seq"; + /** + * 商品类别根目录id + * */ + /** + * create by: qiankunpingtai + * create time: 2019/3/14 11:41 + * description: + * 为了使用户可以自己建初始目录,设定根目录的父级目录id为-1 + * + */ + public static final Long MATERIAL_CATEGORY_ROOT_PARENT_ID = -1L; + /** + * 商品类别状态 + * 0系统默认,1启用,2删除 + * */ + public static final String MATERIAL_CATEGORY_STATUS_DEFAULT = "0"; + public static final String MATERIAL_CATEGORY_STATUS_ENABLE = "1"; + public static final String MATERIAL_CATEGORY_STATUS_DELETE = "2"; + /** + * 部门状态 + * 1未营业、2正常营业、3暂停营业、4终止营业,5已除名 + * */ + public static final String ORGANIZATION_STCD_NOT_OPEN = "1"; + public static final String ORGANIZATION_STCD_OPEN = "2"; + public static final String ORGANIZATION_STCD_BUSINESS_SUSPENDED = "3"; + public static final String ORGANIZATION_STCD_BUSINESS_TERMINATED = "4"; + public static final String ORGANIZATION_STCD_REMOVED = "5"; + /** + * 根部门父级编号 + * 根机父级构编号默认为-1 + * */ + public static final String ORGANIZATION_ROOT_PARENT_NO = "-1"; + /** + * 新增用户默认密码 + * */ + public static final String USER_DEFAULT_PASSWORD = "123456"; + /** + * 用户是否系统自带 + * 0、非系统自带,1系统自带 + * */ + public static final byte USER_NOT_SYSTEM = 0; + public static final byte USER_IS_SYSTEM = 1; + /** + * 用户是否为管理者 + * 0、管理者,1员工 + * */ + public static final byte USER_IS_MANAGER = 0; + public static final byte USER_NOT_MANAGER = 1; + /** + * 用户状态 + * 0:正常,2封禁 + * */ + public static final byte USER_STATUS_NORMAL = 0; + public static final byte USER_STATUS_BANNED = 2; + /** + * 日志操作 + * 新增、修改、删除、登录、导入 + * */ + public static final String LOG_OPERATION_TYPE_ADD = "新增"; + public static final String LOG_OPERATION_TYPE_BATCH_ADD = "批量新增"; + public static final String LOG_OPERATION_TYPE_EDIT = "修改"; + public static final String LOG_OPERATION_TYPE_DELETE = "删除"; + public static final String LOG_OPERATION_TYPE_LOGIN = "登录"; + public static final String LOG_OPERATION_TYPE_IMPORT = "导入"; + public static final String LOG_OPERATION_TYPE_ENABLED = "更新状态"; + + /** + * 数据数量单位 + * 条 + * */ + public static final String LOG_DATA_UNIT = "条"; + + /** + * 删除类型 + * 1正常删除 + * 2强制删除 + * */ + public static final String DELETE_TYPE_NORMAL = "1"; + public static final String DELETE_TYPE_FORCE = "2"; + + /** + * 默认管理员账号 + */ + public static final String DEFAULT_MANAGER = "admin"; + + /** + * 权限管理按钮所属菜单地址 + */ + public static final String PERMISSION_MANAGEMENT_URL = "/system/role"; + + /** + * 权限管理按钮编号 + */ + public static final String PERMISSION_MANAGEMENT_BUTTON = "8"; + + public static final String ROLE_TYPE_PRIVATE = "个人数据"; + + public static final String ROLE_TYPE_THIS_ORG = "本部门数据"; + + public static final String ROLE_TYPE_PUBLIC = "全部数据"; + + /** + * 字典管理 cache key + */ + public static final String SYS_DICT_KEY = "sys_dict:"; + + /** + * redis相关 + * */ + //session的生命周期,秒 + public static final Long MAX_SESSION_IN_SECONDS=60*60*24*3L; + + /** + * 验证码 redis key + */ + public static final String CAPTCHA_CODE_KEY = "captcha_codes:"; + /** + * 验证码有效期(分钟) + */ + public static final Integer CAPTCHA_EXPIRATION = 2; + + /** + * 微信登录接口 + */ + public static final String WEIXIN_LOGIN = "/sns/jscode2session"; + + /** + * 微信获取token接口 + */ + public static final String WEIXIN_TOKEN = "/cgi-bin/token"; + + /** + * 微信发送订阅消息接口 + */ + public static final String WEIXIN_MESSAGE_SEND = "/cgi-bin/message/subscribe/send"; +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/constants/ExceptionConstants.java b/smtERP-boot/src/main/java/com/reallin/smt/constants/ExceptionConstants.java new file mode 100644 index 0000000..8714f9a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/constants/ExceptionConstants.java @@ -0,0 +1,633 @@ +package com.reallin.smt.constants; + +import com.alibaba.fastjson.JSONObject; + +public class ExceptionConstants { + /** + * code 格式 type+五位数字,例如3500000 + * ResourceInfo(value = "inOutItem", type = 35) + * + * */ + + public static final String GLOBAL_RETURNS_CODE = "code"; + public static final String GLOBAL_RETURNS_MESSAGE = "msg"; + public static final String GLOBAL_RETURNS_DATA = "data"; + + /** + * 正常返回/操作成功 + **/ + public static final int SERVICE_SUCCESS_CODE = 200; + public static final String SERVICE_SUCCESS_MSG = "操作成功"; + /** + * 数据查询异常 + */ + public static final int DATA_READ_FAIL_CODE = 300; + public static final String DATA_READ_FAIL_MSG = "数据查询异常"; + /** + * 数据写入异常 + */ + public static final int DATA_WRITE_FAIL_CODE = 301; + public static final String DATA_WRITE_FAIL_MSG = "数据写入异常"; + + /** + * 系统运行时未知错误 + **/ + public static final int SERVICE_SYSTEM_ERROR_CODE = 500; + public static final String SERVICE_SYSTEM_ERROR_MSG = "未知异常"; + /** + * 检测到存在依赖数据,是否强制删除? + **/ + public static final int DELETE_FORCE_CONFIRM_CODE = 601; + public static final String DELETE_FORCE_CONFIRM_MSG = "检测到存在依赖数据,不能删除!"; + + /** + * 文件扩展名必须为xls + **/ + public static final int FILE_EXTENSION_ERROR_CODE = 701; + public static final String FILE_EXTENSION_ERROR_MSG = "文件扩展名必须为xls"; + + /** + * 用户信息 + * type = 5 + * */ + //添加用户信息失败 + public static final int USER_ADD_FAILED_CODE = 500000; + public static final String USER_ADD_FAILED_MSG = "添加用户信息失败"; + //删除用户信息失败 + public static final int USER_DELETE_FAILED_CODE = 500001; + public static final String USER_DELETE_FAILED_MSG = "删除用户信息失败"; + //修改用户信息失败 + public static final int USER_EDIT_FAILED_CODE = 500002; + public static final String USER_EDIT_FAILED_MSG = "修改用户信息失败"; + //登录名已存在 + public static final int USER_LOGIN_NAME_ALREADY_EXISTS_CODE = 500003; + public static final String USER_LOGIN_NAME_ALREADY_EXISTS_MSG = "登录名在本系统已存在"; + //用户录入数量超出限制 + public static final int USER_OVER_LIMIT_FAILED_CODE = 500004; + public static final String USER_OVER_LIMIT_FAILED_MSG = "用户录入数量超出限制,请联系平台管理员"; + //此用户名限制使用 + public static final int USER_NAME_LIMIT_USE_CODE = 500005; + public static final String USER_NAME_LIMIT_USE_MSG = "此用户名限制使用"; + //启用的用户数量超出限制 + public static final int USER_ENABLE_OVER_LIMIT_FAILED_CODE = 500006; + public static final String USER_ENABLE_OVER_LIMIT_FAILED_MSG = "启用的用户数量超出限制,请联系平台管理员"; + //租户不能被删除 + public static final int USER_LIMIT_TENANT_DELETE_CODE = 500008; + public static final String USER_LIMIT_TENANT_DELETE_MSG = "抱歉,租户不能被删除"; + //当前部门已经存在经理 + public static final int USER_LEADER_IS_EXIST_CODE = 500009; + public static final String USER_LEADER_IS_EXIST_MSG = "抱歉,当前部门已经存在经理"; + //验证码错误 + public static final int USER_JCAPTCHA_ERROR_CODE = 500010; + public static final String USER_JCAPTCHA_ERROR_MSG = "验证码错误"; + //验证码已失效 + public static final int USER_JCAPTCHA_EXPIRE_CODE = 500011; + public static final String USER_JCAPTCHA_EXPIRE_MSG = "验证码已失效"; + //验证码不能为空 + public static final int USER_JCAPTCHA_EMPTY_CODE = 500012; + public static final String USER_JCAPTCHA_EMPTY_MSG = "验证码不能为空"; + //当前角色的数据类型是本部门数据,所以必须选择部门 + public static final int USER_ROLE_ORGA_EMPTY_CODE = 500013; + public static final String USER_ROLE_ORGA_EMPTY_MSG = "当前角色的数据类型是本部门数据,所以必须选择部门"; + + /** + * 角色信息 + * type = 10 + * */ + //添加角色信息失败 + public static final int ROLE_ADD_FAILED_CODE = 1000000; + public static final String ROLE_ADD_FAILED_MSG = "添加角色信息失败"; + //删除角色信息失败 + public static final int ROLE_DELETE_FAILED_CODE = 1000001; + public static final String ROLE_DELETE_FAILED_MSG = "删除角色信息失败"; + //修改角色信息失败 + public static final int ROLE_EDIT_FAILED_CODE = 1000002; + public static final String ROLE_EDIT_FAILED_MSG = "修改角色信息失败"; + /** + * 应用信息 + * type = 15 + * */ + //添加角色信息失败 + public static final int APP_ADD_FAILED_CODE = 1500000; + public static final String APP_ADD_FAILED_MSG = "添加应用信息失败"; + //删除角色信息失败 + public static final int APP_DELETE_FAILED_CODE = 1500001; + public static final String APP_DELETE_FAILED_MSG = "删除应用信息失败"; + //修改角色信息失败 + public static final int APP_EDIT_FAILED_CODE = 1500002; + public static final String APP_EDIT_FAILED_MSG = "修改应用信息失败"; + /** + * 仓库信息 + * type = 20 + * */ + //添加仓库信息失败 + public static final int DEPOT_ADD_FAILED_CODE = 2000000; + public static final String DEPOT_ADD_FAILED_MSG = "添加仓库信息失败"; + //删除仓库信息失败 + public static final int DEPOT_DELETE_FAILED_CODE = 2000001; + public static final String DEPOT_DELETE_FAILED_MSG = "删除仓库信息失败"; + //修改仓库信息失败 + public static final int DEPOT_EDIT_FAILED_CODE = 2000002; + public static final String DEPOT_EDIT_FAILED_MSG = "修改仓库信息失败"; + + /** + * 功能模块信息 + * type = 30 + * */ + //添加角色信息失败 + public static final int FUNCTIONS_ADD_FAILED_CODE = 3000000; + public static final String FUNCTIONS_ADD_FAILED_MSG = "添加功能模块信息失败"; + //删除角色信息失败 + public static final int FUNCTIONS_DELETE_FAILED_CODE = 3000001; + public static final String FUNCTIONS_DELETE_FAILED_MSG = "删除功能模块信息失败"; + //修改角色信息失败 + public static final int FUNCTIONS_EDIT_FAILED_CODE = 3000002; + public static final String FUNCTIONS_EDIT_FAILED_MSG = "修改功能模块信息失败"; + /** + * 收支项目信息 + * type = 35 + * */ + //添加收支项目信息失败 + public static final int IN_OUT_ITEM_ADD_FAILED_CODE = 3500000; + public static final String IN_OUT_ITEM_ADD_FAILED_MSG = "添加收支项目信息失败"; + //删除收支项目信息失败 + public static final int IN_OUT_ITEM_DELETE_FAILED_CODE = 3500001; + public static final String IN_OUT_ITEM_DELETE_FAILED_MSG = "删除收支项目信息失败"; + //修改收支项目信息失败 + public static final int IN_OUT_ITEM_EDIT_FAILED_CODE = 3500002; + public static final String IN_OUT_ITEM_EDIT_FAILED_MSG = "修改收支项目信息失败"; + //该收支项目的名称已经存在 + public static final int IN_OUT_ITEM_NAME_EXIST_FAILED_CODE = 3500003; + public static final String IN_OUT_ITEM_NAME_EXIST_FAILED_MSG = "该收支项目的名称已经存在,请修改!"; + /** + * 多单位信息 + * type = 40 + * */ + //添加多单位信息失败 + public static final int UNIT_ADD_FAILED_CODE = 4000000; + public static final String UNIT_ADD_FAILED_MSG = "添加多单位信息失败"; + //删除多单位信息失败 + public static final int UNIT_DELETE_FAILED_CODE = 4000001; + public static final String UNIT_DELETE_FAILED_MSG = "删除多单位信息失败"; + //修改多单位信息失败 + public static final int UNIT_EDIT_FAILED_CODE = 4000002; + public static final String UNIT_EDIT_FAILED_MSG = "修改多单位信息失败"; + /** + * 经手人信息 + * type = 45 + * */ + //添加经手人信息失败 + public static final int PERSON_ADD_FAILED_CODE = 4500000; + public static final String PERSON_ADD_FAILED_MSG = "添加经手人信息失败"; + //删除经手人信息失败 + public static final int PERSON_DELETE_FAILED_CODE = 4500001; + public static final String PERSON_DELETE_FAILED_MSG = "删除经手人信息失败"; + //修改经手人信息失败 + public static final int PERSON_EDIT_FAILED_CODE = 4500002; + public static final String PERSON_EDIT_FAILED_MSG = "修改经手人信息失败"; + /** + * 用户角色模块关系信息 + * type = 50 + * */ + //添加用户角色模块关系信息失败 + public static final int USER_BUSINESS_ADD_FAILED_CODE = 5000000; + public static final String USER_BUSINESS_ADD_FAILED_MSG = "添加用户角色模块关系信息失败"; + //删除用户角色模块关系信息失败 + public static final int USER_BUSINESS_DELETE_FAILED_CODE = 5000001; + public static final String USER_BUSINESS_DELETE_FAILED_MSG = "删除用户角色模块关系信息失败"; + //修改用户角色模块关系信息失败 + public static final int USER_BUSINESS_EDIT_FAILED_CODE = 5000002; + public static final String USER_BUSINESS_EDIT_FAILED_MSG = "修改用户角色模块关系信息失败"; + /** + * 系统参数信息 + * type = 55 + * */ + //添加系统参数信息失败 + public static final int SYSTEM_CONFIG_ADD_FAILED_CODE = 5500000; + public static final String SYSTEM_CONFIG_ADD_FAILED_MSG = "添加系统参数信息失败"; + //删除系统参数信息失败 + public static final int SYSTEM_CONFIG_DELETE_FAILED_CODE = 5500001; + public static final String SYSTEM_CONFIG_DELETE_FAILED_MSG = "删除系统参数信息失败"; + //修改系统参数信息失败 + public static final int SYSTEM_CONFIG_EDIT_FAILED_CODE = 5500002; + public static final String SYSTEM_CONFIG_EDIT_FAILED_MSG = "修改系统参数信息失败"; + /** + * 商品扩展信息 + * type = 60 + * */ + //添加商品扩展信息失败 + public static final int MATERIAL_PROPERTY_ADD_FAILED_CODE = 6000000; + public static final String MATERIAL_PROPERTY_ADD_FAILED_MSG = "添加商品扩展信息失败"; + //删除商品扩展信息失败 + public static final int MATERIAL_PROPERTY_DELETE_FAILED_CODE = 6000001; + public static final String MATERIAL_PROPERTY_DELETE_FAILED_MSG = "删除商品扩展信息失败"; + //修改商品扩展信息失败 + public static final int MATERIAL_PROPERTY_EDIT_FAILED_CODE = 6000002; + public static final String MATERIAL_PROPERTY_EDIT_FAILED_MSG = "修改商品扩展信息失败"; + /** + * 账户信息 + * type = 65 + * */ + //添加账户信息失败 + public static final int ACCOUNT_ADD_FAILED_CODE = 6500000; + public static final String ACCOUNT_ADD_FAILED_MSG = "添加账户信息失败"; + //删除账户信息失败 + public static final int ACCOUNT_DELETE_FAILED_CODE = 6500001; + public static final String ACCOUNT_DELETE_FAILED_MSG = "删除账户信息失败"; + //修改账户信息失败 + public static final int ACCOUNT_EDIT_FAILED_CODE = 6500002; + public static final String ACCOUNT_EDIT_FAILED_MSG = "修改账户信息失败"; + /** + * 供应商信息 + * type = 70 + * */ + //添加供应商信息失败 + public static final int SUPPLIER_ADD_FAILED_CODE = 7000000; + public static final String SUPPLIER_ADD_FAILED_MSG = "添加供应商信息失败"; + //删除供应商信息失败 + public static final int SUPPLIER_DELETE_FAILED_CODE = 7000001; + public static final String SUPPLIER_DELETE_FAILED_MSG = "删除供应商信息失败"; + //修改供应商信息失败 + public static final int SUPPLIER_EDIT_FAILED_CODE = 7000002; + public static final String SUPPLIER_EDIT_FAILED_MSG = "修改供应商信息失败"; + /** + * 商品类别信息 + * type = 75 + * */ + //添加商品类别信息失败 + public static final int MATERIAL_CATEGORY_ADD_FAILED_CODE = 7500000; + public static final String MATERIAL_CATEGORY_ADD_FAILED_MSG = "添加商品类别信息失败"; + //删除商品类别信息失败 + public static final int MATERIAL_CATEGORY_DELETE_FAILED_CODE = 7500001; + public static final String MATERIAL_CATEGORY_DELETE_FAILED_MSG = "删除商品类别信息失败"; + //修改商品类别信息失败 + public static final int MATERIAL_CATEGORY_EDIT_FAILED_CODE = 7500002; + public static final String MATERIAL_CATEGORY_EDIT_FAILED_MSG = "修改商品类别信息失败"; + //商品类别编号已存在 + public static final int MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_CODE = 7500003; + public static final String MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_MSG = "商品类别编号已存在"; + //根类别不支持修改 + public static final int MATERIAL_CATEGORY_ROOT_NOT_SUPPORT_EDIT_CODE = 7500004; + public static final String MATERIAL_CATEGORY_ROOT_NOT_SUPPORT_EDIT_MSG = "根类别不支持修改"; + //根类别不支持删除 + public static final int MATERIAL_CATEGORY_ROOT_NOT_SUPPORT_DELETE_CODE = 7500005; + public static final String MATERIAL_CATEGORY_ROOT_NOT_SUPPORT_DELETE_MSG = "根类别不支持删除"; + //该类别存在下级不允许删除 + public static final int MATERIAL_CATEGORY_CHILD_NOT_SUPPORT_DELETE_CODE = 7500006; + public static final String MATERIAL_CATEGORY_CHILD_NOT_SUPPORT_DELETE_MSG = "该类别存在下级不允许删除"; + /** + * 商品信息 + * type = 80 + * */ + //商品信息不存在 + public static final int MATERIAL_NOT_EXISTS_CODE = 8000000; + public static final String MATERIAL_NOT_EXISTS_MSG = "商品信息不存在"; + //商品信息不唯一 + public static final int MATERIAL_NOT_ONLY_CODE = 8000001; + public static final String MATERIAL_NOT_ONLY_MSG = "商品信息不唯一"; + //该商品未开启序列号 + public static final int MATERIAL_NOT_ENABLE_SERIAL_NUMBER_CODE = 8000002; + public static final String MATERIAL_NOT_ENABLE_SERIAL_NUMBER_MSG = "该商品未开启序列号功能"; + //商品的序列号不能为空 + public static final int MATERIAL_SERIAL_NUMBERE_EMPTY_CODE = 8000003; + public static final String MATERIAL_SERIAL_NUMBERE_EMPTY_MSG = "抱歉,商品条码:%s的序列号不能为空"; + //商品库存不足 + public static final int MATERIAL_STOCK_NOT_ENOUGH_CODE = 8000004; + public static final String MATERIAL_STOCK_NOT_ENOUGH_MSG = "商品:%s库存不足"; + //商品条码重复 + public static final int MATERIAL_BARCODE_EXISTS_CODE = 8000005; + public static final String MATERIAL_BARCODE_EXISTS_MSG = "商品条码:%s重复"; + //商品-单位匹配不上 + public static final int MATERIAL_UNIT_MATE_CODE = 8000006; + public static final String MATERIAL_UNIT_MATE_MSG = "抱歉,商品条码:%s的单位匹配不上,请完善多单位信息!"; + //商品条码长度应该为4到40位 + public static final int MATERIAL_BARCODE_LENGTH_ERROR_CODE = 8000007; + public static final String MATERIAL_BARCODE_LENGTH_ERROR_MSG = "商品条码:%s的长度应该为4到40位"; + //序列号和批号只能有一项 + public static final int MATERIAL_ENABLE_MUST_ONE_CODE = 8000008; + public static final String MATERIAL_ENABLE_MUST_ONE_MSG = "抱歉,商品条码:%s的序列号和批号不能同时填1"; + //名称为空 + public static final int MATERIAL_NAME_EMPTY_CODE = 8000010; + public static final String MATERIAL_NAME_EMPTY_MSG = "第%s行名称为空"; + //基本单位为空 + public static final int MATERIAL_UNIT_EMPTY_CODE = 8000011; + public static final String MATERIAL_UNIT_EMPTY_MSG = "第%s行基本单位为空"; + //状态格式错误 + public static final int MATERIAL_ENABLED_ERROR_CODE = 8000012; + public static final String MATERIAL_ENABLED_ERROR_MSG = "第%s行状态格式错误"; + //单次导入超出1000条 + public static final int MATERIAL_IMPORT_OVER_LIMIT_CODE = 8000013; + public static final String MATERIAL_IMPORT_OVER_LIMIT_MSG = "抱歉,单次导入不能超出1000条"; + //基础重量格式错误 + public static final int MATERIAL_WEIGHT_NOT_DECIMAL_CODE = 8000014; + public static final String MATERIAL_WEIGHT_NOT_DECIMAL_MSG = "第%s行基础重量格式错误"; + //保质期格式错误 + public static final int MATERIAL_EXPIRY_NUM_NOT_INTEGER_CODE = 8000015; + public static final String MATERIAL_EXPIRY_NUM_NOT_INTEGER_MSG = "第%s行保质期格式错误"; + //比例格式错误 + public static final int MATERIAL_RATIO_NOT_INTEGER_CODE = 8000016; + public static final String MATERIAL_RATIO_NOT_INTEGER_MSG = "第%s行比例格式错误"; + //组装拆卸单不能选择批号或序列号商品 + public static final int MATERIAL_ASSEMBLE_SELECT_ERROR_CODE = 80000017; + public static final String MATERIAL_ASSEMBLE_SELECT_ERROR_MSG = "抱歉,组装拆卸单不能选择批号或序列号商品:%s"; + //调拨单不能选择批号或序列号商品 + public static final int MATERIAL_TRANSFER_SELECT_ERROR_CODE = 80000018; + public static final String MATERIAL_TRANSFER_SELECT_ERROR_MSG = "抱歉,调拨单不能选择批号或序列号商品:%s,建议走其它入库和出库单"; + //盘点业务不能选择批号或序列号商品 + public static final int MATERIAL_STOCK_CHECK_ERROR_CODE = 80000019; + public static final String MATERIAL_STOCK_CHECK_ERROR_MSG = "抱歉,盘点业务不能选择批号或序列号商品:%s,建议走其它入库和出库单"; + //EXCEL中存在重复的商品 + public static final int MATERIAL_EXCEL_IMPORT_EXIST_CODE = 80000020; + public static final String MATERIAL_EXCEL_IMPORT_EXIST_MSG = "抱歉,EXCEL中存在重复的商品,具体信息为:%s"; + //EXCEL中存在重复的条码 + public static final int MATERIAL_EXCEL_IMPORT_BARCODE_EXIST_CODE = 80000021; + public static final String MATERIAL_EXCEL_IMPORT_BARCODE_EXIST_MSG = "抱歉,EXCEL中存在重复的条码,具体条码为:%s"; + //名称长度超出 + public static final int MATERIAL_NAME_OVER_CODE = 8000022; + public static final String MATERIAL_NAME_OVER_MSG = "第%s行名称长度超出100个字符"; + //规格长度超出 + public static final int MATERIAL_STANDARD_OVER_CODE = 8000023; + public static final String MATERIAL_STANDARD_OVER_MSG = "第%s行规格长度超出100个字符"; + //型号长度超出 + public static final int MATERIAL_MODEL_OVER_CODE = 8000024; + public static final String MATERIAL_MODEL_OVER_MSG = "第%s行型号长度超出100个字符"; + //多属性商品不能输入库存,建议进行盘点录入 + public static final int MATERIAL_SKU_BEGIN_STOCK_FAILED_CODE = 8000025; + public static final String MATERIAL_SKU_BEGIN_STOCK_FAILED_MSG = "多属性商品%s不能输入库存,建议进行盘点录入"; + //商品条码不存在,请重新选择 + public static final int MATERIAL_BARCODE_IS_NOT_EXIST_CODE = 8000026; + public static final String MATERIAL_BARCODE_IS_NOT_EXIST_MSG = "商品条码%s不存在,请重新选择"; + //基本条码为空 + public static final int MATERIAL_BARCODE_EMPTY_CODE = 8000027; + public static final String MATERIAL_BARCODE_EMPTY_MSG = "第%s行基本条码为空"; + //EXCEL中有副条码在系统中已存在(除自身商品之外) + public static final int MATERIAL_EXCEL_IMPORT_MANY_BARCODE_EXIST_CODE = 80000028; + public static final String MATERIAL_EXCEL_IMPORT_MANY_BARCODE_EXIST_MSG = "抱歉,EXCEL中有副条码在系统中已存在,具体副条码为:%s"; + //单据中商品库存不足 + public static final int BILL_MATERIAL_STOCK_NOT_ENOUGH_CODE = 80000029; + public static final String BILL_MATERIAL_STOCK_NOT_ENOUGH_MSG = "单据:%s中商品:%s库存不足"; + + /** + * 单据信息 + * type = 85 + * */ + //添加单据信息失败 + public static final int DEPOT_HEAD_ADD_FAILED_CODE = 8500000; + public static final String DEPOT_HEAD_ADD_FAILED_MSG = "添加单据信息失败"; + //删除单据信息失败 + public static final int DEPOT_HEAD_DELETE_FAILED_CODE = 8500001; + public static final String DEPOT_HEAD_DELETE_FAILED_MSG = "删除单据信息失败"; + //修改单据信息失败 + public static final int DEPOT_HEAD_EDIT_FAILED_CODE = 8500002; + public static final String DEPOT_HEAD_EDIT_FAILED_MSG = "修改单据信息失败"; + //单据录入-仓库不能为空 + public static final int DEPOT_HEAD_DEPOT_FAILED_CODE = 8500004; + public static final String DEPOT_HEAD_DEPOT_FAILED_MSG = "仓库不能为空"; + //单据录入-调入仓库不能为空 + public static final int DEPOT_HEAD_ANOTHER_DEPOT_FAILED_CODE = 8500005; + public static final String DEPOT_HEAD_ANOTHER_DEPOT_FAILED_MSG = "调入仓库不能为空"; + //单据录入-明细不能为空 + public static final int DEPOT_HEAD_ROW_FAILED_CODE = 8500006; + public static final String DEPOT_HEAD_ROW_FAILED_MSG = "单据明细不能为空"; + //单据录入-账户不能为空 + public static final int DEPOT_HEAD_ACCOUNT_FAILED_CODE = 8500007; + public static final String DEPOT_HEAD_ACCOUNT_FAILED_MSG = "结算账户不能为空"; + //单据录入-请修改多账户的结算金额 + public static final int DEPOT_HEAD_MANY_ACCOUNT_FAILED_CODE = 8500008; + public static final String DEPOT_HEAD_MANY_ACCOUNT_FAILED_MSG = "请修改多账户的结算金额"; + //单据录入-调入仓库与原仓库不能重复 + public static final int DEPOT_HEAD_ANOTHER_DEPOT_EQUAL_FAILED_CODE = 8500010; + public static final String DEPOT_HEAD_ANOTHER_DEPOT_EQUAL_FAILED_MSG = "调入仓库与原仓库不能重复"; + //单据删除-只有未审核的单据才能删除,请先进行反审核 + public static final int DEPOT_HEAD_UN_AUDIT_DELETE_FAILED_CODE = 8500011; + public static final String DEPOT_HEAD_UN_AUDIT_DELETE_FAILED_MSG = "抱歉,只有未审核的单据才能删除,请先进行反审核"; + //单据审核-只有未审核的单据才能审核 + public static final int DEPOT_HEAD_UN_AUDIT_TO_AUDIT_FAILED_CODE = 8500012; + public static final String DEPOT_HEAD_UN_AUDIT_TO_AUDIT_FAILED_MSG = "抱歉,只有未审核的单据才能审核"; + //单据反审核-只有已审核的单据才能反审核 + public static final int DEPOT_HEAD_AUDIT_TO_UN_AUDIT_FAILED_CODE = 8500013; + public static final String DEPOT_HEAD_AUDIT_TO_UN_AUDIT_FAILED_MSG = "抱歉,只有已审核的单据才能反审核"; + //单据录入-商品条码XXX的数量需要修改下 + public static final int DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_CODE = 85000014; + public static final String DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_MSG = "商品条码%s的数量需要修改下"; + //单据录入-商品的批号不能为空 + public static final int DEPOT_HEAD_BATCH_NUMBERE_EMPTY_CODE = 8500015; + public static final String DEPOT_HEAD_BATCH_NUMBERE_EMPTY_MSG = "抱歉,商品条码:%s的批号不能为空"; + //单据录入-会员预付款余额不足 + public static final int DEPOT_HEAD_MEMBER_PAY_LACK_CODE = 8500016; + public static final String DEPOT_HEAD_MEMBER_PAY_LACK_MSG = "抱歉,会员预付款余额不足"; + //单据录入-累计订金超出原订单中的订金 + public static final int DEPOT_HEAD_DEPOSIT_OVER_PRE_CODE = 8500017; + public static final String DEPOT_HEAD_DEPOSIT_OVER_PRE_MSG = "抱歉,累计订金超出原订单中的订金"; + //单据录入-商品条码XXX的单价低于最低售价 + public static final int DEPOT_HEAD_UNIT_PRICE_LOW_CODE = 8500018; + public static final String DEPOT_HEAD_UNIT_PRICE_LOW_MSG = "商品条码%s的单价低于最低售价"; + //单据录入-单据明细中必须要有组合件和普通子件 + public static final int DEPOT_HEAD_CHECK_ASSEMBLE_EMPTY_CODE = 8500020; + public static final String DEPOT_HEAD_CHECK_ASSEMBLE_EMPTY_MSG = "抱歉,单据明细中必须要有组合件和普通子件"; + //单据录入-商品条码XXX的数量与序列号不一致 + public static final int DEPOT_HEAD_SN_NUMBERE_FAILED_CODE = 8500021; + public static final String DEPOT_HEAD_SN_NUMBERE_FAILED_MSG = "抱歉,商品条码:%s的数量与序列号不一致"; + //单据录入-单据编号已经存在 + public static final int DEPOT_HEAD_BILL_NUMBER_EXIST_CODE = 8500022; + public static final String DEPOT_HEAD_BILL_NUMBER_EXIST_MSG = "抱歉,单据编号已经存在"; + //单据录入-单据当前状态下不能修改 + public static final int DEPOT_HEAD_BILL_CANNOT_EDIT_CODE = 8500023; + public static final String DEPOT_HEAD_BILL_CANNOT_EDIT_MSG = "抱歉,单据当前状态下不能修改"; + //单据删除-单据中的序列号已经出库,不能删除 + public static final int DEPOT_HEAD_SERIAL_IS_SELL_CODE = 8500024; + public static final String DEPOT_HEAD_SERIAL_IS_SELL_MSG = "抱歉,单据%s的序列号已经出库,不能删除"; + //单据录入-单据附件不能超过规定数量 + public static final int DEPOT_HEAD_FILE_NUM_LIMIT_CODE = 8500025; + public static final String DEPOT_HEAD_FILE_NUM_LIMIT_MSG = "抱歉,单据附件不能超过%s份"; + //单据录入-完成采购的单据不能进行反审核 + public static final int DEPOT_HEAD_PURCHASE_STATUS_TWO_CODE = 8500026; + public static final String DEPOT_HEAD_PURCHASE_STATUS_TWO_MSG = "抱歉,完成采购的单据不能进行反审核"; + //单据录入-部分采购的单据不能进行反审核 + public static final int DEPOT_HEAD_PURCHASE_STATUS_THREE_CODE = 8500027; + public static final String DEPOT_HEAD_PURCHASE_STATUS_THREE_MSG = "抱歉,部分采购的单据不能进行反审核"; + //单据录入-单据中存在部分状态,需要到新增界面关联单据 + public static final int DEPOT_ITEM_EXIST_PARTIALLY_STATUS_FAILED_CODE = 8500028; + public static final String DEPOT_ITEM_EXIST_PARTIALLY_STATUS_FAILED_MSG = "抱歉,单据:%s是部分%s状态,需要到新增界面关联单据"; + //单据录入-关联请购单号和关联订单号不能同时录入 + public static final int DEPOT_ITEM_EXIST_REPEAT_NO_FAILED_CODE = 8500029; + public static final String DEPOT_ITEM_EXIST_REPEAT_NO_FAILED_MSG = "抱歉,关联请购单号和关联订单号不能同时录入"; + //单据录入-单据最新状态不能进行批量操作 + public static final int DEPOT_ITEM_EXIST_NEW_STATUS_FAILED_CODE = 8500030; + public static final String DEPOT_ITEM_EXIST_NEW_STATUS_FAILED_MSG = "抱歉,单据:%s最新状态不能进行批量操作"; + //单据录入-单据在该状态不能强制结单 + public static final int DEPOT_HEAD_FORCE_CLOSE_FAILED_CODE = 8500031; + public static final String DEPOT_HEAD_FORCE_CLOSE_FAILED_MSG = "抱歉,单据:%s在该状态不能强制结单"; + //单据录入-请勿频繁提交单据 + public static final int DEPOT_HEAD_SUBMIT_REPEAT_FAILED_CODE = 8500032; + public static final String DEPOT_HEAD_SUBMIT_REPEAT_FAILED_MSG = "抱歉,请不要频繁提交单据"; + //单据录入-单据明细中存在重复的序列号 + public static final int DEPOT_HEAD_CHECK_SERIAL_NUMBER_REPEAT_CODE = 8500033; + public static final String DEPOT_HEAD_CHECK_SERIAL_NUMBER_REPEAT_MSG = "抱歉,单据明细中存在重复的序列号:%s"; + //单据录入-序列号已被出库,不允许修改该单据 + public static final int DEPOT_HEAD_SN_NOT_ALLOW_UPDATE_CODE = 8500035; + public static final String DEPOT_HEAD_SN_NOT_ALLOW_UPDATE_MSG = "抱歉,序列号:%s已被出库,不允许修改该单据"; + //单据录入-单据被财务单据关联,不允许单独删除 + public static final int DEPOT_HEAD_FINANCIAL_ASSOCIATED_CODE = 8500036; + public static final String DEPOT_HEAD_FINANCIAL_ASSOCIATED_MSG = "单据:%s被财务单据:%s关联,不允许单独删除"; + + /** + * 单据明细信息 + * type = 90 + * */ + //添加单据明细信息失败 + public static final int DEPOT_ITEM_ADD_FAILED_CODE = 9000000; + public static final String DEPOT_ITEM_ADD_FAILED_MSG = "添加单据明细信息失败"; + //删除单据明细信息失败 + public static final int DEPOT_ITEM_DELETE_FAILED_CODE = 9000001; + public static final String DEPOT_ITEM_DELETE_FAILED_MSG = "删除单据明细信息失败"; + //修改单据明细信息失败 + public static final int DEPOT_ITEM_EDIT_FAILED_CODE = 9000002; + public static final String DEPOT_ITEM_EDIT_FAILED_MSG = "修改单据明细信息失败"; + //单据明细-明细中商品不存在 + public static final int DEPOT_ITEM_BARCODE_IS_NOT_EXIST_CODE = 9000003; + public static final String DEPOT_ITEM_BARCODE_IS_NOT_EXIST_MSG = "抱歉,商品条码:%s在商品管理中不存在"; + //单据明细-明细中仓库不存在 + public static final int DEPOT_ITEM_DEPOTNAME_IS_NOT_EXIST_CODE = 9000004; + public static final String DEPOT_ITEM_DEPOTNAME_IS_NOT_EXIST_MSG = "抱歉,仓库:%s在基础资料-仓库信息中不存在"; + //单据明细-单据中存在序列号,需要到新增界面关联单据 + public static final int DEPOT_ITEM_EXIST_SERIAL_NUMBER_FAILED_CODE = 9000005; + public static final String DEPOT_ITEM_EXIST_SERIAL_NUMBER_FAILED_MSG = "抱歉,单据:%s里面存在序列号,需要到新增界面关联单据"; + //单据明细-单据中存在批号,需要到新增界面关联单据 + public static final int DEPOT_ITEM_EXIST_BATCH_NUMBER_FAILED_CODE = 9000006; + public static final String DEPOT_ITEM_EXIST_BATCH_NUMBER_FAILED_MSG = "抱歉,单据:%s里面存在批号,需要到新增界面关联单据"; + //原关联单据已被修改,请重新关联 + public static final int DEPOT_ITEM_PRE_BILL_IS_CHANGE_CODE = 9000007; + public static final String DEPOT_ITEM_PRE_BILL_IS_CHANGE_MSG = "抱歉,原关联单据已被修改,请重新关联"; + + /** + * 财务信息 + * type = 95 + * */ + //添加财务信息失败 + public static final int ACCOUNT_HEAD_ADD_FAILED_CODE = 9500000; + public static final String ACCOUNT_HEAD_ADD_FAILED_MSG = "添加财务信息失败"; + //删除财务信息失败 + public static final int ACCOUNT_HEAD_DELETE_FAILED_CODE = 9500001; + public static final String ACCOUNT_HEAD_DELETE_FAILED_MSG = "删除财务信息失败"; + //修改财务信息失败 + public static final int ACCOUNT_HEAD_EDIT_FAILED_CODE = 9500002; + public static final String ACCOUNT_HEAD_EDIT_FAILED_MSG = "修改财务信息失败"; + //单据录入-明细不能为空 + public static final int ACCOUNT_HEAD_ROW_FAILED_CODE = 9500003; + public static final String ACCOUNT_HEAD_ROW_FAILED_MSG = "单据明细不能为空"; + //单据删除-只有未审核的单据才能删除,请先进行反审核 + public static final int ACCOUNT_HEAD_UN_AUDIT_DELETE_FAILED_CODE = 9500004; + public static final String ACCOUNT_HEAD_UN_AUDIT_DELETE_FAILED_MSG = "抱歉,只有未审核的单据才能删除,请先进行反审核"; + //财务信息录入-单据编号已经存在 + public static final int ACCOUNT_HEAD_BILL_NO_EXIST_CODE = 9500005; + public static final String ACCOUNT_HEAD_BILL_NO_EXIST_MSG = "抱歉,单据编号已经存在"; + //财务信息录入-付款账户和明细中的账户重复 + public static final int ACCOUNT_HEAD_ACCOUNT_REPEAT_CODE = 9500006; + public static final String ACCOUNT_HEAD_ACCOUNT_REPEAT_MSG = "抱歉,付款账户:%s和明细中的账户重复"; + //财务信息审核-只有未审核的单据才能审核 + public static final int ACCOUNT_HEAD_UN_AUDIT_TO_AUDIT_FAILED_CODE = 9500007; + public static final String ACCOUNT_HEAD_UN_AUDIT_TO_AUDIT_FAILED_MSG = "抱歉,只有未审核的单据才能审核"; + //财务信息反审核-只有已审核的单据才能反审核 + public static final int ACCOUNT_HEAD_AUDIT_TO_UN_AUDIT_FAILED_CODE = 9500008; + public static final String ACCOUNT_HEAD_AUDIT_TO_UN_AUDIT_FAILED_MSG = "抱歉,只有已审核的单据才能反审核"; + /** + * 财务明细信息 + * type = 100 + * */ + //添加财务明细信息失败 + public static final int ACCOUNT_ITEM_ADD_FAILED_CODE = 10000000; + public static final String ACCOUNT_ITEM_ADD_FAILED_MSG = "添加财务明细信息失败"; + //删除财务明细信息失败 + public static final int ACCOUNT_ITEM_DELETE_FAILED_CODE = 10000001; + public static final String ACCOUNT_ITEM_DELETE_FAILED_MSG = "删除财务明细信息失败"; + //修改财务明细信息失败 + public static final int ACCOUNT_ITEM_EDIT_FAILED_CODE = 10000002; + public static final String ACCOUNT_ITEM_EDIT_FAILED_MSG = "修改财务明细信息失败"; + /** + * 序列号 + * type = 105 + * */ + /**序列号已存在*/ + public static final int SERIAL_NUMBERE_ALREADY_EXISTS_CODE = 10500000; + public static final String SERIAL_NUMBERE_ALREADY_EXISTS_MSG = "序列号:%s已存在"; + /**序列号不存在或者已经出库*/ + public static final int SERIAL_NUMBERE_NOT_EXISTS_CODE = 10500001; + public static final String SERIAL_NUMBERE_NOT_EXISTS_MSG = "序列号:%s不存在或者已经出库"; + /** + * 部门信息 + * type = 110 + * */ + //添加部门信息失败 + public static final int ORGANIZATION_ADD_FAILED_CODE = 11000000; + public static final String ORGANIZATION_ADD_FAILED_MSG = "添加部门信息失败"; + //删除部门信息失败 + public static final int ORGANIZATION_DELETE_FAILED_CODE = 11000001; + public static final String ORGANIZATION_DELETE_FAILED_MSG = "删除部门信息失败"; + //修改部门信息失败 + public static final int ORGANIZATION_EDIT_FAILED_CODE = 11000002; + public static final String ORGANIZATION_EDIT_FAILED_MSG = "修改部门信息失败"; + //部门编号已存在 + public static final int ORGANIZATION_NO_ALREADY_EXISTS_CODE = 11000003; + public static final String ORGANIZATION_NO_ALREADY_EXISTS_MSG = "部门编号已存在"; + //根部门不允许删除 + public static final int ORGANIZATION_ROOT_NOT_ALLOWED_DELETE_CODE = 11000004; + public static final String ORGANIZATION_ROOT_NOT_ALLOWED_DELETE_MSG = "根部门不允许删除"; + //根部门不允许修改 + public static final int ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_CODE = 11000005; + public static final String ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_MSG = "根部门不允许修改"; + //该部门存在下级不允许删除 + public static final int ORGANIZATION_CHILD_NOT_ALLOWED_DELETE_CODE = 11000006; + public static final String ORGANIZATION_CHILD_NOT_ALLOWED_DELETE_MSG = "该部门存在下级不允许删除"; + /** + * 部门用户关联关系 + * type = 115 + * */ + //添加部门用户关联关系失败 + public static final int ORGA_USER_REL_ADD_FAILED_CODE = 11500000; + public static final String ORGA_USER_REL_ADD_FAILED_MSG = "添加部门用户关联关系失败"; + //删除部门用户关联关系失败 + public static final int ORGA_USER_REL_DELETE_FAILED_CODE = 11500001; + public static final String ORGA_USER_REL_DELETE_FAILED_MSG = "删除部门用户关联关系失败"; + //修改部门用户关联关系失败 + public static final int ORGA_USER_REL_EDIT_FAILED_CODE = 11500002; + public static final String ORGA_USER_REL_EDIT_FAILED_MSG = "修改部门用户关联关系失败"; + + //进销存统计,如果有权限的仓库数量太多则提示要选择仓库 + public static final int REPORT_TWO_MANY_DEPOT_FAILED_CODE = 510; + public static final String REPORT_TWO_MANY_DEPOT_FAILED_MSG = "请选择仓库,再进行查询"; + + /** + * 生成单据编号 + * type = 120 + * */ + //获取唯一单据编号失败 + public static final int SEQUENCE_ONLY_FAILED_CODE = 12000001; + public static final String SEQUENCE_ONLY_FAILED_MSG = "获取唯一单据编号失败,请稍后重试"; + //获取唯一单据编号操作被中断 + public static final int SEQUENCE_ONLY_BREAK_CODE = 12000002; + public static final String SEQUENCE_ONLY_BREAK_MSG = "获取唯一单据编号操作被中断"; + + /** + * 字典 + * type = 125 + * */ + //字典类型已分配,不能删除 + public static final int DICT_TYPE_ALREADY_USED_CODE = 12500001; + public static final String DICT_TYPE_ALREADY_USED_MSG = "%s已分配,不能删除"; + + //演示用户禁止操作 + public static final int SYSTEM_CONFIG_TEST_USER_CODE = -1; + public static final String SYSTEM_CONFIG_TEST_USER_MSG = "演示用户禁止操作"; + + /** + * 标准正常返回/操作成功返回 + * @return + */ + public static JSONObject standardSuccess () { + JSONObject success = new JSONObject(); + success.put(GLOBAL_RETURNS_CODE, SERVICE_SUCCESS_CODE); + success.put(GLOBAL_RETURNS_MESSAGE, SERVICE_SUCCESS_MSG); + return success; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountController.java new file mode 100644 index 0000000..86f0494 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountController.java @@ -0,0 +1,304 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.Account; +import com.reallin.smt.datasource.vo.AccountVo4InOutList; +import com.reallin.smt.datasource.vo.AccountVo4List; +import com.reallin.smt.service.AccountService; +import com.reallin.smt.service.SystemConfigService; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author jishenghua 75271*8920 + */ +@RestController +@RequestMapping(value = "/account") +@Api(tags = {"账户管理"}) +public class AccountController extends BaseController { + private Logger logger = LoggerFactory.getLogger(AccountController.class); + + @Resource + private AccountService accountService; + + @Resource + private SystemConfigService systemConfigService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Account account = accountService.getAccount(id); + Map objectMap = new HashMap<>(); + if(account != null) { + objectMap.put("info", account); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + String serialNo = StringUtil.getInfo(search, "serialNo"); + String remark = StringUtil.getInfo(search, "remark"); + List list = accountService.select(name, serialNo, remark); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = accountService.insertAccount(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = accountService.updateAccount(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = accountService.deleteAccount(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = accountService.batchDeleteAccount(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = accountService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 查找结算账户信息-下拉框 + * @param request + * @return + */ + @GetMapping(value = "/findBySelect") + @ApiOperation(value = "查找结算账户信息-下拉框") + public String findBySelect(HttpServletRequest request) throws Exception { + String res = null; + try { + List dataList = accountService.findBySelect(); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (Account account : dataList) { + JSONObject item = new JSONObject(); + item.put("Id", account.getId()); + //结算账户名称 + item.put("AccountName", account.getName()); + dataArray.add(item); + } + } + res = dataArray.toJSONString(); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res = "获取数据失败"; + } + return res; + } + + /** + * 获取所有结算账户 + * @param request + * @return + */ + @GetMapping(value = "/getAccount") + @ApiOperation(value = "获取所有结算账户") + public BaseResponseInfo getAccount(HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List accountList = accountService.getAccount(); + map.put("accountList", accountList); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 账户流水信息 + * @param currentPage + * @param pageSize + * @param accountId + * @param initialAmount + * @param request + * @return + */ + @GetMapping(value = "/findAccountInOutList") + @ApiOperation(value = "账户流水信息") + public BaseResponseInfo findAccountInOutList(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("accountId") Long accountId, + @RequestParam("initialAmount") BigDecimal initialAmount, + @RequestParam(value = "number",required = false) String number, + @RequestParam(value = "beginTime",required = false) String beginTime, + @RequestParam(value = "endTime",required = false) String endTime, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + List dataList = accountService.findAccountInOutList(accountId, StringUtil.toNull(number), + beginTime, endTime, forceFlag, (currentPage-1)*pageSize, pageSize); + int total = accountService.findAccountInOutListCount(accountId, StringUtil.toNull(number), + beginTime, endTime, forceFlag); + map.put("total", total); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (AccountVo4InOutList aEx : dataList) { + String type = aEx.getType().replace("其它", ""); + aEx.setType(type); + String operTime = aEx.getOperTime(); + BigDecimal balance = accountService.getAccountSum(accountId, null, operTime, forceFlag) + .add(accountService.getAccountSumByHead(accountId, null, operTime, forceFlag)) + .add(accountService.getAccountSumByDetail(accountId, null, operTime, forceFlag)) + .add(accountService.getManyAccountSum(accountId, null, operTime, forceFlag)).add(initialAmount); + aEx.setBalance(balance); + aEx.setAccountId(accountId); + dataArray.add(aEx); + } + } + map.put("rows", dataArray); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 更新默认账户 + * @param object + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/updateIsDefault") + @ApiOperation(value = "更新默认账户") + public String updateIsDefault(@RequestBody JSONObject object, + HttpServletRequest request) throws Exception{ + Long accountId = object.getLong("id"); + Map objectMap = new HashMap<>(); + int res = accountService.updateIsDefault(accountId); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 获取带余额的报表 + * @param request + * @return + */ + @GetMapping(value = "/listWithBalance") + @ApiOperation(value = "获取带余额的报表") + public TableDataInfo listWithBalance(@RequestParam("name") String name, + @RequestParam("serialNo") String serialNo, + HttpServletRequest request) throws Exception { + List list = accountService.listWithBalance(StringUtil.toNull(name), StringUtil.toNull(serialNo)); + return getDataTable(list); + } + + /** + * 结算账户的统计 + * @param request + * @return + */ + @GetMapping(value = "/getStatistics") + @ApiOperation(value = "结算账户的统计") + public BaseResponseInfo getStatistics(@RequestParam("name") String name, + @RequestParam("serialNo") String serialNo, + HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map map = accountService.getStatistics(StringUtil.toNull(name), StringUtil.toNull(serialNo)); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = accountService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountHeadController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountHeadController.java new file mode 100644 index 0000000..23d959b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountHeadController.java @@ -0,0 +1,197 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.AccountHead; +import com.reallin.smt.datasource.entities.AccountHeadVo4Body; +import com.reallin.smt.datasource.entities.AccountHeadVo4ListEx; +import com.reallin.smt.service.AccountHeadService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author jishenghua 752*718*920 + */ +@RestController +@RequestMapping(value = "/accountHead") +@Api(tags = {"财务管理"}) +public class AccountHeadController extends BaseController { + private Logger logger = LoggerFactory.getLogger(AccountHeadController.class); + + @Resource + private AccountHeadService accountHeadService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + AccountHead accountHead = accountHeadService.getAccountHead(id); + Map objectMap = new HashMap<>(); + if(accountHead != null) { + objectMap.put("info", accountHead); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String type = StringUtil.getInfo(search, "type"); + String billNo = StringUtil.getInfo(search, "billNo"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + Long organId = StringUtil.parseStrLong(StringUtil.getInfo(search, "organId")); + Long creator = StringUtil.parseStrLong(StringUtil.getInfo(search, "creator")); + Long handsPersonId = StringUtil.parseStrLong(StringUtil.getInfo(search, "handsPersonId")); + Long accountId = StringUtil.parseStrLong(StringUtil.getInfo(search, "accountId")); + String status = StringUtil.getInfo(search, "status"); + String remark = StringUtil.getInfo(search, "remark"); + String number = StringUtil.getInfo(search, "number"); + Long inOutItemId = StringUtil.parseStrLong(StringUtil.getInfo(search, "inOutItemId")); + List list = accountHeadService.select(type, billNo, beginTime, endTime, organId, creator, + handsPersonId, accountId, status, remark, number, inOutItemId); + return getDataTable(list); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = accountHeadService.deleteAccountHead(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = accountHeadService.batchDeleteAccountHead(ids, request); + return returnStr(objectMap, delete); + } + + /** + * 批量设置状态-审核或者反审核 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态-审核或者反审核") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request) throws Exception{ + Map objectMap = new HashMap<>(); + String status = jsonObject.getString("status"); + String ids = jsonObject.getString("ids"); + int res = accountHeadService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 新增财务主表及财务子表信息 + * @param body + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/addAccountHeadAndDetail") + @ApiOperation(value = "新增财务主表及财务子表信息") + public Object addAccountHeadAndDetail(@RequestBody AccountHeadVo4Body body, HttpServletRequest request) throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + String beanJson = body.getInfo(); + String rows = body.getRows(); + accountHeadService.addAccountHeadAndDetail(beanJson,rows, request); + return result; + } + + /** + * 更新财务主表及财务子表信息 + * @param body + * @param request + * @return + * @throws Exception + */ + @PutMapping(value = "/updateAccountHeadAndDetail") + @ApiOperation(value = "更新财务主表及财务子表信息") + public Object updateAccountHeadAndDetail(@RequestBody AccountHeadVo4Body body, HttpServletRequest request) throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + String beanJson = body.getInfo(); + String rows = body.getRows(); + accountHeadService.updateAccountHeadAndDetail(beanJson,rows,request); + return result; + } + + /** + * 根据编号查询单据信息 + * @param billNo + * @param request + * @return + */ + @GetMapping(value = "/getDetailByNumber") + @ApiOperation(value = "根据编号查询单据信息") + public BaseResponseInfo getDetailByNumber(@RequestParam("billNo") String billNo, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + AccountHeadVo4ListEx ahl = new AccountHeadVo4ListEx(); + try { + List list = accountHeadService.getDetailByNumber(billNo); + if(list.size()>0) { + ahl = list.get(0); + } + res.code = 200; + res.data = ahl; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据出入库单据id查询收付款单号 + * @param billId + * @param request + * @return + */ + @GetMapping(value = "/getFinancialBillNoByBillId") + @ApiOperation(value = "根据编号查询单据信息") + public BaseResponseInfo getFinancialBillNoByBillId(@RequestParam("billId") Long billId, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + List list = accountHeadService.getFinancialBillNoByBillId(billId); + res.code = 200; + res.data = list; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountItemController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountItemController.java new file mode 100644 index 0000000..4d02187 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/AccountItemController.java @@ -0,0 +1,93 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.vo.AccountItemVo4List; +import com.reallin.smt.service.AccountHeadService; +import com.reallin.smt.service.AccountItemService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @author ji sheng hua 752*718*920 + */ +@RestController +@RequestMapping(value = "/accountItem") +@Api(tags = {"财务明细"}) +public class AccountItemController { + private Logger logger = LoggerFactory.getLogger(AccountItemController.class); + + @Resource + private AccountItemService accountItemService; + + @Resource + private AccountHeadService accountHeadService; + + @GetMapping(value = "/getDetailList") + @ApiOperation(value = "明细列表") + public BaseResponseInfo getDetailList(@RequestParam("headerId") Long headerId, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + String type = null; + List dataList = new ArrayList<>(); + if(headerId != 0) { + dataList = accountItemService.getDetailList(headerId); + type = accountHeadService.getAccountHead(headerId).getType(); + } + JSONObject outer = new JSONObject(); + outer.put("total", dataList.size()); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (AccountItemVo4List ai : dataList) { + JSONObject item = new JSONObject(); + item.put("accountId", ai.getAccountId()); + item.put("accountName", ai.getAccountName()); + item.put("inOutItemId", ai.getInOutItemId()); + item.put("inOutItemName", ai.getInOutItemName()); + if(StringUtil.isNotEmpty(ai.getBillNumber())) { + item.put("billNumber", ai.getBillNumber()); + } else { + item.put("billNumber", "QiChu"); + } + item.put("needDebt", ai.getNeedDebt()); + item.put("finishDebt", ai.getFinishDebt()); + BigDecimal eachAmount = ai.getEachAmount(); + if(BusinessConstants.TYPE_MONEY_IN.equals(type)) { + item.put("eachAmount", eachAmount); + } else if(BusinessConstants.TYPE_MONEY_OUT.equals(type)) { + item.put("eachAmount", BigDecimal.ZERO.subtract(eachAmount)); + } else { + item.put("eachAmount", (eachAmount.compareTo(BigDecimal.ZERO))==-1 ? BigDecimal.ZERO.subtract(eachAmount): eachAmount); + } + item.put("remark", ai.getRemark()); + dataArray.add(item); + } + } + outer.put("rows", dataArray); + res.code = 200; + res.data = outer; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetController.java new file mode 100644 index 0000000..220400e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetController.java @@ -0,0 +1,108 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Asset; +import com.reallin.smt.service.AssetManagementService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +@RestController +@RequestMapping("/asset") +@Api(tags = "资产台账") +public class AssetController extends BaseController { + @Resource + private AssetManagementService service; + + @GetMapping("/list") + @ApiOperation("资产台账列表") + public TableDataInfo list(@RequestParam(value = Constants.SEARCH, required = false) String search) throws Exception { + List list = service.listAssets(value(search, "keyword"), longValue(search, "categoryId"), value(search, "status")); + return getDataTable(list); + } + + @GetMapping("/dashboard") + @ApiOperation("资产汇总统计") + public String dashboard() throws Exception { + return returnJson(service.assetDashboard(), "成功", 200); + } + + @GetMapping("/options") + public String options() throws Exception { + Map data = new HashMap<>(); + data.put("rows", service.assetOptions()); + return returnJson(data, "成功", 200); + } + + @GetMapping("/category/options") + public String categoryOptions() throws Exception { + Map data = new HashMap<>(); + data.put("rows", service.assetCategoryOptions()); + return returnJson(data, "成功", 200); + } + + @GetMapping("/category/list") + public String categoryList(@RequestParam(value = Constants.SEARCH, required = false) String search) throws Exception { + Map data = new HashMap<>(); + data.put("rows", service.listAssetCategories(value(search, "keyword"))); + return returnJson(data, "成功", 200); + } + + @PostMapping("/category/add") + public String addCategory(@RequestBody JSONObject json) throws Exception { + json.remove("id"); + return returnStr(new HashMap<>(), service.saveAssetCategory(json)); + } + + @PutMapping("/category/update") + public String updateCategory(@RequestBody JSONObject json) throws Exception { + return returnStr(new HashMap<>(), service.saveAssetCategory(json)); + } + + @DeleteMapping("/category/delete") + public String deleteCategory(@RequestParam Long id) throws Exception { + return returnStr(new HashMap<>(), service.deleteAssetCategory(id)); + } + + @PostMapping("/add") + public String add(@RequestBody JSONObject json) throws Exception { + json.remove("id"); + return returnStr(new HashMap<>(), service.saveAsset(json)); + } + + @PutMapping("/update") + public String update(@RequestBody JSONObject json) throws Exception { + return returnStr(new HashMap<>(), service.saveAsset(json)); + } + + @DeleteMapping("/delete") + public String delete(@RequestParam Long id) throws Exception { + return returnStr(new HashMap<>(), service.deleteAsset(id)); + } + + private static String value(String search, String key) { + return StringUtil.getInfo(search, key); + } + + private static Long longValue(String search, String key) { + String value = value(search, key); + if (value == null || value.trim().isEmpty()) return null; + try { + return Long.valueOf(value.trim()); + } catch (NumberFormatException ignored) { + return null; + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetDeviceController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetDeviceController.java new file mode 100644 index 0000000..af77fd3 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetDeviceController.java @@ -0,0 +1,62 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.AssetDevice; +import com.reallin.smt.service.AssetManagementService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +@RestController +@RequestMapping("/assetDevice") +@Api(tags = "设备台账") +public class AssetDeviceController extends BaseController { + @Resource + private AssetManagementService service; + + @GetMapping("/list") + @ApiOperation("设备台账列表") + public TableDataInfo list(@RequestParam(value = Constants.SEARCH, required = false) String search) throws Exception { + List list = service.listDevices(value(search, "keyword"), value(search, "deviceCategory"), value(search, "status")); + return getDataTable(list); + } + + @GetMapping("/options") + public String options() throws Exception { + Map data = new HashMap<>(); + data.put("rows", service.deviceOptions()); + return returnJson(data, "成功", 200); + } + + @PostMapping("/add") + public String add(@RequestBody JSONObject json) throws Exception { + json.remove("id"); + return returnStr(new HashMap<>(), service.saveDevice(json)); + } + + @PutMapping("/update") + public String update(@RequestBody JSONObject json) throws Exception { + return returnStr(new HashMap<>(), service.saveDevice(json)); + } + + @DeleteMapping("/delete") + public String delete(@RequestParam Long id) throws Exception { + return returnStr(new HashMap<>(), service.deleteDevice(id)); + } + + private static String value(String search, String key) { + return StringUtil.getInfo(search, key); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetInventoryController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetInventoryController.java new file mode 100644 index 0000000..08039de --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/AssetInventoryController.java @@ -0,0 +1,120 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.AssetInventory; +import com.reallin.smt.datasource.entities.AssetInventoryDetail; +import com.reallin.smt.datasource.vo.InventoryOperatorOption; +import com.reallin.smt.service.AssetManagementService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +@RestController +@RequestMapping("/assetInventory") +@Api(tags = "资产盘点") +public class AssetInventoryController extends BaseController { + @Resource + private AssetManagementService service; + + @GetMapping("/list") + public TableDataInfo list(@RequestParam(value = Constants.SEARCH, required = false) String search) throws Exception { + List list = service.listInventories(value(search, "keyword"), value(search, "status"), + value(search, "scopeType"), value(search, "plannedStart"), value(search, "plannedEnd"), + longValue(search, "inventoryUserId")); + return getDataTable(list); + } + + @GetMapping({"/operatorOptions", "/personOptions"}) + public String operatorOptions() throws Exception { + List rows = service.inventoryOperatorOptions(); + Map data = new HashMap<>(); + data.put("rows", rows); + return returnJson(data, "成功", 200); + } + + @GetMapping("/details") + public TableDataInfo details(@RequestParam Long inventoryId, + @RequestParam(required = false) String inventoryStatus, + @RequestParam(required = false) String keyword) throws Exception { + List list = service.listInventoryDetails(inventoryId, inventoryStatus, keyword); + return getDataTable(list); + } + + @PostMapping("/create") + @ApiOperation("创建盘点任务并生成台账快照") + public String create(@RequestBody JSONObject json) throws Exception { + return inventoryResult(service.createInventory(json, "MANUAL")); + } + + @PostMapping("/start") + public String start(@RequestBody JSONObject json) throws Exception { + return inventoryResult(service.startInventory(json.getLong("id"))); + } + + @PostMapping("/record") + @ApiOperation("登记单条资产或设备盘点结果,也支持按编码扫码盘点") + public String record(@RequestBody JSONObject json) throws Exception { + return inventoryResult(service.recordInventory(json)); + } + + @PostMapping("/submit") + public String submit(@RequestBody JSONObject json) throws Exception { + return inventoryResult(service.submitInventory(json.getLong("id"))); + } + + @PostMapping("/audit") + public String audit(@RequestBody JSONObject json) throws Exception { + Boolean approved = json.getBoolean("approved"); + return inventoryResult(service.auditInventory(json.getLong("id"), approved == null || approved, + json.getString("remark"))); + } + + @PostMapping("/close") + public String close(@RequestBody JSONObject json) throws Exception { + return inventoryResult(service.closeInventory(json.getLong("id"))); + } + + @DeleteMapping("/delete") + public String delete(@RequestParam Long id) throws Exception { + return returnStr(new HashMap<>(), service.deleteInventory(id)); + } + + @PostMapping("/collaboration/create") + @ApiOperation("供协同服务调用:幂等创建盘点任务") + public String collaborationCreate(@RequestBody(required = false) JSONObject json) throws Exception { + return inventoryResult(service.createInventory(json == null ? new JSONObject() : json, "COLLABORATION")); + } + + @PostMapping("/collaboration/record") + @ApiOperation("供协同服务调用:按盘点单和资产/设备编码回传盘点结果") + public String collaborationRecord(@RequestBody JSONObject json) throws Exception { + return inventoryResult(service.recordInventoryFromCollaboration(json)); + } + + private String inventoryResult(AssetInventory inventory) { + Map data = new HashMap<>(); + data.put("inventory", inventory); + return returnJson(data, "成功", 200); + } + + private static String value(String search, String key) { + return StringUtil.getInfo(search, key); + } + + private static Long longValue(String search, String key) { + String value = value(search, key); + return value == null || value.trim().isEmpty() ? null : Long.valueOf(value); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/CustomerCategoryController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/CustomerCategoryController.java new file mode 100644 index 0000000..1d7e76f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/CustomerCategoryController.java @@ -0,0 +1,102 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.datasource.entities.CustomerCategory; +import com.reallin.smt.service.CustomerCategoryService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * 客户分类管理 + */ +@RestController +@RequestMapping(value = "/customerCategory") +@Api(tags = {"客户分类管理"}) +public class CustomerCategoryController extends BaseController { + private Logger logger = LoggerFactory.getLogger(CustomerCategoryController.class); + + @Resource + private CustomerCategoryService customerCategoryService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getInfo(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + CustomerCategory category = customerCategoryService.getCustomerCategory(id); + Map objectMap = new HashMap<>(); + if (category != null) { + objectMap.put("info", category); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request) throws Exception { + String categoryName = StringUtil.getInfo(search, "categoryName"); + String parentId = StringUtil.getInfo(search, "parentId"); + List list = customerCategoryService.select(categoryName, + parentId != null && !parentId.isEmpty() ? Long.parseLong(parentId) : null); + return getDataTable(list); + } + + @GetMapping(value = "/treeList") + @ApiOperation(value = "获取树形列表") + public String getTreeList(HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + List list = customerCategoryService.getTreeList(); + objectMap.put("data", list); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String add(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = customerCategoryService.insertCustomerCategory(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String update(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int update = customerCategoryService.updateCustomerCategory(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String delete(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = customerCategoryService.deleteCustomerCategory(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDelete(@RequestParam("ids") String ids, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = customerCategoryService.batchDeleteByIds(ids, request); + return returnStr(objectMap, delete); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/CustomerContactController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/CustomerContactController.java new file mode 100644 index 0000000..a6edca9 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/CustomerContactController.java @@ -0,0 +1,111 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.datasource.entities.CustomerContact; +import com.reallin.smt.service.CustomerContactService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * 客户联系人管理 + */ +@RestController +@RequestMapping(value = "/customerContact") +@Api(tags = {"客户联系人管理"}) +public class CustomerContactController extends BaseController { + private Logger logger = LoggerFactory.getLogger(CustomerContactController.class); + + @Resource + private CustomerContactService customerContactService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getInfo(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + CustomerContact contact = customerContactService.getCustomerContact(id); + Map objectMap = new HashMap<>(); + if (contact != null) { + objectMap.put("info", contact); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request) throws Exception { + String customerId = StringUtil.getInfo(search, "customerId"); + String contactName = StringUtil.getInfo(search, "contactName"); + List list = customerContactService.select( + customerId != null && !customerId.isEmpty() ? Long.parseLong(customerId) : null, + contactName); + return getDataTable(list); + } + + @GetMapping(value = "/listByCustomerId") + @ApiOperation(value = "根据客户ID获取联系人列表") + public String getListByCustomerId(@RequestParam("customerId") Long customerId, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + List list = customerContactService.selectByCustomerId(customerId); + objectMap.put("data", list); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String add(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = customerContactService.insertCustomerContact(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String update(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int update = customerContactService.updateCustomerContact(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String delete(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = customerContactService.deleteCustomerContact(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDelete(@RequestParam("ids") String ids, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = customerContactService.batchDeleteByIds(ids, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteByCustomerId") + @ApiOperation(value = "根据客户ID删除所有联系人") + public String deleteByCustomerId(@RequestParam("customerId") Long customerId, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = customerContactService.deleteByCustomerId(customerId, request); + return returnStr(objectMap, delete); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/DashboardController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/DashboardController.java new file mode 100644 index 0000000..0c5277b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/DashboardController.java @@ -0,0 +1,29 @@ +package com.reallin.smt.controller; + +import com.reallin.smt.base.BaseController; +import com.reallin.smt.service.DashboardService; +import com.reallin.smt.utils.BaseResponseInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("/dashboard") +@Api(tags = {"首页看板"}) +public class DashboardController extends BaseController { + @Resource + private DashboardService dashboardService; + + @GetMapping("/operationOverview") + @ApiOperation(value = "获取首页业务运营概览") + public BaseResponseInfo operationOverview() { + BaseResponseInfo response = new BaseResponseInfo(); + response.code = 200; + response.data = dashboardService.getOperationOverview(); + return response; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/DeliveryPlanController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/DeliveryPlanController.java new file mode 100644 index 0000000..c8951cb --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/DeliveryPlanController.java @@ -0,0 +1,93 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.DeliveryPlanItem; +import com.reallin.smt.datasource.vo.DeliveryPlanVo4List; +import com.reallin.smt.service.DeliveryPlanService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +@RestController +@RequestMapping(value = "/deliveryPlan") +@Api(tags = {"交货计划管理"}) +public class DeliveryPlanController extends BaseController { + + @Resource + private DeliveryPlanService deliveryPlanService; + + @GetMapping(value = "/list") + @ApiOperation(value = "交货计划列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request) { + String planNumber = StringUtil.getInfo(search, "planNumber"); + String sourceBillNumber = StringUtil.getInfo(search, "sourceBillNumber"); + String saleOrderNumber = StringUtil.getInfo(search, "saleOrderNumber"); + String sourceType = StringUtil.getInfo(search, "sourceType"); + String status = StringUtil.getInfo(search, "status"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + List list = deliveryPlanService.select(planNumber, sourceBillNumber, saleOrderNumber, + sourceType, status, beginTime, endTime); + return getDataTable(list); + } + + @GetMapping(value = "/detail") + @ApiOperation(value = "交货计划详情") + public BaseResponseInfo getDetail(@RequestParam("id") Long id, HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + res.code = 200; + res.data = deliveryPlanService.getDetail(id); + return res; + } + + @GetMapping(value = "/sourceItems") + @ApiOperation(value = "出库单可计划明细") + public BaseResponseInfo getSourceItems(@RequestParam("sourceBillId") Long sourceBillId, HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + List rows = deliveryPlanService.getSourceItems(sourceBillId); + JSONObject data = new JSONObject(); + data.put("rows", rows); + res.code = 200; + res.data = data; + return res; + } + + @PostMapping(value = "/createFromSourceBill") + @ApiOperation(value = "从销售/零售出库单创建交货计划") + public String createFromSourceBill(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = deliveryPlanService.createFromSourceBill(obj, request); + return returnStr(objectMap, insert); + } + + @PostMapping(value = "/batchCreateFromSourceBill") + @ApiOperation(value = "批量从销售/零售出库单创建交货计划") + public String batchCreateFromSourceBill(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = deliveryPlanService.batchCreateFromSourceBill(obj, request); + objectMap.put("message", "已生成" + insert + "张交货计划"); + return returnStr(objectMap, insert); + } + + @PostMapping(value = "/adjust") + @ApiOperation(value = "调整交货计划") + public String adjustPlan(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int update = deliveryPlanService.adjustPlan(obj, request); + return returnStr(objectMap, update); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotController.java new file mode 100644 index 0000000..e032b8b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotController.java @@ -0,0 +1,305 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Depot; +import com.reallin.smt.datasource.entities.DepotEx; +import com.reallin.smt.datasource.entities.MaterialInitialStock; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.service.DepotService; +import com.reallin.smt.service.MaterialService; +import com.reallin.smt.service.UserBusinessService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji sheng hua 752*718*920 + */ +@RestController +@RequestMapping(value = "/depot") +@Api(tags = {"仓库管理"}) +public class DepotController extends BaseController { + private Logger logger = LoggerFactory.getLogger(DepotController.class); + + @Resource + private DepotService depotService; + + @Resource + private UserBusinessService userBusinessService; + + @Resource + private MaterialService materialService; + + @Resource + private UserService userService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Depot depot = depotService.getDepot(id); + Map objectMap = new HashMap<>(); + if(depot != null) { + objectMap.put("info", depot); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + Integer type = StringUtil.parseInteger(StringUtil.getInfo(search, "type")); + String remark = StringUtil.getInfo(search, "remark"); + List list = depotService.select(name, type, remark); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = depotService.insertDepot(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = depotService.updateDepot(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = depotService.deleteDepot(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = depotService.batchDeleteDepot(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = depotService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 仓库列表 + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getAllList") + @ApiOperation(value = "仓库列表") + public BaseResponseInfo getAllList(HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + List depotList = depotService.getAllList(); + res.code = 200; + res.data = depotList; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 用户对应仓库显示 + * @param type + * @param keyId + * @param request + * @return + */ + @GetMapping(value = "/findUserDepot") + @ApiOperation(value = "用户对应仓库显示") + public JSONArray findUserDepot(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, + HttpServletRequest request) throws Exception{ + JSONArray arr = new JSONArray(); + try { + //获取权限信息 + String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId); + List dataList = depotService.findUserDepot(); + //开始拼接json数据 + JSONObject outer = new JSONObject(); + outer.put("id", 0); + outer.put("key", 0); + outer.put("value", 0); + outer.put("title", "仓库列表"); + outer.put("attributes", "仓库列表"); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (Depot depot : dataList) { + JSONObject item = new JSONObject(); + item.put("id", depot.getId()); + item.put("key", depot.getId()); + item.put("value", depot.getId()); + item.put("title", depot.getName()); + item.put("attributes", depot.getName()); + Boolean flag = ubValue.contains("[" + depot.getId().toString() + "]"); + if (flag) { + item.put("checked", true); + } + dataArray.add(item); + } + } + outer.put("children", dataArray); + arr.add(outer); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return arr; + } + + /** + * 获取当前用户拥有权限的仓库列表 + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/findDepotByCurrentUser") + @ApiOperation(value = "获取当前用户拥有权限的仓库列表") + public BaseResponseInfo findDepotByCurrentUser(HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + JSONArray arr = depotService.findDepotByCurrentUser(); + res.code = 200; + res.data = arr; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 更新默认仓库 + * @param object + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/updateIsDefault") + @ApiOperation(value = "更新默认仓库") + public String updateIsDefault(@RequestBody JSONObject object, + HttpServletRequest request) throws Exception{ + Long depotId = object.getLong("id"); + Map objectMap = new HashMap<>(); + int res = depotService.updateIsDefault(depotId); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 仓库列表-带库存 + * @param mId + * @param request + * @return + */ + @GetMapping(value = "/getAllListWithStock") + @ApiOperation(value = "仓库列表-带库存") + public BaseResponseInfo getAllList(@RequestParam("mId") Long mId, + HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + try { + List list = depotService.getAllList(); + List depotList = new ArrayList(); + for(Depot depot: list) { + DepotEx de = new DepotEx(); + if(mId!=0) { + BigDecimal initStock = materialService.getInitStock(mId, depot.getId()); + BigDecimal currentStock = materialService.getCurrentStockByMaterialIdAndDepotId(mId, depot.getId()); + de.setInitStock(initStock); + de.setCurrentStock(currentStock); + MaterialInitialStock materialInitialStock = materialService.getSafeStock(mId, depot.getId()); + de.setLowSafeStock(materialInitialStock.getLowSafeStock()); + de.setHighSafeStock(materialInitialStock.getHighSafeStock()); + } else { + de.setInitStock(BigDecimal.ZERO); + de.setCurrentStock(BigDecimal.ZERO); + } + de.setId(depot.getId()); + de.setName(depot.getName()); + depotList.add(de); + } + res.code = 200; + res.data = depotList; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = depotService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotHeadController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotHeadController.java new file mode 100644 index 0000000..9986028 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotHeadController.java @@ -0,0 +1,864 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.DepotHeadVo4Body; +import com.reallin.smt.datasource.vo.DepotHeadVo4InDetail; +import com.reallin.smt.datasource.vo.DepotHeadVo4InOutMCount; +import com.reallin.smt.datasource.vo.DepotHeadVo4List; +import com.reallin.smt.datasource.vo.DepotHeadVo4StatementAccount; +import com.reallin.smt.service.DepotService; +import com.reallin.smt.service.DepotHeadService; +import com.reallin.smt.service.MaterialService; +import com.reallin.smt.service.SystemConfigService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji-sheng-hua 752*718*920 + */ +@RestController +@RequestMapping(value = "/depotHead") +@Api(tags = {"单据管理"}) +public class DepotHeadController extends BaseController { + private Logger logger = LoggerFactory.getLogger(DepotHeadController.class); + + @Resource + private DepotHeadService depotHeadService; + + @Resource + private DepotService depotService; + + @Resource + private MaterialService materialService; + + @Resource + private SystemConfigService systemConfigService; + + @Resource + private UserService userService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + DepotHead depotHead = depotHeadService.getDepotHead(id); + Map objectMap = new HashMap<>(); + if(depotHead != null) { + objectMap.put("info", depotHead); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String type = StringUtil.getInfo(search, "type"); + String subType = StringUtil.getInfo(search, "subType"); + String hasDebt = StringUtil.getInfo(search, "hasDebt"); + String hasLastDebt = StringUtil.getInfo(search, "hasLastDebt"); + String status = StringUtil.getInfo(search, "status"); + String purchaseStatus = StringUtil.getInfo(search, "purchaseStatus"); + String number = StringUtil.getInfo(search, "number"); + String linkApply = StringUtil.getInfo(search, "linkApply"); + String linkNumber = StringUtil.getInfo(search, "linkNumber"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + String materialParam = StringUtil.getInfo(search, "materialParam"); + Long organId = StringUtil.parseStrLong(StringUtil.getInfo(search, "organId")); + Long creator = StringUtil.parseStrLong(StringUtil.getInfo(search, "creator")); + Long depotId = StringUtil.parseStrLong(StringUtil.getInfo(search, "depotId")); + Long accountId = StringUtil.parseStrLong(StringUtil.getInfo(search, "accountId")); + String salesMan = StringUtil.getInfo(search, "salesMan"); + String remark = StringUtil.getInfo(search, "remark"); + List list = depotHeadService.select(type, subType, hasDebt, hasLastDebt, status, purchaseStatus, number, linkApply, linkNumber, + beginTime, endTime, materialParam, organId, creator, depotId, accountId, salesMan, remark); + return getDataTable(list); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = depotHeadService.deleteDepotHead(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = depotHeadService.batchDeleteDepotHead(ids, request); + return returnStr(objectMap, delete); + } + + @PostMapping(value = "/forceCloseBatch") + @ApiOperation(value = "强制结单") + public String forceCloseBatch(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String ids = jsonObject.getString("ids"); + int res = depotHeadService.batchForceClose(ids, request); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @PostMapping(value = "/forceClosePurchaseBatch") + @ApiOperation(value = "强制结单-以销定购") + public String forceClosePurchaseBatch(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String ids = jsonObject.getString("ids"); + int res = depotHeadService.batchForceClosePurchase(ids, request); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @PostMapping(value = "/batchSetLastDebt") + @ApiOperation(value = "修正最终欠款") + public String batchSetLastDebt(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String ids = jsonObject.getString("ids"); + int res = depotHeadService.batchSetLastDebt(ids, request); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @PostMapping(value = "/batchSetLastDeposit") + @ApiOperation(value = "修正剩余订金") + public String batchSetLastDeposit(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String ids = jsonObject.getString("ids"); + int res = depotHeadService.batchSetLastDeposit(ids, request); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 批量设置状态-审核或者反审核 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态-审核或者反审核") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request) throws Exception{ + Map objectMap = new HashMap<>(); + String status = jsonObject.getString("status"); + String ids = jsonObject.getString("ids"); + int res = depotHeadService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 入库出库明细接口 + * @param currentPage + * @param pageSize + * @param oId + * @param number + * @param materialParam + * @param depotId + * @param beginTime + * @param endTime + * @param type + * @param request + * @return + */ + @GetMapping(value = "/findInOutDetail") + @ApiOperation(value = "入库出库明细接口") + public BaseResponseInfo findInOutDetail(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "organId", required = false) Integer oId, + @RequestParam("number") String number, + @RequestParam("materialParam") String materialParam, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + @RequestParam("type") String type, + @RequestParam(value = "creator", required = false) Long creator, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "organizationId", required = false) Long organizationId, + @RequestParam("remark") String remark, + @RequestParam(value = "column", required = false, defaultValue = "createTime") String column, + @RequestParam(value = "order", required = false, defaultValue = "desc") String order, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List depotList = new ArrayList<>(); + if(depotId != null) { + depotList.add(depotId); + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotList.add(object.getLong("id")); + } + } + List resList = new ArrayList(); + String [] creatorArray = depotHeadService.getCreatorArray(); + if(creatorArray == null && organizationId != null) { + creatorArray = depotHeadService.getCreatorArrayByOrg(organizationId); + } + String subType = "出库".equals(type)? "销售" : ""; + String [] organArray = depotHeadService.getOrganArray(subType, ""); + List categoryList = new ArrayList<>(); + if(categoryId != null){ + categoryList = materialService.getListByParentId(categoryId); + } + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + List list = depotHeadService.findInOutDetail(beginTime, endTime, type, creatorArray, organArray, categoryList, forceFlag, inOutManageFlag, + StringUtil.toNull(materialParam), depotList, oId, StringUtil.toNull(number), creator, remark, + StringUtil.safeSqlParse(column), StringUtil.safeSqlParse(order), (currentPage-1)*pageSize, pageSize); + int total = depotHeadService.findInOutDetailCount(beginTime, endTime, type, creatorArray, organArray, categoryList, forceFlag, inOutManageFlag, + StringUtil.toNull(materialParam), depotList, oId, StringUtil.toNull(number), creator, remark); + map.put("total", total); + //存放数据json数组 + if (null != list) { + resList.addAll(list); + } + map.put("rows", resList); + DepotHeadVo4InDetail statistic = depotHeadService.findInOutDetailStatistic(beginTime, endTime, type, creatorArray, organArray, categoryList, forceFlag, inOutManageFlag, + StringUtil.toNull(materialParam), depotList, oId, StringUtil.toNull(number), creator, remark); + map.put("operNumberTotal", statistic.getOperNumber()); + map.put("allPriceTotal", statistic.getAllPrice()); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 入库出库汇总接口 + * @param currentPage + * @param pageSize + * @param oId + * @param materialParam + * @param depotId + * @param beginTime + * @param endTime + * @param type + * @param request + * @return + */ + @GetMapping(value = "/findInOutMaterialCount") + @ApiOperation(value = "入库出库汇总接口") + public BaseResponseInfo findInOutMaterialCount(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "organId", required = false) Integer oId, + @RequestParam("materialParam") String materialParam, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "organizationId", required = false) Long organizationId, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + @RequestParam("type") String type, + @RequestParam(value = "column", required = false, defaultValue = "createTime") String column, + @RequestParam(value = "order", required = false, defaultValue = "desc") String order, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List depotList = new ArrayList<>(); + if(depotId != null) { + depotList.add(depotId); + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotList.add(object.getLong("id")); + } + } + List categoryList = new ArrayList<>(); + if(categoryId != null){ + categoryList = materialService.getListByParentId(categoryId); + } + beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + List list = depotHeadService.findInOutMaterialCount(beginTime, endTime, type, categoryList, forceFlag, inOutManageFlag, + StringUtil.toNull(materialParam), depotList, organizationId, oId, StringUtil.safeSqlParse(column), StringUtil.safeSqlParse(order), + (currentPage-1)*pageSize, pageSize); + int total = depotHeadService.findInOutMaterialCountTotal(beginTime, endTime, type, categoryList, forceFlag, inOutManageFlag, + StringUtil.toNull(materialParam), depotList, organizationId, oId); + map.put("total", total); + map.put("rows", list); + DepotHeadVo4InOutMCount statistic = depotHeadService.findInOutMaterialCountStatistic(beginTime, endTime, type, categoryList, forceFlag, inOutManageFlag, + StringUtil.toNull(materialParam), depotList, organizationId, oId); + map.put("numSumTotal", statistic.getNumSum()); + map.put("priceSumTotal", statistic.getPriceSum()); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 调拨明细统计 + * @param currentPage + * @param pageSize + * @param number + * @param materialParam + * @param depotIdF 调出仓库 + * @param depotId 调入仓库 + * @param beginTime + * @param endTime + * @param subType + * @param request + * @return + */ + @GetMapping(value = "/findAllocationDetail") + @ApiOperation(value = "调拨明细统计") + public BaseResponseInfo findallocationDetail(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("number") String number, + @RequestParam("materialParam") String materialParam, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam(value = "depotIdF", required = false) Long depotIdF, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "organizationId", required = false) Long organizationId, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + @RequestParam("subType") String subType, + @RequestParam("remark") String remark, + @RequestParam(value = "column", required = false, defaultValue = "createTime") String column, + @RequestParam(value = "order", required = false, defaultValue = "desc") String order, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List depotList = new ArrayList<>(); + List depotFList = new ArrayList<>(); + if(depotId != null) { + depotList.add(depotId); + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotList.add(object.getLong("id")); + } + } + if(depotIdF != null) { + depotFList.add(depotIdF); + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotFList.add(object.getLong("id")); + } + } + String [] creatorArray = depotHeadService.getCreatorArray(); + if(creatorArray == null && organizationId != null) { + creatorArray = depotHeadService.getCreatorArrayByOrg(organizationId); + } + List categoryList = new ArrayList<>(); + if(categoryId != null){ + categoryList = materialService.getListByParentId(categoryId); + } + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + List list = depotHeadService.findAllocationDetail(beginTime, endTime, subType, StringUtil.toNull(number), + creatorArray, categoryList, forceFlag, StringUtil.toNull(materialParam), depotList, depotFList, remark, + StringUtil.safeSqlParse(column), StringUtil.safeSqlParse(order), (currentPage-1)*pageSize, pageSize); + int total = depotHeadService.findAllocationDetailCount(beginTime, endTime, subType, StringUtil.toNull(number), + creatorArray, categoryList, forceFlag, StringUtil.toNull(materialParam), depotList, depotFList, remark); + map.put("rows", list); + map.put("total", total); + DepotHeadVo4InDetail statistic = depotHeadService.findAllocationStatistic(beginTime, endTime, subType, StringUtil.toNull(number), + creatorArray, categoryList, forceFlag, StringUtil.toNull(materialParam), depotList, depotFList, remark); + map.put("operNumberTotal", statistic.getOperNumber()); + map.put("allPriceTotal", statistic.getAllPrice()); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 对账单接口 + * @param currentPage + * @param pageSize + * @param beginTime + * @param endTime + * @param organId + * @param hasDebt 1-有欠款 0-无欠款 + * @param supplierType + * @param request + * @return + */ + @GetMapping(value = "/getStatementAccount") + @ApiOperation(value = "对账单接口") + public BaseResponseInfo getStatementAccount(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + @RequestParam(value = "organId", required = false) Integer organId, + @RequestParam(value = "hasDebt", required = false) Integer hasDebt, + @RequestParam("supplierType") String supplierType, + @RequestParam(value = "billDirection", required = false) String billDirection, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + String type = ""; + String subType = ""; + String typeBack = ""; + String subTypeBack = ""; + String billType = ""; + if (("供应商").equals(supplierType)) { + type = "入库"; + subType = "采购"; + typeBack = "出库"; + subTypeBack = "采购退货"; + billType = "付款"; + } else if (("客户").equals(supplierType)) { + type = "出库"; + subType = "销售"; + typeBack = "入库"; + subTypeBack = "销售退货"; + billType = "收款"; + } else if (("会员").equals(supplierType)) { + if (("付款").equals(billDirection)) { + type = "入库"; + subType = "零售退货"; + billType = "付款"; + } else { + type = "出库"; + subType = "零售"; + billType = "收款"; + } + } + String [] organArray = depotHeadService.getOrganArray(subType, ""); + beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + List list = depotHeadService.getStatementAccount(beginTime, endTime, organId, organArray, + hasDebt, supplierType, type, subType,typeBack, subTypeBack, billType, (currentPage-1)*pageSize, pageSize); + int total = depotHeadService.getStatementAccountCount(beginTime, endTime, organId, organArray, + hasDebt, supplierType, type, subType,typeBack, subTypeBack, billType); + for(DepotHeadVo4StatementAccount item: list) { + //期初 = 起始期初金额+上期欠款金额-上期退货的欠款金额-上期收付款 + BigDecimal preNeed = item.getBeginNeed().add(item.getPreDebtMoney()).subtract(item.getPreReturnDebtMoney()).subtract(item.getPreBackMoney()); + item.setPreNeed(preNeed); + //实际欠款 = 本期欠款-本期退货的欠款金额 + BigDecimal realDebtMoney = item.getDebtMoney().subtract(item.getReturnDebtMoney()); + item.setDebtMoney(realDebtMoney); + //期末 = 期初+实际欠款-本期收款 + BigDecimal allNeedGet = preNeed.add(realDebtMoney).subtract(item.getBackMoney()); + item.setAllNeed(allNeedGet); + } + map.put("rows", list); + map.put("total", total); + List totalPayList = depotHeadService.getStatementAccountTotalPay(beginTime, endTime, organId, organArray, + hasDebt, supplierType, type, subType, typeBack, subTypeBack, billType); + if(totalPayList.size()>0) { + DepotHeadVo4StatementAccount totalPayItem = totalPayList.get(0); + BigDecimal firstMoney = BigDecimal.ZERO; + BigDecimal lastMoney = BigDecimal.ZERO; + if(totalPayItem!=null) { + //期初 = 起始期初金额+上期欠款金额-上期退货的欠款金额-上期收付款 + firstMoney = totalPayItem.getBeginNeed().add(totalPayItem.getPreDebtMoney()).subtract(totalPayItem.getPreReturnDebtMoney()).subtract(totalPayItem.getPreBackMoney()); + //期末 = 期初+本期欠款-本期退货的欠款金额-本期收款 + lastMoney = firstMoney.add(totalPayItem.getDebtMoney()).subtract(totalPayItem.getReturnDebtMoney()).subtract(totalPayItem.getBackMoney()); + } + map.put("firstMoney", firstMoney); //期初 + map.put("lastMoney", lastMoney); //期末 + } + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 获取待收款或付款的条数 + * @param request + * @return + */ + @GetMapping(value = "/getNeedCount") + @ApiOperation(value = "获取待收款或付款的条数") + public BaseResponseInfo getNeedCount(@RequestParam("type") String type, HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + String supplierType = ""; + if (("vendor").equals(type)) { + supplierType = "供应商"; + } else if (("customer").equals(type)) { + supplierType = "客户"; + } + int needCount = depotHeadService.getNeedCount(supplierType); + map.put("needCount", needCount); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据编号查询单据信息 + * @param number + * @param request + * @return + */ + @GetMapping(value = "/getDetailByNumber") + @ApiOperation(value = "根据编号查询单据信息") + public BaseResponseInfo getDetailByNumber(@RequestParam("number") String number, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + DepotHeadVo4List dhl = new DepotHeadVo4List(); + try { + List list = depotHeadService.getDetailByNumber(number, request); + if(list.size()>0) { + dhl = list.get(0); + } + res.code = 200; + res.data = dhl; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据原单号查询关联的单据列表 + * @param number + * @param request + * @return + */ + @GetMapping(value = "/getBillListByLinkNumber") + @ApiOperation(value = "根据原单号查询关联的单据列表") + public BaseResponseInfo getBillListByLinkNumber(@RequestParam("number") String number, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + DepotHead dh = new DepotHead(); + try { + List list = depotHeadService.getBillListByLinkNumber(number); + res.code = 200; + res.data = list; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 新增单据主表及单据子表信息 + * @param body + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/addDepotHeadAndDetail") + @ApiOperation(value = "新增单据主表及单据子表信息") + public Object addDepotHeadAndDetail(@RequestBody DepotHeadVo4Body body, HttpServletRequest request) throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + String beanJson = body.getInfo(); + String rows = body.getRows(); + depotHeadService.addDepotHeadAndDetail(beanJson, rows, request); + return result; + } + + /** + * 更新单据主表及单据子表信息 + * @param body + * @param request + * @return + * @throws Exception + */ + @PutMapping(value = "/updateDepotHeadAndDetail") + @ApiOperation(value = "更新单据主表及单据子表信息") + public Object updateDepotHeadAndDetail(@RequestBody DepotHeadVo4Body body, HttpServletRequest request) throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + String beanJson = body.getInfo(); + String rows = body.getRows(); + depotHeadService.updateDepotHeadAndDetail(beanJson,rows,request); + return result; + } + + /** + * 统计今日采购额、昨日采购额、本月采购额、今年采购额|销售额|零售额 + * @param request + * @return + */ + @GetMapping(value = "/getBuyAndSaleStatistics") + @ApiOperation(value = "统计今日采购额、昨日采购额、本月采购额、今年采购额|销售额|零售额") + public BaseResponseInfo getBuyAndSaleStatistics(HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map map = new HashMap<>(); + String today = Tools.getNow() + BusinessConstants.DAY_FIRST_TIME; + String monthFirstDay = Tools.firstDayOfMonth(Tools.getCurrentMonth()) + BusinessConstants.DAY_FIRST_TIME; + String yesterdayBegin = Tools.getYesterday() + BusinessConstants.DAY_FIRST_TIME; + String yesterdayEnd = Tools.getYesterday() + BusinessConstants.DAY_LAST_TIME; + String yearBegin = Tools.getYearBegin() + BusinessConstants.DAY_FIRST_TIME; + String yearEnd = Tools.getYearEnd() + BusinessConstants.DAY_LAST_TIME; + map = depotHeadService.getBuyAndSaleStatistics(today, monthFirstDay, yesterdayBegin, yesterdayEnd, yearBegin, yearEnd, request); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据当前用户获取操作员数组,用于控制当前用户的数据权限,限制可以看到的单据范围 + * 注意:该接口提供给部分插件使用,勿删 + * @param request + * @return + */ + @GetMapping(value = "/getCreatorByCurrentUser") + @ApiOperation(value = "根据当前用户获取操作员数组") + public BaseResponseInfo getCreatorByCurrentUser(HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + try { + String creator = depotHeadService.getCreatorByCurrentUser(); + res.code = 200; + res.data = creator; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 查询存在欠款的单据 + * @param search + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/debtList") + @ApiOperation(value = "查询存在欠款的单据") + public String debtList(@RequestParam(value = Constants.SEARCH, required = false) String search, + @RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + Long organId = StringUtil.parseStrLong(StringUtil.getInfo(search, "organId")); + String materialParam = StringUtil.getInfo(search, "materialParam"); + String number = StringUtil.getInfo(search, "number"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + String status = StringUtil.getInfo(search, "status"); + String type = StringUtil.getInfo(search, "type"); + String subType = StringUtil.getInfo(search, "subType"); + List list = depotHeadService.debtList(organId, materialParam, number, beginTime, endTime, + status, type, subType, (currentPage-1)*pageSize, pageSize); + int total = depotHeadService.debtListCount(organId, materialParam, number, beginTime, endTime, status, type, subType); + if (list != null) { + objectMap.put("rows", list); + objectMap.put("total", total); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + objectMap.put("rows", new ArrayList<>()); + objectMap.put("total", 0); + return returnJson(objectMap, "查找不到数据", ErpInfo.OK.code); + } + } + + /** + * 导出存在欠款的单据 + * @param organId + * @param materialParam + * @param number + * @param type + * @param subType + * @param beginTime + * @param endTime + * @param status + * @param mpList + * @param request + * @param response + * @throws Exception + */ + @GetMapping(value = "/debtExport") + @ApiOperation(value = "导出存在欠款的单据") + public void debtExport(@RequestParam(value = "organId", required = false) Long organId, + @RequestParam(value = "materialParam", required = false) String materialParam, + @RequestParam(value = "number", required = false) String number, + @RequestParam(value = "type", required = false) String type, + @RequestParam(value = "subType", required = false) String subType, + @RequestParam(value = "beginTime", required = false) String beginTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "status", required = false) String status, + @RequestParam(value = "mpList", required = false) String mpList, + HttpServletRequest request, HttpServletResponse response)throws Exception { + try { + depotHeadService.debtExport(organId, materialParam, number, type, subType, beginTime, endTime, + status, mpList, request, response); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } + + /** + * 查询等待入库或出库的单据 + * @param search + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/waitBillList") + @ApiOperation(value = "查询等待入库或出库的单据") + public String waitBillList(@RequestParam(value = Constants.SEARCH, required = false) String search, + @RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String number = StringUtil.getInfo(search, "number"); + String materialParam = StringUtil.getInfo(search, "materialParam"); + String type = StringUtil.getInfo(search, "type"); + String subType = StringUtil.getInfo(search, "subType"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + String status = StringUtil.getInfo(search, "status"); + List list = depotHeadService.waitBillList(number, materialParam, type, subType, beginTime, endTime, + status, (currentPage-1)*pageSize, pageSize); + long total = depotHeadService.waitBillCount(number, materialParam, type, subType, beginTime, endTime, status); + if (list != null) { + objectMap.put("rows", list); + objectMap.put("total", total); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + objectMap.put("rows", new ArrayList<>()); + objectMap.put("total", 0); + return returnJson(objectMap, "查找不到数据", ErpInfo.OK.code); + } + } + + /** + * 查询等待入库或出库的单据数量 + * @param search + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/waitBillCount") + @ApiOperation(value = "查询等待入库或出库的单据数量") + public String waitBillCount(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String number = StringUtil.getInfo(search, "number"); + String materialParam = StringUtil.getInfo(search, "materialParam"); + String type = StringUtil.getInfo(search, "type"); + String subType = StringUtil.getInfo(search, "subType"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + String status = StringUtil.getInfo(search, "status"); + long total = depotHeadService.waitBillCount(number, materialParam, type, subType, beginTime, endTime, status); + objectMap.put("total", total); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 批量新增入库或出库单据 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/batchAddDepotHeadAndDetail") + @ApiOperation(value = "批量新增入库或出库单据") + public Object batchAddDepotHeadAndDetail(@RequestBody JSONObject jsonObject, + HttpServletRequest request) throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + String ids = jsonObject.getString("ids"); + depotHeadService.batchAddDepotHeadAndDetail(ids, request); + return result; + } + + /** + * 快捷编辑单据 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PutMapping(value = "/quickEdit") + @ApiOperation(value = "快捷编辑单据") + public Object quickEdit(@RequestBody JSONObject jsonObject, HttpServletRequest request) throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + Long id = jsonObject.getLong("id"); + String remark = jsonObject.getString("remark"); + depotHeadService.quickEditDepotHead(id, remark, request); + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotItemController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotItemController.java new file mode 100644 index 0000000..dcba36f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/DepotItemController.java @@ -0,0 +1,1184 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.vo.DepotItemStockWarningCount; +import com.reallin.smt.datasource.vo.DepotItemVoBatchNumberList; +import com.reallin.smt.datasource.vo.InOutPriceVo; +import com.reallin.smt.datasource.vo.MaterialDepotStock; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.service.DepotService; +import com.reallin.smt.service.DepotHeadService; +import com.reallin.smt.service.DepotItemService; +import com.reallin.smt.service.MaterialService; +import com.reallin.smt.service.RoleService; +import com.reallin.smt.service.SystemConfigService; +import com.reallin.smt.service.UnitService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import jxl.Sheet; +import jxl.Workbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; + +/** + * @author ji-sheng-hua SMT + */ +@RestController +@RequestMapping(value = "/depotItem") +@Api(tags = {"单据明细"}) +public class DepotItemController { + private Logger logger = LoggerFactory.getLogger(DepotItemController.class); + + @Resource + private DepotHeadService depotHeadService; + + @Resource + private DepotItemService depotItemService; + + @Resource + private MaterialService materialService; + + @Resource + private UnitService unitService; + + @Resource + private DepotService depotService; + + @Resource + private RoleService roleService; + + @Resource + private UserService userService; + + @Resource + private SystemConfigService systemConfigService; + + @Value(value="${file.uploadType}") + private Long fileUploadType; + + /** + * 根据仓库和商品查询单据列表 + * @param mId + * @param request + * @return + */ + @GetMapping(value = "/findDetailByDepotIdsAndMaterialId") + @ApiOperation(value = "根据仓库和商品查询单据列表") + public String findDetailByDepotIdsAndMaterialId( + @RequestParam(value = Constants.PAGE_SIZE, required = false) Integer pageSize, + @RequestParam(value = Constants.CURRENT_PAGE, required = false) Integer currentPage, + @RequestParam(value = "depotIds",required = false) String depotIds, + @RequestParam(value = "sku",required = false) String sku, + @RequestParam(value = "batchNumber",required = false) String batchNumber, + @RequestParam(value = "number",required = false) String number, + @RequestParam(value = "beginTime",required = false) String beginTime, + @RequestParam(value = "endTime",required = false) String endTime, + @RequestParam(value = "stockPriceFlag",required = false, defaultValue = "false") Boolean stockPriceFlag, + @RequestParam("materialId") Long mId, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + if(StringUtil.isNotEmpty(beginTime)) { + beginTime = beginTime + BusinessConstants.DAY_FIRST_TIME; + } + if(StringUtil.isNotEmpty(endTime)) { + endTime = endTime + BusinessConstants.DAY_LAST_TIME; + } + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + if(stockPriceFlag!=null && stockPriceFlag) { + //此处针对开启了出入库管理开关,用于查询成本价的明细,不然会导致查询不到销售相关的单据 + inOutManageFlag = false; + } + List list = depotItemService.findDetailByDepotIdsAndMaterialIdList(depotIds, forceFlag, inOutManageFlag, sku, + batchNumber, StringUtil.toNull(number), beginTime, endTime, mId, (currentPage-1)*pageSize, pageSize); + JSONArray dataArray = new JSONArray(); + if (list != null) { + for (DepotItemVo4DetailByTypeAndMId d: list) { + JSONObject item = new JSONObject(); + item.put("number", d.getNumber()); //编号 + item.put("barCode", d.getBarCode()); //条码 + item.put("materialName", d.getMaterialName()); //名称 + String type = d.getType(); + String subType = d.getSubType(); + if(("其它").equals(type)) { + item.put("type", subType); //进出类型 + } else { + item.put("type", subType + type); //进出类型 + } + item.put("depotName", d.getDepotName()); //仓库名称 + item.put("basicNumber", d.getBnum()); //数量 + item.put("unitPrice", d.getUnitPrice()); //单价 + item.put("allPrice", d.getAllPrice()); //金额 + item.put("operTime", Tools.getCenternTime(d.getOtime())); //时间 + dataArray.add(item); + } + } + if (list == null) { + objectMap.put("rows", new ArrayList()); + objectMap.put("total", BusinessConstants.DEFAULT_LIST_NULL_NUMBER); + return returnJson(objectMap, "查找不到数据", ErpInfo.OK.code); + } + objectMap.put("rows", dataArray); + objectMap.put("total", depotItemService.findDetailByDepotIdsAndMaterialIdCount(depotIds, forceFlag, inOutManageFlag, sku, + batchNumber, StringUtil.toNull(number), beginTime, endTime, mId)); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 根据商品条码和仓库id查询库存数量 + * @param depotId + * @param barCode + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/findStockByDepotAndBarCode") + @ApiOperation(value = "根据商品条码和仓库id查询库存数量") + public BaseResponseInfo findStockByDepotAndBarCode( + @RequestParam(value = "depotId",required = false) Long depotId, + @RequestParam("barCode") String barCode, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + BigDecimal stock = BigDecimal.ZERO; + List list = materialService.getMaterialByBarCode(barCode); + if(list!=null && list.size()>0) { + MaterialVo4Unit materialVo4Unit = list.get(0); + if(StringUtil.isNotEmpty(materialVo4Unit.getSku())){ + stock = depotItemService.getSkuStockByParam(depotId,materialVo4Unit.getMeId(),null,null); + } else { + stock = depotItemService.getCurrentStockByParam(depotId, materialVo4Unit.getId()); + if(materialVo4Unit.getUnitId()!=null) { + Unit unit = unitService.getUnit(materialVo4Unit.getUnitId()); + String commodityUnit = materialVo4Unit.getCommodityUnit(); + stock = unitService.parseStockByUnit(stock, unit, commodityUnit); + } + } + } + map.put("stock", stock); + res.code = 200; + res.data = map; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 单据明细列表 + * @param headerId + * @param mpList + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getDetailList") + @ApiOperation(value = "单据明细列表") + public BaseResponseInfo getDetailList(@RequestParam("headerId") Long headerId, + @RequestParam(value = "mpList", required = false) String mpList, + @RequestParam(value = "linkType", required = false) String linkType, + @RequestParam(value = "isReadOnly", required = false) String isReadOnly, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + List dataList = new ArrayList<>(); + DepotHead depotHead = depotHeadService.getDepotHead(headerId); + String billCategory = depotHeadService.getBillCategory(depotHead.getSubType()); + if(headerId != 0) { + dataList = depotItemService.getDetailList(headerId); + } + JSONObject outer = new JSONObject(); + outer.put("total", dataList.size()); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + BigDecimal totalOperNumber = BigDecimal.ZERO; + BigDecimal totalAllPrice = BigDecimal.ZERO; + BigDecimal totalTaxMoney = BigDecimal.ZERO; + BigDecimal totalTaxLastMoney = BigDecimal.ZERO; + BigDecimal totalFinishPurchaseNumber = BigDecimal.ZERO; + BigDecimal totalFinishNumber = BigDecimal.ZERO; + BigDecimal totalWeight = BigDecimal.ZERO; + Map unitMap = unitService.getUnitMap(); + for (DepotItemVo4WithInfoEx diEx : dataList) { + Unit unitInfo = unitMap!=null?unitMap.get(diEx.getUnitId()):new Unit(); //查询多单位信息 + String materialUnit = diEx.getMaterialUnit(); + BigDecimal stock; + if(StringUtil.isNotEmpty(diEx.getSku())){ + stock = depotItemService.getSkuStockByParam(diEx.getDepotId(),diEx.getMaterialExtendId(),null,null); + } else { + stock = depotItemService.getCurrentStockByParam(diEx.getDepotId(),diEx.getMaterialId()); + if (unitInfo!=null) { + stock = unitService.parseStockByUnit(stock, unitInfo, materialUnit); + } + } + BigDecimal finishPurchaseNumber = BigDecimal.ZERO; + if(BusinessConstants.PURCHASE_STATUS_SKIPING.equals(depotHead.getPurchaseStatus())) { + //只统计部分完成的场景 + finishPurchaseNumber = depotItemService.getFinishPurchaseNumber(diEx.getMaterialExtendId(), diEx.getId(), depotHead.getNumber(), linkType, depotHead.getSubType()); + if (unitInfo!=null) { + finishPurchaseNumber = unitService.parseStockByUnit(finishPurchaseNumber, unitInfo, materialUnit); + } + } + BigDecimal finishNumber = BigDecimal.ZERO; + if(BusinessConstants.BILLS_STATUS_SKIPING.equals(depotHead.getStatus())) { + //只统计部分完成的场景 + finishNumber = depotItemService.getFinishNumber(diEx.getMaterialExtendId(), diEx.getId(), depotHead.getNumber(), linkType, depotHead.getSubType()); + if (unitInfo!=null) { + finishNumber = unitService.parseStockByUnit(finishNumber, unitInfo, materialUnit); + } + } + JSONObject item = new JSONObject(); + item.put("id", diEx.getId()); + item.put("materialExtendId", diEx.getMaterialExtendId() == null ? "" : diEx.getMaterialExtendId()); + item.put("barCode", diEx.getBarCode()); + item.put("name", diEx.getMName()); + item.put("standard", diEx.getMStandard()); + item.put("model", diEx.getMModel()); + item.put("color", diEx.getMColor()); + item.put("brand", diEx.getBrand()); + item.put("mfrs", diEx.getMMfrs()); + item.put("otherField1", diEx.getMOtherField1()); + item.put("otherField2", diEx.getMOtherField2()); + item.put("otherField3", diEx.getMOtherField3()); + item.put("stock", stock); + item.put("unit", diEx.getMaterialUnit()); + item.put("snList", diEx.getSnList()); + item.put("batchNumber", diEx.getBatchNumber()); + item.put("expirationDate", Tools.parseDateToStr(diEx.getExpirationDate())); + item.put("sku", diEx.getSku()); + item.put("enableSerialNumber", diEx.getEnableSerialNumber()); + item.put("enableBatchNumber", diEx.getEnableBatchNumber()); + item.put("operNumber", diEx.getOperNumber()); + item.put("basicNumber", diEx.getBasicNumber()); + item.put("preNumber", diEx.getOperNumber()); //原数量 + item.put("finishPurchaseNumber", finishPurchaseNumber); //已采购(以销定购的情况) + item.put("finishNumber", finishNumber); //已采购|已销售|已入库|已出库 + item.put("purchaseDecimal", roleService.parseBillPriceByLimit(diEx.getPurchaseDecimal(), billCategory, priceLimit, request)); //采购价 + if("basic".equals(linkType) || "1".equals(isReadOnly)) { + //正常情况显示金额,而以销定购的情况不能显示金额 + item.put("unitPrice", roleService.parseBillPriceByLimit(diEx.getUnitPrice(), billCategory, priceLimit, request)); + item.put("taxUnitPrice", roleService.parseBillPriceByLimit(diEx.getTaxUnitPrice(), billCategory, priceLimit, request)); + item.put("allPrice", roleService.parseBillPriceByLimit(diEx.getAllPrice(), billCategory, priceLimit, request)); + item.put("taxRate", roleService.parseBillPriceByLimit(diEx.getTaxRate(), billCategory, priceLimit, request)); + item.put("taxMoney", roleService.parseBillPriceByLimit(diEx.getTaxMoney(), billCategory, priceLimit, request)); + item.put("taxLastMoney", roleService.parseBillPriceByLimit(diEx.getTaxLastMoney(), billCategory, priceLimit, request)); + } + BigDecimal allWeight = diEx.getBasicNumber()==null||diEx.getWeight()==null?BigDecimal.ZERO:diEx.getBasicNumber().multiply(diEx.getWeight()); + item.put("weight", allWeight); + item.put("position", diEx.getPosition()); + item.put("remark", diEx.getRemark()); + item.put("imgName", diEx.getImgName()); + if(fileUploadType == 2) { + item.put("imgSmall", "small"); + item.put("imgLarge", "large"); + } else { + item.put("imgSmall", ""); + item.put("imgLarge", ""); + } + item.put("linkId", diEx.getLinkId()); + item.put("depotId", diEx.getDepotId() == null ? "" : diEx.getDepotId()); + item.put("depotName", diEx.getDepotId() == null ? "" : diEx.getDepotName()); + item.put("anotherDepotId", diEx.getAnotherDepotId() == null ? "" : diEx.getAnotherDepotId()); + item.put("anotherDepotName", diEx.getAnotherDepotId() == null ? "" : diEx.getAnotherDepotName()); + item.put("mType", diEx.getMaterialType()); + item.put("op", 1); + dataArray.add(item); + //合计数据汇总 + totalOperNumber = totalOperNumber.add(diEx.getOperNumber()==null?BigDecimal.ZERO:diEx.getOperNumber()); + totalAllPrice = totalAllPrice.add(diEx.getAllPrice()==null?BigDecimal.ZERO:diEx.getAllPrice()); + totalTaxMoney = totalTaxMoney.add(diEx.getTaxMoney()==null?BigDecimal.ZERO:diEx.getTaxMoney()); + totalTaxLastMoney = totalTaxLastMoney.add(diEx.getTaxLastMoney()==null?BigDecimal.ZERO:diEx.getTaxLastMoney()); + totalFinishPurchaseNumber = totalFinishPurchaseNumber.add(finishPurchaseNumber); + totalFinishNumber = totalFinishNumber.add(finishNumber); + totalWeight = totalWeight.add(allWeight); + } + if(StringUtil.isNotEmpty(isReadOnly) && "1".equals(isReadOnly)) { + JSONObject footItem = new JSONObject(); + footItem.put("operNumber", totalOperNumber); + footItem.put("allPrice", roleService.parseBillPriceByLimit(totalAllPrice, billCategory, priceLimit, request)); + footItem.put("taxMoney", roleService.parseBillPriceByLimit(totalTaxMoney, billCategory, priceLimit, request)); + footItem.put("taxLastMoney", roleService.parseBillPriceByLimit(totalTaxLastMoney, billCategory, priceLimit, request)); + footItem.put("finishPurchaseNumber", totalFinishPurchaseNumber); + footItem.put("finishNumber", totalFinishNumber); + footItem.put("weight", totalWeight); + dataArray.add(footItem); + } + outer.put("rows", dataArray); + res.code = 200; + res.data = outer; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 进销存统计查询 + * @param currentPage + * @param pageSize + * @param depotIds + * @param beginTime + * @param endTime + * @param materialParam + * @param mpList + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getInOutStock") + @ApiOperation(value = "进销存统计查询") + public BaseResponseInfo getInOutStock(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "depotIds",required = false) String depotIds, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + @RequestParam("materialParam") String materialParam, + @RequestParam(value = "mpList", required = false) String mpList, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + Boolean moveAvgPriceFlag = systemConfigService.getMoveAvgPriceFlag(); + List categoryIdList = new ArrayList<>(); + if(categoryId != null){ + categoryIdList = materialService.getListByParentId(categoryId); + } + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + List depotList = parseListByDepotIds(depotIds); + List dataList = depotItemService.getInOutStock(StringUtil.toNull(materialParam), + categoryIdList, endTime,(currentPage-1)*pageSize, pageSize); + int total = depotItemService.getInOutStockCount(StringUtil.toNull(materialParam), categoryIdList, endTime); + map.put("total", total); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (DepotItemVo4WithInfoEx diEx : dataList) { + JSONObject item = new JSONObject(); + Long mId = diEx.getMId(); + item.put("id", mId); + item.put("barCode", diEx.getBarCode()); + item.put("materialName", diEx.getMName()); + item.put("materialModel", diEx.getMModel()); + item.put("materialStandard", diEx.getMStandard()); + item.put("materialColor", diEx.getMColor()); + item.put("materialMfrs", diEx.getMMfrs()); + item.put("materialBrand", diEx.getBrand()); + //扩展信息 + item.put("otherField1", diEx.getMOtherField1()); + item.put("otherField2", diEx.getMOtherField2()); + item.put("otherField3", diEx.getMOtherField3()); + item.put("unitId", diEx.getUnitId()); + item.put("unitName", null!=diEx.getUnitId() ? diEx.getMaterialUnit()+"[多单位]" : diEx.getMaterialUnit()); + BigDecimal prevSum = depotItemService.getStockByParamWithDepotList(depotList,mId,null,beginTime); + Map intervalMap = depotItemService.getIntervalMapByParamWithDepotList(depotList,mId,beginTime,endTime); + BigDecimal inSum = intervalMap.get("inSum"); + BigDecimal outSum = intervalMap.get("outSum"); + BigDecimal thisSum = prevSum.add(inSum).subtract(outSum); + item.put("prevSum", prevSum); + item.put("inSum", inSum); + item.put("outSum", outSum); + item.put("thisSum", thisSum); + //将小单位的库存换算为大单位的库存 + item.put("bigUnitStock", materialService.getBigUnitStock(thisSum, diEx.getUnitId())); + if(moveAvgPriceFlag) { + item.put("unitPrice", roleService.parseStockPriceByLimit(diEx.getCurrentUnitPrice(), priceLimit, request)); + } else { + item.put("unitPrice", roleService.parseStockPriceByLimit(diEx.getPurchaseDecimal(), priceLimit, request)); + } + if(moveAvgPriceFlag) { + item.put("thisAllPrice", roleService.parseStockPriceByLimit(thisSum.multiply(diEx.getCurrentUnitPrice()), priceLimit, request)); + } else { + item.put("thisAllPrice", roleService.parseStockPriceByLimit(thisSum.multiply(diEx.getPurchaseDecimal()), priceLimit, request)); + } + item.put("imgName", diEx.getImgName()); + if(fileUploadType == 2) { + item.put("imgSmall", "small"); + item.put("imgLarge", "large"); + } + dataArray.add(item); + } + } + map.put("rows", dataArray); + res.code = 200; + res.data = map; + } catch (BusinessRunTimeException e) { + res.code = e.getCode(); + res.data = e.getData().get("message"); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 进销存统计总计金额 + * @param depotIds + * @param endTime + * @param materialParam + * @param request + * @return + */ + @GetMapping(value = "/getInOutStockCountMoney") + @ApiOperation(value = "进销存统计总计金额") + public BaseResponseInfo getInOutStockCountMoney(@RequestParam(value = "depotIds",required = false) String depotIds, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam("endTime") String endTime, + @RequestParam("materialParam") String materialParam, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + Boolean moveAvgPriceFlag = systemConfigService.getMoveAvgPriceFlag(); + List categoryIdList = new ArrayList<>(); + if(categoryId != null){ + categoryIdList = materialService.getListByParentId(categoryId); + } + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + List depotList = parseListByDepotIds(depotIds); + List dataList = depotItemService.getInOutStock(StringUtil.toNull(materialParam), + categoryIdList, endTime, null, null); + BigDecimal thisAllStock = BigDecimal.ZERO; + BigDecimal thisAllPrice = BigDecimal.ZERO; + if (null != dataList) { + for (DepotItemVo4WithInfoEx diEx : dataList) { + Long mId = diEx.getMId(); + BigDecimal thisSum = depotItemService.getStockByParamWithDepotList(depotList,mId,null,endTime); + thisAllStock = thisAllStock.add(thisSum); + BigDecimal unitPrice = null; + if(moveAvgPriceFlag) { + unitPrice = diEx.getCurrentUnitPrice(); + } else { + unitPrice = diEx.getPurchaseDecimal(); + } + if(unitPrice == null) { + unitPrice = BigDecimal.ZERO; + } + thisAllPrice = thisAllPrice.add(thisSum.multiply(unitPrice)); + } + } + map.put("totalStock", thisAllStock); + map.put("totalCount", roleService.parseStockPriceByLimit(thisAllPrice, priceLimit, request)); + boolean showStockPrice = true; + if(StringUtil.isNotEmpty(priceLimit)) { + if(priceLimit.contains("7")) { + showStockPrice = false; + } + } + map.put("showStockPrice", showStockPrice); + res.code = 200; + res.data = map; + } catch (BusinessRunTimeException e) { + res.code = e.getCode(); + res.data = e.getData().get("message"); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + + /** + * 根据仓库和商品查询库存分布情况-带时间段参数 + * @param mId + * @param request + * @return + */ + @GetMapping(value = "/getMaterialDepotStockByParam") + @ApiOperation(value = "根据仓库和商品查询库存分布情况-带时间段参数") + public String getMaterialDepotStockByParam( + @RequestParam(value = "depotIds",required = false) String depotIds, + @RequestParam("materialId") Long mId, + @RequestParam(value = "unitPrice", required = false) BigDecimal unitPrice, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + Map depotMap = new HashMap<>(); + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for (Object depotObj: depotArr) { + if(depotObj!=null) { + JSONObject depotObject = JSONObject.parseObject(depotObj.toString()); + depotMap.put(depotObject.getLong("id"), depotObject.getString("depotName")); + } + } + String[] depotIdArr = null; + if(StringUtil.isNotEmpty(depotIds)) { + depotIdArr = depotIds.split(","); + } + List depotList = depotService.parseDepotListByArr(depotIdArr); + Long[] depotIdArray = StringUtil.listToLongArray(depotList); + List list = new ArrayList<>(); + for (int i = 0; i < depotIdArray.length; i++) { + Long depotId = depotIdArray[i]; + List currentDepotIdList = new ArrayList<>(); + currentDepotIdList.add(depotId); + String depotName = depotMap.get(depotId); + MaterialDepotStock materialDepotStock = new MaterialDepotStock(); + materialDepotStock.setDepotId(depotId); + materialDepotStock.setDepotName(depotName); + BigDecimal prevSum = depotItemService.getStockByParamWithDepotList(currentDepotIdList,mId,null,beginTime); + Map intervalMap = depotItemService.getIntervalMapByParamWithDepotList(currentDepotIdList,mId,beginTime,endTime); + BigDecimal inSum = intervalMap.get("inSum"); + BigDecimal outSum = intervalMap.get("outSum"); + BigDecimal thisSum = prevSum.add(inSum).subtract(outSum); + materialDepotStock.setCurrentNumber(thisSum); + materialDepotStock.setUnitPrice(unitPrice); + if(materialDepotStock.getCurrentNumber()!=null && materialDepotStock.getUnitPrice()!=null ) { + materialDepotStock.setAllPrice(materialDepotStock.getCurrentNumber().multiply(materialDepotStock.getUnitPrice())); + } + if(thisSum.compareTo(BigDecimal.ZERO)!=0) { + list.add(materialDepotStock); + } + } + objectMap.put("rows", list); + objectMap.put("total", list.size()); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + private List parseListByDepotIds(@RequestParam("depotIds") String depotIds) throws Exception { + List depotList = new ArrayList<>(); + if(StringUtil.isNotEmpty(depotIds)) { + depotList = StringUtil.strToLongList(depotIds); + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotList.add(object.getLong("id")); + } + //如果有权限的仓库数量太多则提示要选择仓库 + if(depotList.size()>20) { + throw new BusinessRunTimeException(ExceptionConstants.REPORT_TWO_MANY_DEPOT_FAILED_CODE, + ExceptionConstants.REPORT_TWO_MANY_DEPOT_FAILED_MSG); + } + } + return depotList; + } + + /** + * 采购统计 + * @param currentPage + * @param pageSize + * @param beginTime + * @param endTime + * @param materialParam + * @param mpList + * @param request + * @return + */ + @GetMapping(value = "/buyIn") + @ApiOperation(value = "采购统计") + public BaseResponseInfo buyIn(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + @RequestParam(value = "organId", required = false) Long organId, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "organizationId", required = false) Long organizationId, + @RequestParam("materialParam") String materialParam, + @RequestParam(value = "mpList",required = false) String mpList, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + try { + String [] creatorArray = depotHeadService.getCreatorArray(); + if(creatorArray == null && organizationId != null) { + creatorArray = depotHeadService.getCreatorArrayByOrg(organizationId); + } + String [] organArray = null; + List categoryList = new ArrayList<>(); + if(categoryId != null){ + categoryList = materialService.getListByParentId(categoryId); + } + List depotList = depotService.parseDepotList(depotId); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + List dataList = depotItemService.getListWithBuyOrSale(StringUtil.toNull(materialParam), + "buy", beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag, (currentPage-1)*pageSize, pageSize); + int total = depotItemService.getListWithBuyOrSaleCount(StringUtil.toNull(materialParam), + "buy", beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + map.put("total", total); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (DepotItemVo4WithInfoEx diEx : dataList) { + JSONObject item = new JSONObject(); + BigDecimal InSum = depotItemService.buyOrSale("入库", "采购", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number"); + BigDecimal OutSum = depotItemService.buyOrSale("出库", "采购退货", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number"); + BigDecimal InSumPrice = depotItemService.buyOrSale("入库", "采购", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price"); + BigDecimal OutSumPrice = depotItemService.buyOrSale("出库", "采购退货", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price"); + BigDecimal InOutSumPrice = InSumPrice.subtract(OutSumPrice); + item.put("barCode", diEx.getBarCode()); + item.put("materialName", diEx.getMName()); + item.put("materialModel", diEx.getMModel()); + item.put("materialStandard", diEx.getMStandard()); + //扩展信息 + item.put("otherField1", diEx.getMOtherField1()); + item.put("otherField2", diEx.getMOtherField2()); + item.put("otherField3", diEx.getMOtherField3()); + item.put("materialColor", diEx.getMColor()); + item.put("materialBrand", diEx.getBrand()); + item.put("materialMfrs", diEx.getMMfrs()); + item.put("materialUnit", diEx.getMaterialUnit()); + item.put("unitName", diEx.getUnitName()); + item.put("inSum", InSum); + item.put("outSum", OutSum); + item.put("inSumPrice", InSumPrice); + item.put("outSumPrice", OutSumPrice); + item.put("inOutSumPrice",InOutSumPrice);//实际采购金额 + dataArray.add(item); + } + } + BigDecimal inSumPriceTotal = depotItemService.buyOrSalePriceTotal("入库", "采购", StringUtil.toNull(materialParam), + beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + BigDecimal outSumPriceTotal = depotItemService.buyOrSalePriceTotal("出库", "采购退货", StringUtil.toNull(materialParam), + beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + BigDecimal realityPriceTotal = inSumPriceTotal.subtract(outSumPriceTotal); + map.put("rows", dataArray); + map.put("realityPriceTotal", realityPriceTotal); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 零售统计 + * @param currentPage + * @param pageSize + * @param beginTime + * @param endTime + * @param materialParam + * @param mpList + * @param request + * @return + */ + @GetMapping(value = "/retailOut") + @ApiOperation(value = "零售统计") + public BaseResponseInfo retailOut(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + @RequestParam(value = "organId", required = false) Long organId, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "organizationId", required = false) Long organizationId, + @RequestParam("materialParam") String materialParam, + @RequestParam(value = "mpList", required = false) String mpList, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + try { + String [] creatorArray = depotHeadService.getCreatorArray(); + if(creatorArray == null && organizationId != null) { + creatorArray = depotHeadService.getCreatorArrayByOrg(organizationId); + } + String [] organArray = null; + List categoryList = new ArrayList<>(); + if(categoryId != null){ + categoryList = materialService.getListByParentId(categoryId); + } + List depotList = depotService.parseDepotList(depotId); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + List dataList = depotItemService.getListWithBuyOrSale(StringUtil.toNull(materialParam), + "retail", beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag, (currentPage-1)*pageSize, pageSize); + int total = depotItemService.getListWithBuyOrSaleCount(StringUtil.toNull(materialParam), + "retail", beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + map.put("total", total); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (DepotItemVo4WithInfoEx diEx : dataList) { + JSONObject item = new JSONObject(); + BigDecimal OutSumRetail = depotItemService.buyOrSale("出库", "零售", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number"); + BigDecimal InSumRetail = depotItemService.buyOrSale("入库", "零售退货", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number"); + BigDecimal OutSumRetailPrice = depotItemService.buyOrSale("出库", "零售", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price"); + BigDecimal InSumRetailPrice = depotItemService.buyOrSale("入库", "零售退货", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price"); + BigDecimal OutInSumPrice = OutSumRetailPrice.subtract(InSumRetailPrice); + item.put("barCode", diEx.getBarCode()); + item.put("materialName", diEx.getMName()); + item.put("materialModel", diEx.getMModel()); + item.put("materialStandard", diEx.getMStandard()); + //扩展信息 + item.put("otherField1", diEx.getMOtherField1()); + item.put("otherField2", diEx.getMOtherField2()); + item.put("otherField3", diEx.getMOtherField3()); + item.put("materialColor", diEx.getMColor()); + item.put("materialBrand", diEx.getBrand()); + item.put("materialMfrs", diEx.getMMfrs()); + item.put("materialUnit", diEx.getMaterialUnit()); + item.put("unitName", diEx.getUnitName()); + item.put("outSum", OutSumRetail); + item.put("inSum", InSumRetail); + item.put("outSumPrice", OutSumRetailPrice); + item.put("inSumPrice", InSumRetailPrice); + item.put("outInSumPrice",OutInSumPrice);//实际销售金额 + dataArray.add(item); + } + } + BigDecimal outSumPriceTotal = depotItemService.buyOrSalePriceTotal("出库", "零售", StringUtil.toNull(materialParam), + beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + BigDecimal inSumPriceTotal = depotItemService.buyOrSalePriceTotal("入库", "零售退货", StringUtil.toNull(materialParam), + beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + BigDecimal realityPriceTotal = outSumPriceTotal.subtract(inSumPriceTotal); + map.put("rows", dataArray); + map.put("realityPriceTotal", realityPriceTotal); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + + /** + * 销售统计 + * @param currentPage + * @param pageSize + * @param beginTime + * @param endTime + * @param materialParam + * @param mpList + * @param request + * @return + */ + @GetMapping(value = "/saleOut") + @ApiOperation(value = "销售统计") + public BaseResponseInfo saleOut(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("beginTime") String beginTime, + @RequestParam("endTime") String endTime, + @RequestParam(value = "organId", required = false) Long organId, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "organizationId", required = false) Long organizationId, + @RequestParam("materialParam") String materialParam, + @RequestParam(value = "mpList", required = false) String mpList, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + try { + String [] creatorArray = depotHeadService.getCreatorArray(); + if(creatorArray == null && organizationId != null) { + creatorArray = depotHeadService.getCreatorArrayByOrg(organizationId); + } + String [] organArray = depotHeadService.getOrganArray("销售", ""); + List categoryList = new ArrayList<>(); + if(categoryId != null){ + categoryList = materialService.getListByParentId(categoryId); + } + List depotList = depotService.parseDepotList(depotId); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + List dataList = depotItemService.getListWithBuyOrSale(StringUtil.toNull(materialParam), + "sale", beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag, (currentPage-1)*pageSize, pageSize); + int total = depotItemService.getListWithBuyOrSaleCount(StringUtil.toNull(materialParam), + "sale", beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + map.put("total", total); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (DepotItemVo4WithInfoEx diEx : dataList) { + JSONObject item = new JSONObject(); + BigDecimal OutSum = depotItemService.buyOrSale("出库", "销售", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number"); + BigDecimal InSum = depotItemService.buyOrSale("入库", "销售退货", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number"); + BigDecimal OutSumPrice = depotItemService.buyOrSale("出库", "销售", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price"); + BigDecimal InSumPrice = depotItemService.buyOrSale("入库", "销售退货", diEx.getMaterialExtendId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price"); + BigDecimal OutInSumPrice = OutSumPrice.subtract(InSumPrice); + item.put("barCode", diEx.getBarCode()); + item.put("materialName", diEx.getMName()); + item.put("materialModel", diEx.getMModel()); + item.put("materialStandard", diEx.getMStandard()); + //扩展信息 + item.put("otherField1", diEx.getMOtherField1()); + item.put("otherField2", diEx.getMOtherField2()); + item.put("otherField3", diEx.getMOtherField3()); + item.put("materialColor", diEx.getMColor()); + item.put("materialBrand", diEx.getBrand()); + item.put("materialMfrs", diEx.getMMfrs()); + item.put("materialUnit", diEx.getMaterialUnit()); + item.put("unitName", diEx.getUnitName()); + item.put("outSum", OutSum); + item.put("inSum", InSum); + item.put("outSumPrice", OutSumPrice); + item.put("inSumPrice", InSumPrice); + item.put("outInSumPrice",OutInSumPrice);//实际销售金额 + dataArray.add(item); + } + } + BigDecimal outSumPriceTotal = depotItemService.buyOrSalePriceTotal("出库", "销售", StringUtil.toNull(materialParam), + beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + BigDecimal inSumPriceTotal = depotItemService.buyOrSalePriceTotal("入库", "销售退货", StringUtil.toNull(materialParam), + beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + BigDecimal realityPriceTotal = outSumPriceTotal.subtract(inSumPriceTotal); + map.put("rows", dataArray); + map.put("realityPriceTotal", realityPriceTotal); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 获取单位 + * @param materialUnit + * @param uName + * @return + */ + public String getUName(String materialUnit, String uName) { + String unitName = null; + if(StringUtil.isNotEmpty(materialUnit)) { + unitName = materialUnit; + } else if(StringUtil.isNotEmpty(uName)) { + unitName = uName; + } + return unitName; + } + + /** + * 库存预警报表 + * @param currentPage + * @param pageSize + * @return + */ + @GetMapping(value = "/findStockWarningCount") + @ApiOperation(value = "库存预警报表") + public BaseResponseInfo findStockWarningCount(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam("materialParam") String materialParam, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "mpList", required = false) String mpList)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List depotList = new ArrayList<>(); + if(depotId != null) { + depotList.add(depotId); + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotList.add(object.getLong("id")); + } + } + List categoryList = new ArrayList<>(); + if(categoryId != null){ + categoryList = materialService.getListByParentId(categoryId); + } + String[] mpArr = mpList.split(","); + List list = depotItemService.findStockWarningCount((currentPage-1)*pageSize, pageSize, materialParam, depotList, categoryList); + //存放数据json数组 + if (null != list) { + for (DepotItemStockWarningCount disw : list) { + DepotItemVo4WithInfoEx diEx = new DepotItemVo4WithInfoEx(); + diEx.setMOtherField1(disw.getMOtherField1()); + diEx.setMOtherField2(disw.getMOtherField2()); + diEx.setMOtherField3(disw.getMOtherField3()); + disw.setMaterialUnit(getUName(disw.getMaterialUnit(), disw.getUnitName())); + if(null!=disw.getLowSafeStock() && disw.getCurrentNumber().compareTo(disw.getLowSafeStock())<0) { + disw.setLowCritical(disw.getLowSafeStock().subtract(disw.getCurrentNumber())); + } + if(null!=disw.getHighSafeStock() && disw.getCurrentNumber().compareTo(disw.getHighSafeStock())>0) { + disw.setHighCritical(disw.getCurrentNumber().subtract(disw.getHighSafeStock())); + } + } + } + int total = depotItemService.findStockWarningCountTotal(materialParam, depotList, categoryList); + map.put("total", total); + map.put("rows", list); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 统计采购、销售、零售的总金额 + * @param request + * @param response + * @return + * @throws Exception + */ + @GetMapping(value = "/buyOrSalePrice") + @ApiOperation(value = "统计采购、销售、零售的总金额") + public BaseResponseInfo buyOrSalePrice(HttpServletRequest request, + HttpServletResponse response)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map map = new HashMap<>(); + Long userId = userService.getUserId(request); + List monthList = Tools.getLastMonths(6); + String beginTime = Tools.firstDayOfMonth(monthList.get(0)) + BusinessConstants.DAY_FIRST_TIME; + String endTime = Tools.getNow() + BusinessConstants.DAY_LAST_TIME; + List inOrOutPriceList = depotItemService.inOrOutPriceList(beginTime, endTime); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + JSONArray buyPriceList = new JSONArray(); + for (String month : monthList) { + JSONObject obj = new JSONObject(); + BigDecimal outPrice = BigDecimal.ZERO; + BigDecimal inPrice = BigDecimal.ZERO; + for (InOutPriceVo item : inOrOutPriceList) { + String billOperMonth = Tools.dateToStr(item.getOperTime(), "yyyy-MM"); + if (month.equals(billOperMonth)) { + if ("入库".equals(item.getType()) && "采购".equals(item.getSubType())) { + outPrice = outPrice.add(nullToZero(item.getDiscountLastMoney())); + } + if ("出库".equals(item.getType()) && "采购退货".equals(item.getSubType())) { + inPrice = inPrice.add(nullToZero(item.getDiscountLastMoney())); + } + } + } + obj.put("x", month); + obj.put("y", roleService.parseHomePriceByLimit(outPrice.subtract(inPrice), "buy", priceLimit, "***", request)); + buyPriceList.add(obj); + } + map.put("buyPriceList", buyPriceList); + JSONArray salePriceList = new JSONArray(); + for (String month : monthList) { + JSONObject obj = new JSONObject(); + BigDecimal outPrice = BigDecimal.ZERO; + BigDecimal inPrice = BigDecimal.ZERO; + for (InOutPriceVo item : inOrOutPriceList) { + String billOperMonth = Tools.dateToStr(item.getOperTime(), "yyyy-MM"); + if (month.equals(billOperMonth)) { + if ("出库".equals(item.getType()) && "销售".equals(item.getSubType())) { + outPrice = outPrice.add(nullToZero(item.getDiscountLastMoney())); + } + if ("入库".equals(item.getType()) && "销售退货".equals(item.getSubType())) { + inPrice = inPrice.add(nullToZero(item.getDiscountLastMoney())); + } + } + } + obj.put("x", month); + obj.put("y", roleService.parseHomePriceByLimit(outPrice.subtract(inPrice), "sale", priceLimit, "***", request)); + salePriceList.add(obj); + } + map.put("salePriceList", salePriceList); + JSONArray retailPriceList = new JSONArray(); + for (String month : monthList) { + JSONObject obj = new JSONObject(); + BigDecimal outPrice = BigDecimal.ZERO; + BigDecimal inPrice = BigDecimal.ZERO; + for (InOutPriceVo item : inOrOutPriceList) { + String billOperMonth = Tools.dateToStr(item.getOperTime(), "yyyy-MM"); + if (month.equals(billOperMonth)) { + if ("出库".equals(item.getType()) && "零售".equals(item.getSubType())) { + outPrice = outPrice.add(nullToZero(item.getTotalPrice()).abs()); + } + if ("入库".equals(item.getType()) && "零售退货".equals(item.getSubType())) { + inPrice = inPrice.add(nullToZero(item.getTotalPrice()).abs()); + } + } + } + obj.put("x", month); + obj.put("y", roleService.parseHomePriceByLimit(outPrice.subtract(inPrice), "retail", priceLimit, "***", request)); + retailPriceList.add(obj); + } + map.put("retailPriceList", retailPriceList); + res.code = 200; + res.data = map; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "统计失败"; + } + return res; + } + + /** + * 获取批次商品列表信息 + * @param request + * @return + */ + @GetMapping(value = "/getBatchNumberList") + @ApiOperation(value = "获取批次商品列表信息") + public BaseResponseInfo getBatchNumberList(@RequestParam("name") String name, + @RequestParam("depotItemId") Long depotItemId, + @RequestParam("depotId") Long depotId, + @RequestParam("barCode") String barCode, + @RequestParam(value = "batchNumber", required = false) String batchNumber, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + String number = ""; + if(depotItemId != null) { + DepotItem depotItem = depotItemService.getDepotItem(depotItemId); + number = depotHeadService.getDepotHead(depotItem.getHeaderId()).getNumber(); + } + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + List list = depotItemService.getBatchNumberList(number, name, depotId, barCode, + batchNumber, forceFlag, inOutManageFlag); + map.put("rows", list); + map.put("total", list.size()); + res.code = 200; + res.data = map; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * Excel导入明细 + * @param file + * @param request + * @param response + * @return + */ + @PostMapping(value = "/importItemExcel") + public BaseResponseInfo importItemExcel(MultipartFile file, + @RequestParam(required = false, value = "prefixNo") String prefixNo, + HttpServletRequest request, HttpServletResponse response) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + Map data = new HashMap<>(); + String message = ""; + try { + List barCodeList = new ArrayList<>(); + //文件扩展名只能为xls + String fileName = file.getOriginalFilename(); + if(StringUtil.isNotEmpty(fileName)) { + String fileExt = fileName.substring(fileName.indexOf(".")+1); + if(!"xls".equals(fileExt)) { + throw new BusinessRunTimeException(ExceptionConstants.FILE_EXTENSION_ERROR_CODE, + ExceptionConstants.FILE_EXTENSION_ERROR_MSG); + } + } + Workbook workbook = Workbook.getWorkbook(file.getInputStream()); + Sheet src = workbook.getSheet(0); + if(src.getRows()>1000) { + message = "导入失败,明细不能超出1000条"; + res.code = 500; + data.put("message", message); + res.data = data; + } else { + List> detailList = new ArrayList<>(); + for (int i = 2; i < src.getRows(); i++) { + String depotName = "", barCode = "", num = "", unitPrice = "", taxRate = "", remark = ""; + if("QGD".equals(prefixNo)) { + barCode = ExcelUtils.getContent(src, i, 0); + num = ExcelUtils.getContent(src, i, 2); + remark = ExcelUtils.getContent(src, i, 3); + } + if("CGDD".equals(prefixNo) || "XSDD".equals(prefixNo)) { + barCode = ExcelUtils.getContent(src, i, 0); + num = ExcelUtils.getContent(src, i, 2); + unitPrice = ExcelUtils.getContentNumber(src, i, 3); + taxRate = ExcelUtils.getContent(src, i, 4); + remark = ExcelUtils.getContent(src, i, 5); + } + if("CGRK".equals(prefixNo) || "XSCK".equals(prefixNo)) { + depotName = ExcelUtils.getContent(src, i, 0); + barCode = ExcelUtils.getContent(src, i, 1); + num = ExcelUtils.getContent(src, i, 3); + unitPrice = ExcelUtils.getContentNumber(src, i, 4); + taxRate = ExcelUtils.getContent(src, i, 5); + remark = ExcelUtils.getContent(src, i, 6); + } + if("QTRK".equals(prefixNo) || "QTCK".equals(prefixNo)) { + depotName = ExcelUtils.getContent(src, i, 0); + barCode = ExcelUtils.getContent(src, i, 1); + num = ExcelUtils.getContent(src, i, 3); + unitPrice = ExcelUtils.getContentNumber(src, i, 4); + remark = ExcelUtils.getContent(src, i, 5); + } + Map materialMap = new HashMap<>(); + materialMap.put("depotName", depotName); + materialMap.put("barCode", barCode); + materialMap.put("num", num); + materialMap.put("unitPrice", unitPrice); + materialMap.put("taxRate", taxRate); + materialMap.put("remark", remark); + detailList.add(materialMap); + barCodeList.add(barCode); + } + JSONObject map = depotItemService.parseMapByExcelData(barCodeList, detailList, prefixNo); + if (map != null) { + res.code = 200; + } else { + res.code = 500; + } + res.data = map; + } + } catch (BusinessRunTimeException e) { + res.code = 500; + data.put("message", e.getData().get("message")); + res.data = data; + } catch (Exception e) { + logger.error(e.getMessage(), e); + message = "导入失败,请检查表格内容"; + res.code = 500; + data.put("message", message); + res.data = data; + } + return res; + } + + private BigDecimal nullToZero(BigDecimal value) { + return value == null ? BigDecimal.ZERO : value; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/DeviceInventoryCompatibilityController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/DeviceInventoryCompatibilityController.java new file mode 100644 index 0000000..10c8c14 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/DeviceInventoryCompatibilityController.java @@ -0,0 +1,37 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.datasource.entities.AssetInventory; +import com.reallin.smt.service.AssetManagementService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; + +/** + * 兼容原设备管理项目的设备盘点回传路径。 + */ +@RestController +@RequestMapping("/deviceInventory") +@Api(tags = "设备盘点外部兼容接口") +public class DeviceInventoryCompatibilityController { + @Resource + private AssetManagementService service; + + @PostMapping("/doDevicePlan") + @ApiOperation("兼容原接口:外部服务回传单台设备已盘点") + public String doDevicePlan(@RequestBody JSONObject json) throws Exception { + AssetInventory inventory = service.recordInventoryFromCollaboration(json); + Map data = new HashMap<>(); + data.put("inventory", inventory); + return returnJson(data, "盘点成功", 200); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/FunctionController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/FunctionController.java new file mode 100644 index 0000000..4ace47c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/FunctionController.java @@ -0,0 +1,361 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.service.FunctionService; +import com.reallin.smt.service.SystemConfigService; +import com.reallin.smt.service.UserBusinessService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.dao.DataAccessException; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji-sheng-hua jshERP + */ +@RestController +@RequestMapping(value = "/function") +@Api(tags = {"功能管理"}) +public class FunctionController extends BaseController { + private Logger logger = LoggerFactory.getLogger(FunctionController.class); + + @Resource + private FunctionService functionService; + + @Resource + private UserService userService; + + @Resource + private UserBusinessService userBusinessService; + + @Resource + private SystemConfigService systemConfigService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Function function = functionService.getFunction(id); + Map objectMap = new HashMap<>(); + if(function != null) { + objectMap.put("info", function); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + String nameEn = StringUtil.getInfo(search, "nameEn"); + String type = StringUtil.getInfo(search, "type"); + List list = functionService.select(name, nameEn, type); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = functionService.insertFunction(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = functionService.updateFunction(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = functionService.deleteFunction(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = functionService.batchDeleteFunction(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = functionService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + @GetMapping(value = "/checkIsNumberExist") + @ApiOperation(value = "检查编号是否存在") + public String checkIsNumberExist(@RequestParam Long id, + @RequestParam(value ="number", required = false) String number, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap(); + int exist = functionService.checkIsNumberExist(id, number); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 根据父编号查询菜单 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/findMenuByPNumber") + @ApiOperation(value = "根据父编号查询菜单") + public JSONArray findMenuByPNumber(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + String pNumber = jsonObject.getString("pNumber"); + String userId = jsonObject.getString("userId"); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + try { + Long roleId = 0L; + String fc = ""; + List roleList = userBusinessService.getBasicData(userId, "UserRole"); + if(roleList!=null && roleList.size()>0){ + String value = roleList.get(0).getValue(); + if(StringUtil.isNotEmpty(value)){ + String roleIdStr = value.replace("[", "").replace("]", ""); + roleId = Long.parseLong(roleIdStr); + } + } + //当前用户所拥有的功能列表,格式如:[1][2][5] + List funList = userBusinessService.getBasicData(roleId.toString(), "RoleFunctions"); + if(funList!=null && funList.size()>0){ + fc = funList.get(0).getValue(); + } + //获取系统配置信息-是否开启多级审核 + String approvalFlag = "0"; + List list = systemConfigService.getSystemConfig(); + if(list.size()>0) { + approvalFlag = list.get(0).getMultiLevelApprovalFlag(); + } + + List dataList = functionService.getRoleFunction(pNumber); + if (dataList.size() != 0) { + User userInfo = userService.getCurrentUser(); + Map funIdMap = null; + dataArray = getMenuByFunction(dataList, fc, approvalFlag, funIdMap, userInfo); + //增加首页菜单项 + JSONObject homeItem = new JSONObject(); + homeItem.put("id", 0); + homeItem.put("text", "首页"); + homeItem.put("textEn", "Home"); + homeItem.put("icon", "home"); + homeItem.put("url", "/dashboard/analysis"); + homeItem.put("component", "/layouts/TabLayout"); + dataArray.add(0,homeItem); + } + } catch (DataAccessException e) { + logger.error(">>>>>>>>>>>>>>>>>>>查找异常", e); + } + return dataArray; + } + + public JSONArray getMenuByFunction(List dataList, String fc, String approvalFlag, Map funIdMap, User userInfo) throws Exception { + JSONArray dataArray = new JSONArray(); + for (Function function : dataList) { + // 取消租户概念后,移除租户权限校验 + // if("admin".equals(userInfo.getLoginName()) || userInfo.getId().equals(userInfo.getTenantId()) || funIdMap.get(function.getId())!=null) { + //如果关闭多级审核,遇到任务审核菜单直接跳过 + if("0".equals(approvalFlag) && "/workflow".equals(function.getUrl())) { + continue; + } + JSONObject item = new JSONObject(); + List newList = functionService.getRoleFunction(function.getNumber()); + item.put("id", function.getId()); + item.put("text", function.getName()); + item.put("textEn", function.getNameEn()); + item.put("icon", function.getIcon()); + item.put("url", function.getUrl()); + item.put("component", function.getComponent()); + if (newList.size()>0) { + JSONArray childrenArr = getMenuByFunction(newList, fc, approvalFlag, funIdMap, userInfo); + if(childrenArr.size()>0) { + item.put("children", childrenArr); + dataArray.add(item); + } + } else { + if (fc.indexOf("[" + function.getId().toString() + "]") != -1) { + dataArray.add(item); + } + } + // } + } + return dataArray; + } + + /** + * 角色对应功能显示 + * @param request + * @return + */ + @GetMapping(value = "/findRoleFunction") + @ApiOperation(value = "角色对应功能显示") + public JSONArray findRoleFunction(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, + HttpServletRequest request)throws Exception { + JSONArray arr = new JSONArray(); + try { + User userInfo = userService.getCurrentUser(); + //拥有“权限管理”按钮权限的用户可分配全部菜单;其他用户只能分配自身已有菜单 + List funIdList = userService.hasPermissionManagement() + ? null : functionService.getCurrentUserFunIdList(); + List dataListFun = functionService.findRoleFunction("0", null); + //开始拼接json数据 + JSONObject outer = new JSONObject(); + outer.put("id", 0); + outer.put("key", 0); + outer.put("value", 0); + outer.put("title", "功能列表"); + outer.put("attributes", "功能列表"); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataListFun) { + // 取消租户概念后,不再过滤系统管理菜单 + // 根据条件从列表里面移除"系统管理" + List dataList = new ArrayList<>(); + for (Function fun : dataListFun) { + dataList.add(fun); + } + dataArray = getFunctionList(dataList, type, keyId, funIdList); + outer.put("children", dataArray); + } + arr.add(outer); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return arr; + } + + public JSONArray getFunctionList(List dataList, String type, String keyId, List funIdList) throws Exception { + JSONArray dataArray = new JSONArray(); + //获取权限信息 + String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId); + if (null != dataList) { + for (Function function : dataList) { + JSONObject item = new JSONObject(); + item.put("id", function.getId()); + item.put("key", function.getId()); + item.put("value", function.getId()); + item.put("title", function.getName()); + item.put("titleEn", function.getNameEn()); + item.put("attributes", function.getName()); + List funList = functionService.findRoleFunction(function.getNumber(), funIdList); + if(funList.size()>0) { + JSONArray funArr = getFunctionList(funList, type, keyId, funIdList); + item.put("children", funArr); + dataArray.add(item); + } else { + Boolean flag = ubValue.contains("[" + function.getId().toString() + "]"); + item.put("checked", flag); + dataArray.add(item); + } + } + } + return dataArray; + } + + /** + * 根据id列表查找功能信息 + * @param roleId + * @param request + * @return + */ + @GetMapping(value = "/findRoleFunctionsById") + @ApiOperation(value = "根据id列表查找功能信息") + public BaseResponseInfo findByIds(@RequestParam("roleId") Long roleId, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + List list = userBusinessService.getBasicData(roleId.toString(), "RoleFunctions"); + if(null!=list && list.size()>0) { + //按钮 + Map btnMap = new HashMap<>(); + String btnStr = list.get(0).getBtnStr(); + if(StringUtil.isNotEmpty(btnStr)) { + JSONArray btnArr = JSONArray.parseArray(btnStr); + for(Object obj: btnArr) { + JSONObject btnObj = JSONObject.parseObject(obj.toString()); + if(btnObj.get("funId")!=null && btnObj.get("btnStr")!=null) { + btnMap.put(btnObj.getLong("funId"), btnObj.getString("btnStr")); + } + } + } + //菜单 + String funIds = list.get(0).getValue(); + funIds = funIds.substring(1, funIds.length() - 1); + funIds = funIds.replace("][",","); + List dataList = functionService.findByIds(funIds); + JSONObject outer = new JSONObject(); + User userInfo = userService.getCurrentUser(); + // 取消租户概念后,移除权限校验 + // Map funIdMap = functionService.getCurrentUserFunIdMap(); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (Function function : dataList) { + // 取消租户概念后,不再校验租户权限 + // if("admin".equals(userInfo.getLoginName()) || funIdMap.get(function.getId())!=null) { + JSONObject item = new JSONObject(); + item.put("id", function.getId()); + item.put("name", function.getName()); + item.put("pushBtn", function.getPushBtn()); + item.put("btnStr", btnMap.get(function.getId())); + dataArray.add(item); + // } + } + } + outer.put("rows", dataArray); + outer.put("total", dataArray.size()); + res.code = 200; + res.data = outer; + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/HeadquartersInboundController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/HeadquartersInboundController.java new file mode 100644 index 0000000..bb65dd7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/HeadquartersInboundController.java @@ -0,0 +1,76 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.datasource.entities.DepotHeadVo4Body; +import com.reallin.smt.service.DepotHeadService; +import com.reallin.smt.service.SmtInboundService; +import com.reallin.smt.utils.BaseResponseInfo; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +@RestController +@RequestMapping("/headquartersInbound") +public class HeadquartersInboundController { + @Resource private SmtInboundService inboundService; + @Resource private DepotHeadService depotHeadService; + + @GetMapping("/nextNumber") + public BaseResponseInfo nextNumber(@RequestParam(required = false) String businessDate) { + return ok(Collections.singletonMap("number", inboundService.nextNumber(businessDate))); + } + + @RequestMapping(value = "/save", method = {RequestMethod.POST, RequestMethod.PUT}) + public BaseResponseInfo save(@RequestBody DepotHeadVo4Body body, HttpServletRequest request) { + Long id = inboundService.save(JSONObject.parseObject(body.getInfo()), JSONArray.parseArray(body.getRows()), inboundService.creatorId(request)); + return ok(Collections.singletonMap("id", id)); + } + + @GetMapping("/details") + public BaseResponseInfo details(@RequestParam Long headerId) { + List> rows = inboundService.details(headerId); + Map data = new HashMap<>(); + data.put("rows", rows); data.put("total", rows.size()); + return ok(data); + } + + @PostMapping("/importExcel") + public BaseResponseInfo importExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws Exception { + return ok(inboundService.importExcel(file, inboundService.creatorId(request))); + } + + @GetMapping("/template") + public void template(HttpServletResponse response) throws Exception { inboundService.exportTemplate(response); } + + @PostMapping("/sync") + public BaseResponseInfo sync(@RequestBody List payload, HttpServletRequest request) { + return ok(inboundService.sync(payload, inboundService.creatorId(request))); + } + + @PostMapping("/createMaterial") + public BaseResponseInfo createMaterial(@RequestBody JSONObject item) { + return ok(inboundService.createMaterialIfMissing(item)); + } + + @PostMapping("/batchSetStatus") + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public BaseResponseInfo batchSetStatus(@RequestBody JSONObject body) throws Exception { + String status = body.getString("status"); + String ids = body.getString("ids"); + if ("1".equals(status)) { + for (String id : ids.split(",")) if (!id.trim().isEmpty()) inboundService.prepareForApproval(Long.valueOf(id.trim())); + } + depotHeadService.batchSetStatus(status, ids); + return ok(null); + } + + private BaseResponseInfo ok(Object data) { + BaseResponseInfo response = new BaseResponseInfo(); response.code = 200; response.data = data; return response; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/InOutItemController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/InOutItemController.java new file mode 100644 index 0000000..2aa1faf --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/InOutItemController.java @@ -0,0 +1,161 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.InOutItem; +import com.reallin.smt.service.InOutItemService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author jishenghua jshERP 2018年12月25日14:38:08 + */ +@RestController +@RequestMapping(value = "/inOutItem") +@Api(tags = {"收支项目"}) +public class InOutItemController extends BaseController { + private Logger logger = LoggerFactory.getLogger(InOutItemController.class); + + @Resource + private InOutItemService inOutItemService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + InOutItem inOutItem = inOutItemService.getInOutItem(id); + Map objectMap = new HashMap<>(); + if(inOutItem != null) { + objectMap.put("info", inOutItem); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + String type = StringUtil.getInfo(search, "type"); + String remark = StringUtil.getInfo(search, "remark"); + List list = inOutItemService.select(name, type, remark); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = inOutItemService.insertInOutItem(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = inOutItemService.updateInOutItem(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = inOutItemService.deleteInOutItem(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = inOutItemService.batchDeleteInOutItem(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在-后续废弃") + public String checkIsNameExist(@RequestParam Long id, + @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = inOutItemService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 查找收支项目信息-下拉框 + * @param request + * @return + */ + @GetMapping(value = "/findBySelect") + @ApiOperation(value = "查找收支项目信息") + public String findBySelect(@RequestParam("type") String type, HttpServletRequest request) throws Exception{ + String res = null; + try { + List dataList = inOutItemService.findBySelect(type); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (InOutItem inOutItem : dataList) { + JSONObject item = new JSONObject(); + item.put("id", inOutItem.getId()); + //收支项目名称 + item.put("name", inOutItem.getName()); + dataArray.add(item); + } + } + res = dataArray.toJSONString(); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res = "获取数据失败"; + } + return res; + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = inOutItemService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/LegacyInventoryController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/LegacyInventoryController.java new file mode 100644 index 0000000..b31909c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/LegacyInventoryController.java @@ -0,0 +1,90 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.exception.LegacyInventoryBusinessException; +import com.reallin.smt.service.LegacyInventoryService; +import com.reallin.smt.utils.LegacyInventoryResponse; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; + +/** + * 兼容原 n2tpm 设备盘点客户端的大写字段接口。 + */ +@RestController +@RequestMapping({"/n2tpm/webmvc/Inventory", "/webmvc/Inventory"}) +public class LegacyInventoryController { + private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(LegacyInventoryController.class); + @Resource + private LegacyInventoryService legacyInventoryService; + + @PostMapping("/Login") + public LegacyInventoryResponse login(@RequestBody JSONObject input) { + return execute(() -> legacyInventoryService.login(input)); + } + + @PostMapping("/GetInventory") + public LegacyInventoryResponse getInventory(@RequestBody JSONObject input) { + return execute(() -> legacyInventoryService.getInventory(input)); + } + + @PostMapping("/GetInventoryDetail") + public LegacyInventoryResponse getInventoryDetail(@RequestBody JSONObject input) { + return execute(() -> legacyInventoryService.getInventoryDetail(input)); + } + + @PostMapping("/SaveDeviceInventoryInfo") + public LegacyInventoryResponse saveDeviceInventoryInfo(@RequestBody JSONObject input) { + return execute(() -> legacyInventoryService.saveDeviceInventoryInfo(input)); + } + + @PostMapping("/AccepteOrHandoverDocForInventory") + public LegacyInventoryResponse acceptInventory(@RequestBody JSONObject input) { + return execute(() -> legacyInventoryService.acceptInventory(input)); + } + + @PostMapping("/UploadPicture") + public LegacyInventoryResponse uploadPicture(HttpServletRequest request) { + return execute(() -> { + if (!(request instanceof MultipartHttpServletRequest)) { + throw new LegacyInventoryBusinessException("请求必须为 multipart/form-data"); + } + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + List files = new ArrayList<>(); + multipartRequest.getMultiFileMap().values().forEach(files::addAll); + return legacyInventoryService.uploadPicture( + request.getParameter("USER_ID"), request.getParameter("DATA_AUTH"), + request.getParameter("INVENTORY_DOC"), request.getParameter("DEVICE_SN"), + files, request); + }); + } + + @PostMapping({"/GetDevice", "/GetDevic"}) + public LegacyInventoryResponse getDevice(@RequestBody(required = false) JSONObject input) { + return execute(() -> legacyInventoryService.getDevice(input)); + } + + private LegacyInventoryResponse execute(Action action) { + try { + return LegacyInventoryResponse.success(action.run()); + } catch (LegacyInventoryBusinessException e) { + return LegacyInventoryResponse.fail(e.getMessage()); + } catch (Exception e) { + logger.error("盘点接口处理失败", e); + return LegacyInventoryResponse.fail("处理失败,请联系管理员"); + } + } + + @FunctionalInterface + private interface Action { + Object run() throws Exception; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/LogController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/LogController.java new file mode 100644 index 0000000..824e7c8 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/LogController.java @@ -0,0 +1,101 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Log; +import com.reallin.smt.datasource.vo.LogVo4List; +import com.reallin.smt.service.LogService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji sheng hua 752*718*920 + */ +@RestController +@RequestMapping(value = "/log") +@Api(tags = {"日志管理"}) +public class LogController extends BaseController { + private Logger logger = LoggerFactory.getLogger(LogController.class); + + @Resource + private LogService logService; + + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Log log = logService.getLog(id); + Map objectMap = new HashMap<>(); + if(log != null) { + objectMap.put("info", log); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String operation = StringUtil.getInfo(search, "operation"); + String userInfo = StringUtil.getInfo(search, "userInfo"); + String clientIp = StringUtil.getInfo(search, "clientIp"); + String tenantLoginName = StringUtil.getInfo(search, "tenantLoginName"); + String tenantType = StringUtil.getInfo(search, "tenantType"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + String content = StringUtil.getInfo(search, "content"); + List list = logService.select(operation, userInfo, clientIp, tenantLoginName, tenantType, beginTime, endTime, content); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap(); + int insert = logService.insertLog(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = logService.updateLog(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = logService.deleteLog(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = logService.batchDeleteLog(ids, request); + return returnStr(objectMap, delete); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialAttributeController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialAttributeController.java new file mode 100644 index 0000000..542f2bd --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialAttributeController.java @@ -0,0 +1,151 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.MaterialAttribute; +import com.reallin.smt.service.MaterialAttributeService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji sheng hua jshERP + */ +@RestController +@RequestMapping(value = "/materialAttribute") +@Api(tags = {"商品属性"}) +public class MaterialAttributeController extends BaseController { + private Logger logger = LoggerFactory.getLogger(MaterialAttributeController.class); + + @Resource + private MaterialAttributeService materialAttributeService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + MaterialAttribute materialAttribute = materialAttributeService.getMaterialAttribute(id); + Map objectMap = new HashMap<>(); + if(materialAttribute != null) { + objectMap.put("info", materialAttribute); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String attributeName = StringUtil.getInfo(search, "attributeName"); + String attributeValue = StringUtil.getInfo(search, "attributeValue"); + List list = materialAttributeService.select(attributeName, attributeValue); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = materialAttributeService.insertMaterialAttribute(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = materialAttributeService.updateMaterialAttribute(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialAttributeService.deleteMaterialAttribute(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialAttributeService.batchDeleteMaterialAttribute(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = materialAttributeService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 获取商品属性的名称列表 + * @param request + * @return + */ + @GetMapping(value = "/getNameList") + @ApiOperation(value = "获取商品属性的名称列表") + public JSONArray getNameList(HttpServletRequest request)throws Exception { + JSONArray dataArray = new JSONArray(); + try { + List materialAttributeList = materialAttributeService.getMaterialAttribute(); + if (null != materialAttributeList) { + for (MaterialAttribute materialAttribute : materialAttributeList) { + JSONObject item = new JSONObject(); + item.put("value", materialAttribute.getId().toString()); + item.put("name", materialAttribute.getAttributeName()); + dataArray.add(item); + } + } + } catch(Exception e){ + logger.error(e.getMessage(), e); + } + return dataArray; + } + + /** + * 获取id查询属性的值列表 + * @param request + * @return + */ + @GetMapping(value = "/getValueListById") + @ApiOperation(value = "获取id查询属性的值列表") + public JSONArray getValueListById(@RequestParam("id") Long id, + HttpServletRequest request)throws Exception { + JSONArray dataArray = new JSONArray(); + try { + dataArray = materialAttributeService.getValueArrById(id); + } catch(Exception e){ + logger.error(e.getMessage(), e); + } + return dataArray; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialCategoryController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialCategoryController.java new file mode 100644 index 0000000..e018a4b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialCategoryController.java @@ -0,0 +1,192 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.MaterialCategory; +import com.reallin.smt.datasource.vo.TreeNode; +import com.reallin.smt.service.MaterialCategoryService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji—sheng—hua jshERP + */ +@RestController +@RequestMapping(value = "/materialCategory") +@Api(tags = {"商品类别"}) +public class MaterialCategoryController extends BaseController { + private Logger logger = LoggerFactory.getLogger(MaterialCategoryController.class); + + @Resource + private MaterialCategoryService materialCategoryService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + MaterialCategory materialCategory = materialCategoryService.getMaterialCategory(id); + Map objectMap = new HashMap<>(); + if(materialCategory != null) { + objectMap.put("info", materialCategory); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + Integer parentId = StringUtil.parseInteger(StringUtil.getInfo(search, "parentId")); + List list = materialCategoryService.select(name, parentId); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = materialCategoryService.insertMaterialCategory(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = materialCategoryService.updateMaterialCategory(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialCategoryService.deleteMaterialCategory(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialCategoryService.batchDeleteMaterialCategory(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, + @RequestParam(value ="name", required = false) String name, + @RequestParam(value ="parentId", required = false) Long parentId, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = materialCategoryService.checkIsNameExist(id, name, parentId); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 获取全部商品类别 + * @param parentId + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getAllList") + @ApiOperation(value = "获取全部商品类别") + public BaseResponseInfo getAllList(@RequestParam("parentId") Long parentId, HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + List materialCategoryList = materialCategoryService.getAllList(parentId); + res.code = 200; + res.data = materialCategoryList; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据id来查询商品名称 + * @param id + * @param request + * @return + */ + @GetMapping(value = "/findById") + @ApiOperation(value = "根据id来查询商品名称") + public BaseResponseInfo findById(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + List dataList = materialCategoryService.findById(id); + JSONObject outer = new JSONObject(); + if (null != dataList) { + for (MaterialCategory mc : dataList) { + outer.put("id", mc.getId()); + outer.put("name", mc.getName()); + outer.put("parentId", mc.getParentId()); + List dataParentList = materialCategoryService.findById(mc.getParentId()); + if(dataParentList!=null&&dataParentList.size()>0){ + outer.put("parentName", dataParentList.get(0).getName()); + } + outer.put("sort", mc.getSort()); + outer.put("serialNo", mc.getSerialNo()); + outer.put("remark", mc.getRemark()); + } + } + res.code = 200; + res.data = outer; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + /** + * 获取商品类别树数据 + * @Param: + * @return com.alibaba.fastjson.JSONArray + */ + @RequestMapping(value = "/getMaterialCategoryTree") + @ApiOperation(value = "获取商品类别树数据") + public JSONArray getMaterialCategoryTree(@RequestParam("id") Long id) throws Exception{ + JSONArray arr=new JSONArray(); + List materialCategoryTree = materialCategoryService.getMaterialCategoryTree(id); + if(materialCategoryTree!=null&&materialCategoryTree.size()>0){ + for(TreeNode node:materialCategoryTree){ + String str=JSON.toJSONString(node); + JSONObject obj=JSON.parseObject(str); + arr.add(obj) ; + } + } + return arr; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialController.java new file mode 100644 index 0000000..6d17be4 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialController.java @@ -0,0 +1,904 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.vo.MaterialDepotStock; +import com.reallin.smt.service.*; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji|sheng|hua jshERP + */ +@RestController +@RequestMapping(value = "/material") +@Api(tags = {"商品管理"}) +public class MaterialController extends BaseController { + private Logger logger = LoggerFactory.getLogger(MaterialController.class); + + @Resource + private MaterialService materialService; + + @Resource + private DepotItemService depotItemService; + + @Resource + private SystemConfigService systemConfigService; + + @Resource + private UnitService unitService; + + @Resource + private DepotService depotService; + + @Resource + private RoleService roleService; + + @Resource + private UserService userService; + + @Resource + private SupplierService supplierService; + + @Value(value="${file.uploadType}") + private Long fileUploadType; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Material material = materialService.getMaterial(id); + Map objectMap = new HashMap<>(); + if(material != null) { + objectMap.put("info", material); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String categoryId = StringUtil.getInfo(search, "categoryId"); + String materialParam = StringUtil.getInfo(search, "materialParam"); + String standard = StringUtil.getInfo(search, "standard"); + String model = StringUtil.getInfo(search, "model"); + String color = StringUtil.getInfo(search, "color"); + String brand = StringUtil.getInfo(search, "brand"); + String mfrs = StringUtil.getInfo(search, "mfrs"); + String otherField1 = StringUtil.getInfo(search, "otherField1"); + String otherField2 = StringUtil.getInfo(search, "otherField2"); + String otherField3 = StringUtil.getInfo(search, "otherField3"); + String weight = StringUtil.getInfo(search, "weight"); + String expiryNum = StringUtil.getInfo(search, "expiryNum"); + String enableSerialNumber = StringUtil.getInfo(search, "enableSerialNumber"); + String enableBatchNumber = StringUtil.getInfo(search, "enableBatchNumber"); + String position = StringUtil.getInfo(search, "position"); + String enabled = StringUtil.getInfo(search, "enabled"); + String remark = StringUtil.getInfo(search, "remark"); + String mpList = StringUtil.getInfo(search, "mpList"); + List list = materialService.select(materialParam, standard, model, color, brand, mfrs, otherField1, otherField2, + otherField3, weight, expiryNum, enableSerialNumber, enableBatchNumber, position, enabled, remark, categoryId, mpList); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = materialService.insertMaterial(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = materialService.updateMaterial(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialService.deleteMaterial(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialService.batchDeleteMaterial(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = materialService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 检查商品是否存在 + * @param id + * @param name + * @param model + * @param color + * @param standard + * @param mfrs + * @param otherField1 + * @param otherField2 + * @param otherField3 + * @param unit + * @param unitId + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/checkIsExist") + @ApiOperation(value = "检查商品是否存在") + public String checkIsExist(@RequestParam("id") Long id, @RequestParam("name") String name, + @RequestParam("model") String model, @RequestParam("color") String color, + @RequestParam("standard") String standard, @RequestParam("mfrs") String mfrs, + @RequestParam("otherField1") String otherField1, @RequestParam("otherField2") String otherField2, + @RequestParam("otherField3") String otherField3, @RequestParam("unit") String unit,@RequestParam("unitId") Long unitId, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap(); + int exist = materialService.checkIsExist(id, name, StringUtil.toNull(model), StringUtil.toNull(color), + StringUtil.toNull(standard), StringUtil.toNull(mfrs), StringUtil.toNull(otherField1), + StringUtil.toNull(otherField2), StringUtil.toNull(otherField3), StringUtil.toNull(unit), unitId); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态-启用或者禁用") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = materialService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 根据id来查询商品名称 + * @param id + * @param request + * @return + */ + @GetMapping(value = "/findById") + @ApiOperation(value = "根据id来查询商品名称") + public BaseResponseInfo findById(@RequestParam("id") Long id, HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + List list = materialService.findById(id); + res.code = 200; + res.data = list; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据meId来查询商品名称 + * @param meId + * @param request + * @return + */ + @GetMapping(value = "/findByIdWithBarCode") + @ApiOperation(value = "根据meId来查询商品名称") + public BaseResponseInfo findByIdWithBarCode(@RequestParam("meId") Long meId, + @RequestParam("mpList") String mpList, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + String[] mpArr = mpList.split(","); + MaterialVo4Unit mu = new MaterialVo4Unit(); + List list = materialService.findByIdWithBarCode(meId); + if(list!=null && list.size()>0) { + mu = list.get(0); + mu.setMaterialOther(materialService.getMaterialOtherByParam(mpArr, mu)); + } + res.code = 200; + res.data = mu; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据关键词查找商品信息-条码、名称、规格、型号 + * @param q + * @param request + * @return + */ + @GetMapping(value = "/getMaterialByParam") + @ApiOperation(value = "根据关键词查找商品信息") + public BaseResponseInfo getMaterialByParam(@RequestParam("q") String q, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + JSONArray arr = materialService.getMaterialByParam(q); + res.code = 200; + res.data = arr; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 查找商品信息-下拉框 + * @param mpList + * @param request + * @return + */ + @GetMapping(value = "/findBySelect") + @ApiOperation(value = "查找商品信息") + public JSONObject findBySelect(@RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "q", required = false) String q, + @RequestParam(value = "standardOrModel", required = false) String standardOrModel, + @RequestParam(value = "mpList", required = false) String mpList, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam(value = "color", required = false) String color, + @RequestParam(value = "brand", required = false) String brand, + @RequestParam(value = "mfrs", required = false) String mfrs, + @RequestParam(value = "otherField1", required = false) String otherField1, + @RequestParam(value = "otherField2", required = false) String otherField2, + @RequestParam(value = "otherField3", required = false) String otherField3, + @RequestParam(value = "enableSerialNumber", required = false) String enableSerialNumber, + @RequestParam(value = "enableBatchNumber", required = false) String enableBatchNumber, + @RequestParam("page") Integer currentPage, + @RequestParam("rows") Integer pageSize, + HttpServletRequest request) throws Exception{ + JSONObject object = new JSONObject(); + try { + String[] mpArr = new String[]{}; + if(StringUtil.isNotEmpty(mpList)){ + mpArr= mpList.split(","); + } + List dataList = materialService.findBySelectWithBarCode(categoryId, q, StringUtil.toNull(standardOrModel), + StringUtil.toNull(color), StringUtil.toNull(brand), StringUtil.toNull(mfrs), StringUtil.toNull(otherField1), StringUtil.toNull(otherField2), StringUtil.toNull(otherField3), + enableSerialNumber, enableBatchNumber, (currentPage-1)*pageSize, pageSize); + int total = materialService.findBySelectWithBarCodeCount(categoryId, q, StringUtil.toNull(standardOrModel), + StringUtil.toNull(color), StringUtil.toNull(brand), StringUtil.toNull(mfrs), StringUtil.toNull(otherField1), StringUtil.toNull(otherField2), StringUtil.toNull(otherField3), + enableSerialNumber, enableBatchNumber); + object.put("total", total); + JSONArray dataArray = new JSONArray(); + //存放数据json数组 + if (null != dataList) { + for (MaterialVo4Unit material : dataList) { + JSONObject item = new JSONObject(); + item.put("id", material.getMeId()); //商品扩展表的id + String ratioStr = ""; //比例 + Unit unit = new Unit(); + if (material.getUnitId() == null) { + ratioStr = ""; + } else { + unit = unitService.getUnit(material.getUnitId()); + //拼接副单位的比例 + String commodityUnit = material.getCommodityUnit(); + if(StringUtil.isNotEmpty(commodityUnit) && unit!=null) { + if(commodityUnit.equals(unit.getBasicUnit())) { + ratioStr = "[基本]"; + } + if(commodityUnit.equals(unit.getOtherUnit()) && unit.getRatio()!=null) { + ratioStr = "[" + unit.getRatio().stripTrailingZeros().toPlainString() + unit.getBasicUnit() + "]"; + } + if(commodityUnit.equals(unit.getOtherUnitTwo()) && unit.getRatioTwo()!=null) { + ratioStr = "[" + unit.getRatioTwo().stripTrailingZeros().toPlainString() + unit.getBasicUnit() + "]"; + } + if(commodityUnit.equals(unit.getOtherUnitThree()) && unit.getRatioThree()!=null) { + ratioStr = "[" + unit.getRatioThree().stripTrailingZeros().toPlainString() + unit.getBasicUnit() + "]"; + } + } + } + item.put("mBarCode", material.getmBarCode()); + item.put("name", material.getName()); + item.put("mnemonic", material.getMnemonic()); + item.put("categoryName", material.getCategoryName()); + item.put("standard", material.getStandard()); + item.put("model", material.getModel()); + item.put("color", material.getColor()); + item.put("brand", material.getBrand()); + item.put("mfrs", material.getMfrs()); + item.put("unit", material.getCommodityUnit() + ratioStr); + item.put("sku", material.getSku()); + item.put("enableSerialNumber", material.getEnableSerialNumber()); + item.put("enableBatchNumber", material.getEnableBatchNumber()); + BigDecimal stock; + if(StringUtil.isNotEmpty(material.getSku())){ + stock = depotItemService.getSkuStockByParam(depotId,material.getMeId(),null,null); + } else { + stock = depotItemService.getCurrentStockByParam(depotId, material.getId()); + if (material.getUnitId()!=null){ + String commodityUnit = material.getCommodityUnit(); + stock = unitService.parseStockByUnit(stock, unit, commodityUnit); + } + } + item.put("stock", stock); + item.put("expand", materialService.getMaterialOtherByParam(mpArr, material)); + item.put("otherField1", material.getOtherField1()); + item.put("otherField2", material.getOtherField2()); + item.put("otherField3", material.getOtherField3()); + item.put("imgName", material.getImgName()); + if(fileUploadType == 2) { + item.put("imgSmall", "small"); + item.put("imgLarge", "large"); + } else { + item.put("imgSmall", ""); + item.put("imgLarge", ""); + } + dataArray.add(item); + } + } + object.put("rows", dataArray); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return object; + } + + /** + * 根据商品id查找商品信息 + * @param meId + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getMaterialByMeId") + @ApiOperation(value = "根据商品id查找商品信息") + public JSONObject getMaterialByMeId(@RequestParam(value = "meId", required = false) Long meId, + @RequestParam("mpList") String mpList, + HttpServletRequest request) throws Exception{ + JSONObject item = new JSONObject(); + try { + String[] mpArr = mpList.split(","); + List materialList = materialService.getMaterialByMeId(meId); + if(materialList!=null && materialList.size()!=1) { + return item; + } else if(materialList.size() == 1) { + MaterialVo4Unit material = materialList.get(0); + item.put("Id", material.getMeId()); //商品扩展表的id + String ratio; //比例 + if (material.getUnitId() == null || material.getUnitId().equals("")) { + ratio = ""; + } else { + ratio = material.getUnitName(); + ratio = ratio.substring(ratio.indexOf("(")); + } + //名称/型号/扩展信息/包装 + String MaterialName = ""; + MaterialName = MaterialName + material.getmBarCode() + "_" + material.getName() + + ((material.getStandard() == null || material.getStandard().equals("")) ? "" : "(" + material.getStandard() + ")"); + String expand = materialService.getMaterialOtherByParam(mpArr, material); //扩展信息 + MaterialName = MaterialName + expand + ((material.getUnit() == null || material.getUnit().equals("")) ? "" : "(" + material.getUnit() + ")") + ratio; + item.put("MaterialName", MaterialName); + item.put("name", material.getName()); + item.put("expand", expand); + item.put("model", material.getModel()); + item.put("standard", material.getStandard()); + item.put("unit", material.getUnit() + ratio); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return item; + } + + /** + * 生成excel表格 + * @param categoryId + * @param materialParam + * @param color + * @param weight + * @param expiryNum + * @param enabled + * @param enableSerialNumber + * @param enableBatchNumber + * @param remark + * @param mpList + * @param request + * @param response + */ + @GetMapping(value = "/exportExcel") + @ApiOperation(value = "生成excel表格") + public void exportExcel(@RequestParam(value = "categoryId", required = false) String categoryId, + @RequestParam(value = "materialParam", required = false) String materialParam, + @RequestParam(value = "color", required = false) String color, + @RequestParam(value = "materialOther", required = false) String materialOther, + @RequestParam(value = "weight", required = false) String weight, + @RequestParam(value = "expiryNum", required = false) String expiryNum, + @RequestParam(value = "enabled", required = false) String enabled, + @RequestParam(value = "enableSerialNumber", required = false) String enableSerialNumber, + @RequestParam(value = "enableBatchNumber", required = false) String enableBatchNumber, + @RequestParam(value = "remark", required = false) String remark, + @RequestParam(value = "mpList", required = false) String mpList, + HttpServletRequest request, HttpServletResponse response) { + try { + materialService.exportExcel(StringUtil.toNull(categoryId), StringUtil.toNull(materialParam), StringUtil.toNull(color), + StringUtil.toNull(materialOther), StringUtil.toNull(weight), + StringUtil.toNull(expiryNum), StringUtil.toNull(enabled), StringUtil.toNull(enableSerialNumber), + StringUtil.toNull(enableBatchNumber), StringUtil.toNull(remark), mpList, response); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } + + /** + * excel表格导入产品(含初始库存) + * @param file + * @param request + * @param response + * @return + */ + @PostMapping(value = "/importExcel") + @ApiOperation(value = "excel表格导入产品") + public BaseResponseInfo importExcel(MultipartFile file, + HttpServletRequest request, HttpServletResponse response) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + res = materialService.importExcel(file, request); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return res; + } + + /** + * 获取商品序列号 + * @param q + * @param currentPage + * @param pageSize + * @param request + * @param response + * @return + * @throws Exception + */ + @GetMapping(value = "/getMaterialEnableSerialNumberList") + @ApiOperation(value = "获取商品序列号") + public JSONObject getMaterialEnableSerialNumberList( + @RequestParam(value = "q", required = false) String q, + @RequestParam("page") Integer currentPage, + @RequestParam("rows") Integer pageSize, + HttpServletRequest request, + HttpServletResponse response)throws Exception { + JSONObject object= new JSONObject(); + try { + List list = materialService.getMaterialEnableSerialNumberList(q, (currentPage-1)*pageSize, pageSize); + Long count = materialService.getMaterialEnableSerialNumberCount(q); + object.put("rows", list); + object.put("total", count); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return object; + } + + /** + * 获取最大条码 + * @return + * @throws Exception + */ + @GetMapping(value = "/getMaxBarCode") + @ApiOperation(value = "获取最大条码") + public BaseResponseInfo getMaxBarCode() throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + String barCode = materialService.getMaxBarCode(); + map.put("barCode", barCode); + res.code = 200; + res.data = map; + return res; + } + + /** + * 商品名称模糊匹配 + * @return + * @throws Exception + */ + @GetMapping(value = "/getMaterialNameList") + @ApiOperation(value = "商品名称模糊匹配") + public JSONArray getMaterialNameList() throws Exception { + JSONArray arr = new JSONArray(); + try { + List list = materialService.getMaterialNameList(); + for (String s : list) { + JSONObject item = new JSONObject(); + item.put("value", s); + item.put("text", s); + arr.add(item); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return arr; + } + + /** + * 根据条码查询商品信息 + * @return + * @throws Exception + */ + @GetMapping(value = "/getMaterialByBarCode") + @ApiOperation(value = "根据条码查询商品信息") + public BaseResponseInfo getMaterialByBarCode(@RequestParam("barCode") String barCode, + @RequestParam(value = "organId", required = false) Long organId, + @RequestParam(value = "depotId", required = false) Long depotId, + @RequestParam("mpList") String mpList, + @RequestParam(required = false, value = "prefixNo") String prefixNo, + HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + String[] mpArr = mpList.split(","); + //支持序列号查询,先根据序列号查询条码,如果查不到就直接查条码 + MaterialExtend materialExtend = materialService.getMaterialExtendBySerialNumber(barCode); + if(materialExtend!=null && StringUtil.isNotEmpty(materialExtend.getBarCode())) { + barCode = materialExtend.getBarCode(); + } + //查下供应商或者客户的信息 + Supplier supplier = organId!=null ? supplierService.getSupplier(organId) : null; + List list = materialService.getMaterialByBarCode(barCode); + if(list!=null && list.size()>0) { + for(MaterialVo4Unit mvo: list) { + mvo.setMaterialOther(materialService.getMaterialOtherByParam(mpArr, mvo)); + if ("LSCK".equals(prefixNo) || "LSTH".equals(prefixNo)) { + //零售价 + mvo.setBillPrice(mvo.getCommodityDecimal()); + } else if ("CGDD".equals(prefixNo) || "CGRK".equals(prefixNo) || "CGTH".equals(prefixNo)) { + //采购价 + mvo.setBillPrice(mvo.getPurchaseDecimal()); + } else if("QTRK".equals(prefixNo) || "QTCK".equals(prefixNo) || "DBCK".equals(prefixNo) || "ZZD".equals(prefixNo) || "CXD".equals(prefixNo) + || "PDLR".equals(prefixNo) || "PDFP".equals(prefixNo)) { + //采购价-给录入界面按权限屏蔽 + mvo.setBillPrice(roleService.parseBillPriceByLimit(mvo.getPurchaseDecimal(), "buy", priceLimit, request)); + } else if ("XSDD".equals(prefixNo) || "XSCK".equals(prefixNo) || "XSTH".equals(prefixNo)) { + //销售价 + if(organId == null) { + mvo.setBillPrice(mvo.getWholesaleDecimal()); + } else { + if(systemConfigService.getCustomerStaticPriceFlag()) { + //已经开启了客户静态单价的开关 + mvo.setBillPrice(mvo.getWholesaleDecimal()); + } else { + //查询最后一单的销售价,实现不同的客户不同的销售价 + BigDecimal lastUnitPrice = depotItemService.getLastUnitPriceByParam(organId, mvo.getMeId(), prefixNo); + mvo.setBillPrice(lastUnitPrice!=null? lastUnitPrice : mvo.getWholesaleDecimal()); + } + } + //销售价-给录入界面按权限屏蔽价格 + if("QTCK".equals(prefixNo)) { + mvo.setBillPrice(roleService.parseBillPriceByLimit(mvo.getWholesaleDecimal(), "sale", priceLimit, request)); + } + } else if ("other".equals(prefixNo)) { + //其它需要填充商品采购价或者成本价的场景 + if(systemConfigService.getMoveAvgPriceFlag()) { + BigDecimal currentUnitPrice = materialService.getCurrentUnitPriceByMaterialId(mvo.getId()); + mvo.setBillPrice(currentUnitPrice); + } else { + mvo.setBillPrice(mvo.getPurchaseDecimal()); + } + } + //仓库id + if (depotId == null) { + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for (Object obj : depotArr) { + JSONObject depotObj = JSONObject.parseObject(obj.toString()); + if (depotObj.get("isDefault") != null) { + Boolean isDefault = depotObj.getBoolean("isDefault"); + if (isDefault) { + Long id = depotObj.getLong("id"); + if (!"CGDD".equals(prefixNo) && !"XSDD".equals(prefixNo)) { + //除订单之外的单据才有仓库 + mvo.setDepotId(id); + } + getStockByMaterialInfo(mvo); + } + } + } + } else { + mvo.setDepotId(depotId); + getStockByMaterialInfo(mvo); + } + //税率 + BigDecimal taxRate = BigDecimal.ZERO; + if(supplier!=null && supplier.getTaxRate()!=null) { + taxRate = supplier.getTaxRate(); + } + mvo.setTaxRate(taxRate); + //税额 + BigDecimal taxMoney = BigDecimal.ZERO; + if(taxRate.compareTo(BigDecimal.ZERO) != 0 && mvo.getBillPrice()!=null) { + if(systemConfigService.getMaterialPriceTaxFlag()) { + //商品价格含税-开启 + BigDecimal taxRatePercent = taxRate.divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP); + taxMoney = mvo.getBillPrice().divide(BigDecimal.ONE.add(taxRatePercent), 2, BigDecimal.ROUND_HALF_UP) + .multiply(taxRatePercent).setScale(2, BigDecimal.ROUND_HALF_UP); + } else { + taxMoney = taxRate.multiply(mvo.getBillPrice()).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP); + } + } + mvo.setTaxMoney(taxMoney); + //价税合计 + BigDecimal taxLastMoney = BigDecimal.ZERO; + if(mvo.getBillPrice()!=null) { + if(systemConfigService.getMaterialPriceTaxFlag()) { + //商品价格含税-开启 + taxLastMoney = mvo.getBillPrice(); + } else { + taxLastMoney = mvo.getBillPrice().add(taxMoney); + } + } + mvo.setTaxLastMoney(taxLastMoney); + } + } + res.code = 200; + res.data = list; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据商品信息获取库存,进行赋值 + * @param mvo + * @throws Exception + */ + private void getStockByMaterialInfo(MaterialVo4Unit mvo) throws Exception { + BigDecimal stock; + if (StringUtil.isNotEmpty(mvo.getSku())) { + stock = depotItemService.getSkuStockByParam(mvo.getDepotId(), mvo.getMeId(), null, null); + } else { + stock = depotItemService.getCurrentStockByParam(mvo.getDepotId(), mvo.getId()); + if (mvo.getUnitId() != null) { + Unit unit = unitService.getUnit(mvo.getUnitId()); + String commodityUnit = mvo.getCommodityUnit(); + stock = unitService.parseStockByUnit(stock, unit, commodityUnit); + } + } + mvo.setStock(stock); + } + + /** + * 商品库存查询 + * @param currentPage + * @param pageSize + * @param depotIds + * @param categoryId + * @param materialParam + * @param zeroStock + * @param column + * @param order + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getListWithStock") + @ApiOperation(value = "商品库存查询") + public BaseResponseInfo getListWithStock(@RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "depotIds", required = false) String depotIds, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "position", required = false) String position, + @RequestParam("materialParam") String materialParam, + @RequestParam("zeroStock") Integer zeroStock, + @RequestParam(value = "column", required = false, defaultValue = "createTime") String column, + @RequestParam(value = "order", required = false, defaultValue = "desc") String order, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + List idList = new ArrayList<>(); + List depotList = new ArrayList<>(); + if(categoryId != null){ + idList = materialService.getListByParentId(categoryId); + } + if(StringUtil.isNotEmpty(depotIds)) { + depotList = StringUtil.strToLongList(depotIds); + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotList.add(object.getLong("id")); + } + } + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + Boolean moveAvgPriceFlag = systemConfigService.getMoveAvgPriceFlag(); + List dataList = materialService.getListWithStock(priceLimit, depotList, idList, StringUtil.toNull(position), StringUtil.toNull(materialParam), + moveAvgPriceFlag, zeroStock, StringUtil.safeSqlParse(column), StringUtil.safeSqlParse(order), (currentPage-1)*pageSize, pageSize, request); + int total = materialService.getListWithStockCount(priceLimit, depotList, idList, StringUtil.toNull(position), StringUtil.toNull(materialParam), zeroStock); + MaterialVo4Unit materialVo4Unit= materialService.getTotalStockAndPrice(priceLimit, depotList, idList, StringUtil.toNull(position), StringUtil.toNull(materialParam), request); + map.put("total", total); + map.put("currentStock", materialVo4Unit.getCurrentStock()!=null?materialVo4Unit.getCurrentStock():BigDecimal.ZERO); + if(moveAvgPriceFlag) { + map.put("currentStockPrice", materialVo4Unit.getCurrentStockMovePrice()!=null?materialVo4Unit.getCurrentStockMovePrice():BigDecimal.ZERO); + } else { + map.put("currentStockPrice", materialVo4Unit.getCurrentStockPrice()!=null?materialVo4Unit.getCurrentStockPrice():BigDecimal.ZERO); + } + map.put("currentWeight", materialVo4Unit.getCurrentWeight()!=null?materialVo4Unit.getCurrentWeight():BigDecimal.ZERO); + boolean showStockPrice = true; + if(StringUtil.isNotEmpty(priceLimit)) { + if(priceLimit.contains("7")) { + showStockPrice = false; + } + } + map.put("showStockPrice", showStockPrice); + map.put("moveAvgPriceFlag", moveAvgPriceFlag); + map.put("rows", dataList); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 批量设置商品当前的实时库存(按每个仓库) + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/batchSetMaterialCurrentStock") + @ApiOperation(value = "批量设置商品当前的实时库存(按每个仓库)") + public String batchSetMaterialCurrentStock(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + List depotList = depotService.getAllList(); + if(depotList.isEmpty()) { + return returnJson(objectMap, "请先创建仓库后再操作", ErpInfo.WARING_MSG.code); + } + int res = materialService.batchSetMaterialCurrentStock(ids, depotList); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 批量设置商品当前的成本价 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/batchSetMaterialCurrentUnitPrice") + @ApiOperation(value = "批量设置商品当前的成本价") + public String batchSetMaterialCurrentUnitPrice(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = materialService.batchSetMaterialCurrentUnitPrice(ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 批量更新商品信息 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/batchUpdate") + @ApiOperation(value = "批量更新商品信息") + public String batchUpdate(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int res = materialService.batchUpdate(jsonObject); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 转换名称为拼音 + * @param jsonObject + */ + @PostMapping(value = "/changeNameToPinYin") + @ApiOperation(value = "转换名称为拼音") + public BaseResponseInfo changeNameToPinYin(@RequestBody JSONObject jsonObject)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + String name = jsonObject.getString("name"); + res.code = 200; + res.data = PinYinUtil.getFirstLettersLo(name); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据仓库和商品查询库存分布情况 + * @param mId + * @param request + * @return + */ + @GetMapping(value = "/getMaterialDepotStock") + @ApiOperation(value = "根据仓库和商品查询库存分布情况") + public TableDataInfo getMaterialDepotStock( + @RequestParam(value = "depotIds",required = false) String depotIds, + @RequestParam("materialId") Long mId, + HttpServletRequest request)throws Exception { + List list = materialService.getMaterialDepotStock(depotIds, mId, request); + return getDataTable(list); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialExtendController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialExtendController.java new file mode 100644 index 0000000..7333ede --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialExtendController.java @@ -0,0 +1,181 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.datasource.entities.MaterialExtend; +import com.reallin.smt.datasource.vo.MaterialExtendVo4List; +import com.reallin.smt.service.MaterialExtendService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author jijiaqing + */ +@RestController +@RequestMapping(value = "/materialsExtend") +@Api(tags = {"商品价格扩展"}) +public class MaterialExtendController { + private Logger logger = LoggerFactory.getLogger(MaterialExtendController.class); + @Resource + private MaterialExtendService materialExtendService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + MaterialExtend materialExtend = materialExtendService.getMaterialExtend(id); + Map objectMap = new HashMap<>(); + if(materialExtend != null) { + objectMap.put("info", materialExtend); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = materialExtendService.insertMaterialExtend(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = materialExtendService.updateMaterialExtend(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialExtendService.deleteMaterialExtend(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialExtendService.batchDeleteMaterialExtendByIds(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/getDetailList") + @ApiOperation(value = "价格信息列表") + public BaseResponseInfo getDetailList(@RequestParam("materialId") Long materialId, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + List dataList = new ArrayList(); + if(materialId!=0) { + dataList = materialExtendService.getDetailList(materialId); + } + JSONObject outer = new JSONObject(); + outer.put("total", dataList.size()); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (MaterialExtendVo4List md : dataList) { + JSONObject item = new JSONObject(); + item.put("id", md.getId()); + item.put("barCode", md.getBarCode()); + item.put("commodityUnit", md.getCommodityUnit()); + if(StringUtil.isNotEmpty(md.getSku())){ + item.put("sku", md.getSku()); + } + item.put("purchaseDecimal", md.getPurchaseDecimal()); + item.put("commodityDecimal", md.getCommodityDecimal()); + item.put("wholesaleDecimal", md.getWholesaleDecimal()); + item.put("lowDecimal", md.getLowDecimal()); + dataArray.add(item); + } + } + outer.put("rows", dataArray); + res.code = 200; + res.data = outer; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据条码查询商品信息 + * @param barCode + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getInfoByBarCode") + @ApiOperation(value = "根据条码查询商品信息") + public BaseResponseInfo getInfoByBarCode(@RequestParam("barCode") String barCode, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + MaterialExtend materialExtend = materialExtendService.getInfoByBarCode(barCode); + res.code = 200; + res.data = materialExtend; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 校验条码是否存在 + * @param id + * @param barCode + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/checkIsBarCodeExist") + @ApiOperation(value = "校验条码是否存在") + public BaseResponseInfo checkIsBarCodeExist(@RequestParam("id") Long id, + @RequestParam("barCode") String barCode, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + int exist = materialExtendService.checkIsBarCodeExist(id, barCode); + if(exist > 0) { + map.put("status", true); + } else { + map.put("status", false); + } + res.code = 200; + res.data = map; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialPropertyController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialPropertyController.java new file mode 100644 index 0000000..fef0f50 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/MaterialPropertyController.java @@ -0,0 +1,145 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.MaterialProperty; +import com.reallin.smt.service.MaterialPropertyService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * Description + * + * @Author: jsh + * @Date: 2025/3/25 15:24 + */ +@RestController +@RequestMapping(value = "/materialProperty") +@Api(tags = {"商品扩展字段"}) +public class MaterialPropertyController extends BaseController { + + private Logger logger = LoggerFactory.getLogger(MaterialPropertyController.class); + + @Resource + private MaterialPropertyService materialPropertyService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + MaterialProperty materialProperty = materialPropertyService.getMaterialProperty(id); + Map objectMap = new HashMap<>(); + if(materialProperty != null) { + objectMap.put("info", materialProperty); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + List list = materialPropertyService.select(name); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = materialPropertyService.insertMaterialProperty(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = materialPropertyService.updateMaterialProperty(obj, request); + return returnStr(objectMap, update); + } + + @PostMapping(value = "/addOrUpdate") + @ApiOperation(value = "新增或修改") + public String addOrUpdate(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String nativeName = obj.getString("nativeName"); + String anotherName = obj.getString("anotherName"); + boolean exist = materialPropertyService.checkIsNativeNameExist(nativeName); + int res; + if(!exist) { + obj.put("id", null); + res = materialPropertyService.insertMaterialProperty(obj, request); + } else { + res = materialPropertyService.updateMaterialPropertyByNativeName(nativeName, anotherName); + } + return returnStr(objectMap, res); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialPropertyService.deleteMaterialProperty(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = materialPropertyService.batchDeleteMaterialProperty(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = materialPropertyService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + @GetMapping(value = "/getAllList") + @ApiOperation(value = "查询全部商品扩展字段信息") + public BaseResponseInfo getAllList(HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + List list = materialPropertyService.getMaterialProperty(); + res.code = 200; + res.data = list; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/MsgController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/MsgController.java new file mode 100644 index 0000000..7b85332 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/MsgController.java @@ -0,0 +1,232 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Msg; +import com.reallin.smt.datasource.entities.MsgEx; +import com.reallin.smt.service.MsgService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji sheng hua jshERP + */ +@RestController +@RequestMapping(value = "/msg") +@Api(tags = {"消息管理"}) +public class MsgController extends BaseController { + private Logger logger = LoggerFactory.getLogger(MsgController.class); + + @Resource + private MsgService msgService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Msg msg = msgService.getMsg(id); + Map objectMap = new HashMap<>(); + if(msg != null) { + objectMap.put("info", msg); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + List list = msgService.select(name); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = msgService.insertMsg(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = msgService.updateMsg(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = msgService.deleteMsg(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = msgService.batchDeleteMsg(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = msgService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 根据状态查询消息 + * @param status + * @param request + * @return + * @throws Exception + */ + @GetMapping("/getMsgByStatus") + @ApiOperation(value = "根据状态查询消息") + public BaseResponseInfo getMsgByStatus(@RequestParam("status") String status, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + List list = msgService.getMsgByStatus(status); + res.code = 200; + res.data = list; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 批量更新状态 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping("/batchUpdateStatus") + @ApiOperation(value = "批量更新状态") + public BaseResponseInfo batchUpdateStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + String ids = jsonObject.getString("ids"); + String status = jsonObject.getString("status"); + msgService.batchUpdateStatus(ids, status); + res.code = 200; + res.data = "更新成功"; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据状态查询数量 + * @param status + * @param request + * @return + * @throws Exception + */ + @GetMapping("/getMsgCountByStatus") + @ApiOperation(value = "根据状态查询数量") + public BaseResponseInfo getMsgCountByStatus(@RequestParam("status") String status, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map map = new HashMap(); + Long count = msgService.getMsgCountByStatus(status); + map.put("count", count); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据类型查询数量 + * @param type + * @param request + * @return + * @throws Exception + */ + @GetMapping("/getMsgCountByType") + @ApiOperation(value = "根据类型查询数量") + public BaseResponseInfo getMsgCountByType(@RequestParam("type") String type, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map map = new HashMap<>(); + Integer count = msgService.getMsgCountByType(type); + map.put("count", count); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 全部设置未已读 + * @param request + * @return + * @throws Exception + */ + @PostMapping("/readAllMsg") + @ApiOperation(value = "全部设置未已读") + public BaseResponseInfo readAllMsg(HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + msgService.readAllMsg(); + res.code = 200; + res.data = "操作成功!"; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/OrganizationController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/OrganizationController.java new file mode 100644 index 0000000..5e31a4a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/OrganizationController.java @@ -0,0 +1,187 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.Organization; +import com.reallin.smt.datasource.vo.TreeNode; +import com.reallin.smt.service.OrganizationService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.ErpInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * create by: jsh + */ +@RestController +@RequestMapping(value = "/organization") +@Api(tags = {"部门管理"}) +public class OrganizationController { + private Logger logger = LoggerFactory.getLogger(OrganizationController.class); + + @Resource + private OrganizationService organizationService; + + @Resource + private UserService userService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Organization organization = organizationService.getOrganization(id); + Map objectMap = new HashMap<>(); + if(organization != null) { + objectMap.put("info", organization); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = organizationService.insertOrganization(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = organizationService.updateOrganization(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = organizationService.deleteOrganization(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = organizationService.batchDeleteOrganization(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = organizationService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 根据id来查询部门信息 + * @param id + * @param request + * @return + */ + @GetMapping(value = "/findById") + @ApiOperation(value = "根据id来查询部门信息") + public BaseResponseInfo findById(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + List dataList = organizationService.findById(id); + JSONObject outer = new JSONObject(); + if (null != dataList) { + for (Organization org : dataList) { + outer.put("id", org.getId()); + outer.put("orgAbr", org.getOrgAbr()); + outer.put("parentId", org.getParentId()); + List dataParentList = organizationService.findByParentId(org.getParentId()); + if(dataParentList!=null&&dataParentList.size()>0){ + //父级部门名称显示简称 + outer.put("orgParentName", dataParentList.get(0).getOrgAbr()); + } + outer.put("orgNo", org.getOrgNo()); + outer.put("sort", org.getSort()); + outer.put("remark", org.getRemark()); + } + } + res.code = 200; + res.data = outer; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 获取部门树数据 + * @return + * @throws Exception + */ + @GetMapping(value = "/getOrganizationTree") + @ApiOperation(value = "获取部门树数据") + public JSONArray getOrganizationTree(@RequestParam("id") Long id) throws Exception{ + JSONArray arr=new JSONArray(); + List organizationTree= organizationService.getOrganizationTree(id); + if(organizationTree!=null&&organizationTree.size()>0){ + for(TreeNode node:organizationTree){ + String str=JSON.toJSONString(node); + JSONObject obj=JSON.parseObject(str); + arr.add(obj); + } + } + return arr; + } + + /** + * 根据用户获取全部部门树 + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getAllOrganizationTreeByUser") + @ApiOperation(value = "根据用户获取全部部门树") + public JSONArray getAllOrganizationTreeByUser(HttpServletRequest request) throws Exception{ + JSONArray arr = new JSONArray(); + Long userId = userService.getUserId(request); + String roleType = userService.getRoleTypeByUserId(userId).getType(); + if(BusinessConstants.ROLE_TYPE_PUBLIC.equals(roleType)) { + List organizationTree = organizationService.getOrganizationTree(null); + if(organizationTree!=null && organizationTree.size()>0){ + for(TreeNode node: organizationTree){ + String str = JSON.toJSONString(node); + JSONObject obj = JSON.parseObject(str); + arr.add(obj); + } + } + } + return arr; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/PackBomController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/PackBomController.java new file mode 100644 index 0000000..1eac6e1 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/PackBomController.java @@ -0,0 +1,143 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.PackBom; +import com.reallin.smt.datasource.vo.PackBomVo4List; +import com.reallin.smt.service.PackBomService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * 生产方案管理 + */ +@RestController +@RequestMapping(value = "/packBom") +@Api(tags = {"生产方案"}) +public class PackBomController extends BaseController { + + @Resource + private PackBomService packBomService; + + @GetMapping(value = "/list") + @ApiOperation(value = "生产方案列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request) throws Exception { + String bomNumber = StringUtil.getInfo(search, "bomNumber"); + String bomName = StringUtil.getInfo(search, "bomName"); + String outputMaterialParam = StringUtil.getInfo(search, "outputMaterialParam"); + String enabledStr = StringUtil.getInfo(search, "enabled"); + Boolean enabled = StringUtil.isEmpty(enabledStr) ? null : Boolean.parseBoolean(enabledStr); + List list = packBomService.select(bomNumber, bomName, outputMaterialParam, enabled); + return getDataTable(list); + } + + @PostMapping(value = "/addPackBom") + @ApiOperation(value = "新增生产方案") + public String addPackBom(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = packBomService.addPackBom(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/updatePackBom") + @ApiOperation(value = "修改生产方案") + public String updatePackBom(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int update = packBomService.updatePackBom(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/deletePackBom") + @ApiOperation(value = "删除生产方案") + public String deletePackBom(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = packBomService.deletePackBom(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/batchDeletePackBom") + @ApiOperation(value = "批量删除生产方案") + public String batchDeletePackBom(@RequestParam("ids") String ids, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = packBomService.batchDeletePackBom(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/getPackBomDetail") + @ApiOperation(value = "获取生产方案详情") + public BaseResponseInfo getPackBomDetail(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + JSONObject detail = packBomService.getPackBomDetail(id); + res.code = 200; + res.data = detail; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置启用状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, HttpServletRequest request) throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = packBomService.batchSetStatus(status, ids); + if (res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/getBomListByOutput") + @ApiOperation(value = "根据成品查询启用的生产方案列表") + public BaseResponseInfo getBomListByOutput(@RequestParam("outputMaterialId") Long outputMaterialId, + HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + List list = packBomService.getBomListByOutput(outputMaterialId); + res.code = 200; + res.data = list; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + @GetMapping(value = "/checkIsNumberExist") + @ApiOperation(value = "检查编号是否存在") + public String checkIsNumberExist(@RequestParam Long id, + @RequestParam(value = "bomNumber", required = false) String bomNumber, + HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int exist = packBomService.checkNumberExist(id, bomNumber); + if (exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/PersonController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/PersonController.java new file mode 100644 index 0000000..b1d8e7b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/PersonController.java @@ -0,0 +1,241 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Person; +import com.reallin.smt.service.PersonService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji|sheng|hua SMT + */ +@RestController +@RequestMapping(value = "/person") +@Api(tags = {"经手人管理"}) +public class PersonController extends BaseController { + private Logger logger = LoggerFactory.getLogger(PersonController.class); + + @Resource + private PersonService personService; + + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Person person = personService.getPerson(id); + Map objectMap = new HashMap<>(); + if(person != null) { + objectMap.put("info", person); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + String type = StringUtil.getInfo(search, "type"); + List list = personService.select(name, type); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = personService.insertPerson(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = personService.updatePerson(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = personService.deletePerson(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = personService.batchDeletePerson(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = personService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 全部数据列表 + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getAllList") + @ApiOperation(value = "全部数据列表") + public BaseResponseInfo getAllList(HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List personList = personService.getPerson(); + map.put("personList", personList); + res.code = 200; + res.data = personList; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据Id获取经手人信息 + * @param personIds + * @param request + * @return + */ + @GetMapping(value = "/getPersonByIds") + @ApiOperation(value = "根据Id获取经手人信息") + public BaseResponseInfo getPersonByIds(@RequestParam("personIds") String personIds, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + Map personMap = personService.getPersonMap(); + String names = personService.getPersonByMapAndIds(personMap, personIds); + map.put("names", names); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据类型获取经手人信息 + * @param type + * @param request + * @return + */ + @GetMapping(value = "/getPersonByType") + @ApiOperation(value = "根据类型获取经手人信息") + public BaseResponseInfo getPersonByType(@RequestParam("type") String type, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List personList = personService.getPersonByType(type); + map.put("personList", personList); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据类型获取经手人信息 1-销售员,2-仓管员,3-财务员 + * @param typeNum + * @param request + * @return + */ + @GetMapping(value = "/getPersonByNumType") + @ApiOperation(value = "根据类型获取经手人信息1-销售员,2-仓管员,3-财务员") + public JSONArray getPersonByNumType(@RequestParam("type") String typeNum, + HttpServletRequest request)throws Exception { + JSONArray dataArray = new JSONArray(); + try { + String type = ""; + if (typeNum.equals("1")) { + type = "销售员"; + } else if (typeNum.equals("2")) { + type = "仓管员"; + } else if (typeNum.equals("3")) { + type = "财务员"; + } + List personList = personService.getPersonByType(type); + if (null != personList) { + for (Person person : personList) { + JSONObject item = new JSONObject(); + item.put("value", person.getId().toString()); + item.put("text", person.getName()); + dataArray.add(item); + } + } + } catch(Exception e){ + logger.error(e.getMessage(), e); + } + return dataArray; + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = personService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/PlatformConfigController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/PlatformConfigController.java new file mode 100644 index 0000000..be649a5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/PlatformConfigController.java @@ -0,0 +1,237 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.PlatformConfig; +import com.reallin.smt.service.PlatformConfigService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji|sheng|hua SMT QQ7827-18920 + */ +@RestController +@RequestMapping(value = "/platformConfig") +@Api(tags = {"平台参数"}) +public class PlatformConfigController extends BaseController { + private Logger logger = LoggerFactory.getLogger(PlatformConfigController.class); + + @Resource + private PlatformConfigService platformConfigService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + PlatformConfig platformConfig = platformConfigService.getPlatformConfig(id); + Map objectMap = new HashMap<>(); + if(platformConfig != null) { + objectMap.put("info", platformConfig); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String platformKey = StringUtil.getInfo(search, "platformKey"); + List list = platformConfigService.select(platformKey); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = platformConfigService.insertPlatformConfig(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = platformConfigService.updatePlatformConfig(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = platformConfigService.deletePlatformConfig(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = platformConfigService.batchDeletePlatformConfig(ids, request); + return returnStr(objectMap, delete); + } + + /** + * 获取平台名称 + * @param request + * @return + */ + @GetMapping(value = "/getPlatform/name") + @ApiOperation(value = "获取平台名称") + public String getPlatformName(HttpServletRequest request)throws Exception { + String res; + try { + String platformKey = "platform_name"; + PlatformConfig platformConfig = platformConfigService.getInfoByKey(platformKey); + res = platformConfig.getPlatformValue(); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res = "ERP系统"; + } + return res; + } + + /** + * 获取官方网站地址 + * @param request + * @return + */ + @GetMapping(value = "/getPlatform/url") + @ApiOperation(value = "获取官方网站地址") + public String getPlatformUrl(HttpServletRequest request)throws Exception { + String res; + try { + String platformKey = "platform_url"; + PlatformConfig platformConfig = platformConfigService.getInfoByKey(platformKey); + res = platformConfig.getPlatformValue(); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res = "#"; + } + return res; + } + + /** + * 获取是否开启注册 + * @param request + * @return + */ + @GetMapping(value = "/getPlatform/registerFlag") + @ApiOperation(value = "获取是否开启注册") + public String getPlatformRegisterFlag(HttpServletRequest request)throws Exception { + String res; + try { + String platformKey = "register_flag"; + PlatformConfig platformConfig = platformConfigService.getInfoByKey(platformKey); + res = platformConfig.getPlatformValue(); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res = "#"; + } + return res; + } + + /** + * 获取是否开启验证码 + * @param request + * @return + */ + @GetMapping(value = "/getPlatform/checkcodeFlag") + @ApiOperation(value = "获取是否开启验证码") + public String getPlatformCheckcodeFlag(HttpServletRequest request)throws Exception { + String res; + try { + String platformKey = "checkcode_flag"; + PlatformConfig platformConfig = platformConfigService.getInfoByKey(platformKey); + res = platformConfig.getPlatformValue(); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res = "#"; + } + return res; + } + + /** + * 获取APP版本 + * @param request + * @return + */ + @GetMapping(value = "/getPlatform/appVersion") + @ApiOperation(value = "获取APP版本") + public String getPlatformAppVersion(HttpServletRequest request)throws Exception { + String res; + try { + String platformKey = "app_version"; + PlatformConfig platformConfig = platformConfigService.getInfoByKey(platformKey); + res = platformConfig.getPlatformValue(); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res = "#"; + } + return res; + } + + /** + * 根据platformKey更新platformValue + * @param object + * @param request + * @return + */ + @PostMapping(value = "/updatePlatformConfigByKey") + @ApiOperation(value = "根据platformKey更新platformValue") + public String updatePlatformConfigByKey(@RequestBody JSONObject object, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String platformKey = object.getString("platformKey"); + String platformValue = object.getString("platformValue"); + int res = platformConfigService.updatePlatformConfigByKey(platformKey, platformValue); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 根据platformKey查询信息 + * @param platformKey + * @param request + * @return + */ + @GetMapping(value = "/getInfoByKey") + @ApiOperation(value = "根据platformKey查询信息") + public BaseResponseInfo getInfoByKey(@RequestParam("platformKey") String platformKey, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + PlatformConfig platformConfig = platformConfigService.getInfoByKey(platformKey); + res.code = 200; + res.data = platformConfig; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/PluginController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/PluginController.java new file mode 100644 index 0000000..d7c80fb --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/PluginController.java @@ -0,0 +1,368 @@ +package com.reallin.smt.controller; + +import com.gitee.starblues.integration.application.PluginApplication; +import com.gitee.starblues.integration.operator.PluginOperator; +import com.gitee.starblues.integration.operator.module.PluginInfo; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.ComputerInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.DigestUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.nio.file.Paths; +import java.util.*; + +/** + * 插件jar 包测试功能 + * @author jishenghua + * @version 1.0 + */ +@RestController +@RequestMapping("/plugin") +@Api(tags = {"插件管理"}) +public class PluginController { + private Logger logger = LoggerFactory.getLogger(PluginController.class); + + @Resource + private UserService userService; + + private final PluginOperator pluginOperator; + + @Autowired + public PluginController(PluginApplication pluginApplication) { + this.pluginOperator = pluginApplication.getPluginOperator(); + } + /** + * 获取插件信息 + * @return 返回插件信息 + */ + @GetMapping(value = "/list") + @ApiOperation(value = "获取插件信息") + public BaseResponseInfo getPluginInfo(@RequestParam(value = "name",required = false) String name, + @RequestParam("currentPage") Integer currentPage, + @RequestParam("pageSize") Integer pageSize, + HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + List resList = new ArrayList<>(); + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + List list = pluginOperator.getPluginInfo(); + if (StringUtil.isEmpty(name)) { + resList = list; + } else { + for (PluginInfo pi : list) { + String desc = pi.getPluginDescriptor().getPluginDescription(); + if (desc.contains(name)) { + resList.add(pi); + } + } + } + } + map.put("rows", resList); + map.put("total", resList.size()); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 获取插件jar文件名 + * @return 获取插件文件名。只在生产环境显示 + */ + @GetMapping("/files") + @ApiOperation(value = "获取插件jar文件名") + public Set getPluginFilePaths(){ + try { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + return pluginOperator.getPluginFilePaths(); + } else { + return null; + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + return null; + } + } + + + /** + * 根据插件id停止插件 + * @param id 插件id + * @return 返回操作结果 + */ + @PostMapping("/stop/{id}") + @ApiOperation(value = "根据插件id停止插件") + public BaseResponseInfo stop(@PathVariable("id") String id){ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + String message = ""; + try { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + if (pluginOperator.stop(id)) { + message = "plugin '" + id + "' stop success"; + } else { + message = "plugin '" + id + "' stop failure"; + } + } else { + message = "power is limit"; + } + map.put("message", message); + res.code = 200; + res.data = map; + } catch (Exception e) { + logger.error(e.getMessage(), e); + map.put("message", "plugin '" + id +"' stop failure. " + e.getMessage()); + res.code = 500; + res.data = map; + } + return res; + } + + /** + * 根据插件id启动插件 + * @param id 插件id + * @return 返回操作结果 + */ + @PostMapping("/start/{id}") + @ApiOperation(value = "根据插件id启动插件") + public BaseResponseInfo start(@PathVariable("id") String id){ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + String message = ""; + try { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + if (pluginOperator.start(id)) { + message = "plugin '" + id + "' start success"; + } else { + message = "plugin '" + id + "' start failure"; + } + } else { + message = "power is limit"; + } + map.put("message", message); + res.code = 200; + res.data = map; + } catch (Exception e) { + logger.error(e.getMessage(), e); + map.put("message", "plugin '" + id +"' start failure. " + e.getMessage()); + res.code = 500; + res.data = map; + } + return res; + } + + + /** + * 根据插件id卸载插件 + * @param id 插件id + * @return 返回操作结果 + */ + @PostMapping("/uninstall/{id}") + @ApiOperation(value = "根据插件id卸载插件") + public BaseResponseInfo uninstall(@PathVariable("id") String id){ + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + String message = ""; + try { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + if (pluginOperator.uninstall(id, true)) { + message = "plugin '" + id + "' uninstall success"; + } else { + message = "plugin '" + id + "' uninstall failure"; + } + } else { + message = "power is limit"; + } + map.put("message", message); + res.code = 200; + res.data = map; + } catch (Exception e) { + logger.error(e.getMessage(), e); + map.put("message", "plugin '" + id +"' uninstall failure. " + e.getMessage()); + res.code = 500; + res.data = map; + } + return res; + } + + + /** + * 根据插件路径安装插件。该插件jar必须在服务器上存在。注意: 该操作只适用于生产环境 + * @param path 插件路径名称 + * @return 操作结果 + */ + @PostMapping("/installByPath") + @ApiOperation(value = "根据插件路径安装插件") + public String install(@RequestParam("path") String path){ + try { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + if (pluginOperator.install(Paths.get(path))) { + return "installByPath success"; + } else { + return "installByPath failure"; + } + } else { + return "installByPath failure"; + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + return "installByPath failure : " + e.getMessage(); + } + } + + + /** + * 上传并安装插件。注意: 该操作只适用于生产环境 + * @param file 上传文件 multipartFile + * @return 操作结果 + */ + @PostMapping("/uploadInstallPluginJar") + @ApiOperation(value = "上传并安装插件") + public BaseResponseInfo install(MultipartFile file, HttpServletRequest request, HttpServletResponse response){ + BaseResponseInfo res = new BaseResponseInfo(); + try { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + pluginOperator.uploadPluginAndStart(file); + res.code = 200; + res.data = "导入成功"; + } else { + res.code = 500; + res.data = "抱歉,无操作权限!"; + } + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "导入失败"; + } + return res; + } + + /** + * 上传插件的配置文件。注意: 该操作只适用于生产环境 + * @param multipartFile 上传文件 multipartFile + * @return 操作结果 + */ + @PostMapping("/uploadPluginConfigFile") + @ApiOperation(value = "上传插件的配置文件") + public String uploadConfig(@RequestParam("configFile") MultipartFile multipartFile){ + try { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + if (pluginOperator.uploadConfigFile(multipartFile)) { + return "uploadConfig success"; + } else { + return "uploadConfig failure"; + } + } else { + return "installByPath failure"; + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + return "uploadConfig failure : " + e.getMessage(); + } + } + + + /** + * 备份插件。注意: 该操作只适用于生产环境 + * @param pluginId 插件id + * @return 操作结果 + */ + @PostMapping("/back/{pluginId}") + @ApiOperation(value = "备份插件") + public String backupPlugin(@PathVariable("pluginId") String pluginId){ + try { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + if (pluginOperator.backupPlugin(pluginId, "testBack")) { + return "backupPlugin success"; + } else { + return "backupPlugin failure"; + } + } else { + return "backupPlugin failure"; + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + return "backupPlugin failure : " + e.getMessage(); + } + } + + /** + * 获取加密后的mac + * @return + */ + @GetMapping("/getMacWithSecret") + @ApiOperation(value = "获取加密后的mac") + public BaseResponseInfo getMacWithSecret(){ + BaseResponseInfo res = new BaseResponseInfo(); + try { + String mac = ComputerInfo.getMacAddress(); + res.code = 200; + res.data = DigestUtils.md5DigestAsHex(mac.getBytes()); + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 根据插件标识判断是否存在 + * @param pluginIds 多个用逗号隔开 + * @return + */ + @GetMapping("/checkByPluginId") + @ApiOperation(value = "根据插件标识判断是否存在") + public BaseResponseInfo checkByTag(@RequestParam("pluginIds") String pluginIds){ + BaseResponseInfo res = new BaseResponseInfo(); + try { + boolean data = false; + if(StringUtil.isNotEmpty(pluginIds)) { + String[] pluginIdList = pluginIds.split(","); + List list = pluginOperator.getPluginInfo(); + for (PluginInfo pi : list) { + String info = pi.getPluginDescriptor().getPluginId(); + for (int i = 0; i < pluginIdList.length; i++) { + if (pluginIdList[i].equals(info)) { + data = true; + } + } + } + } + res.code = 200; + res.data = data; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionOrderController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionOrderController.java new file mode 100644 index 0000000..284ae69 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionOrderController.java @@ -0,0 +1,142 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.vo.ProductionOrderVo4List; +import com.reallin.smt.service.ProductionOrderService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * 生产工单管理 + */ +@RestController +@RequestMapping(value = "/productionOrder") +@Api(tags = {"生产工单"}) +public class ProductionOrderController extends BaseController { + + @Resource + private ProductionOrderService productionOrderService; + + @GetMapping(value = "/list") + @ApiOperation(value = "生产工单列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request) throws Exception { + String orderNumber = StringUtil.getInfo(search, "orderNumber"); + String sourceNumber = StringUtil.getInfo(search, "sourceNumber"); + String status = StringUtil.getInfo(search, "status"); + String priority = StringUtil.getInfo(search, "priority"); + String productMaterialParam = StringUtil.getInfo(search, "productMaterialParam"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + List list = productionOrderService.select(orderNumber, sourceNumber, status, + priority, productMaterialParam, beginTime, endTime); + return getDataTable(list); + } + + @PostMapping(value = "/createOrder") + @ApiOperation(value = "创建工单") + public String createOrder(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = productionOrderService.createOrder(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/updateOrder") + @ApiOperation(value = "修改工单") + public String updateOrder(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int update = productionOrderService.updateOrder(obj, request); + return returnStr(objectMap, update); + } + + @PostMapping(value = "/approveRelease") + @ApiOperation(value = "审批下达") + public String approveRelease(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Long id = obj.getLong("id"); + Map objectMap = new HashMap<>(); + int update = productionOrderService.approveRelease(id, request); + return returnStr(objectMap, update); + } + + @PostMapping(value = "/startProduce") + @ApiOperation(value = "开工") + public String startProduce(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Long id = obj.getLong("id"); + Map objectMap = new HashMap<>(); + int update = productionOrderService.startProduce(id, request); + return returnStr(objectMap, update); + } + + @PostMapping(value = "/closeOrder") + @ApiOperation(value = "关闭工单") + public String closeOrder(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Long id = obj.getLong("id"); + String closeReason = obj.getString("closeReason"); + Map objectMap = new HashMap<>(); + int update = productionOrderService.closeOrder(id, closeReason, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/deleteOrder") + @ApiOperation(value = "删除工单") + public String deleteOrder(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = productionOrderService.deleteOrder(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/batchDeleteOrder") + @ApiOperation(value = "批量删除工单") + public String batchDeleteOrder(@RequestParam("ids") String ids, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = productionOrderService.batchDeleteOrder(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/getOrderDetail") + @ApiOperation(value = "工单详情") + public BaseResponseInfo getOrderDetail(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + JSONObject detail = productionOrderService.getOrderDetail(id); + res.code = 200; + res.data = detail; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + @GetMapping(value = "/checkIsNumberExist") + @ApiOperation(value = "检查工单号是否存在") + public String checkIsNumberExist(@RequestParam Long id, + @RequestParam(value = "orderNumber", required = false) String orderNumber, + HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int exist = productionOrderService.checkNumberExist(id, orderNumber); + if (exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionReportController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionReportController.java new file mode 100644 index 0000000..63b3ba7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionReportController.java @@ -0,0 +1,89 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.vo.ProductionReportVo4List; +import com.reallin.smt.service.ProductionReportService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * 完工报告管理 + */ +@RestController +@RequestMapping(value = "/productionReport") +@Api(tags = {"完工报工"}) +public class ProductionReportController extends BaseController { + + @Resource + private ProductionReportService productionReportService; + + @GetMapping(value = "/list") + @ApiOperation(value = "完工报告列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request) throws Exception { + String reportNumber = StringUtil.getInfo(search, "reportNumber"); + String orderNumber = StringUtil.getInfo(search, "orderNumber"); + String auditStatus = StringUtil.getInfo(search, "auditStatus"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + List list = productionReportService.select(reportNumber, orderNumber, + auditStatus, beginTime, endTime); + return getDataTable(list); + } + + @PostMapping(value = "/addReport") + @ApiOperation(value = "新增完工报告") + public String addReport(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = productionReportService.addReport(obj, request); + return returnStr(objectMap, insert); + } + + @PostMapping(value = "/auditReport") + @ApiOperation(value = "审核完工报告") + public String auditReport(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Long id = obj.getLong("id"); + String auditResult = obj.getString("auditResult"); + Map objectMap = new HashMap<>(); + int update = productionReportService.auditReport(id, auditResult, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/deleteReport") + @ApiOperation(value = "删除完工报告") + public String deleteReport(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = productionReportService.deleteReport(id, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/getDetail") + @ApiOperation(value = "完工报告详情") + public BaseResponseInfo getDetail(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + JSONObject detail = productionReportService.getDetail(id); + res.code = 200; + res.data = detail; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionRequisitionController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionRequisitionController.java new file mode 100644 index 0000000..3fb82f5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/ProductionRequisitionController.java @@ -0,0 +1,109 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.vo.ProductionRequisitionVo4List; +import com.reallin.smt.service.ProductionRequisitionService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * 生产领料管理 + */ +@RestController +@RequestMapping(value = "/productionRequisition") +@Api(tags = {"生产领料"}) +public class ProductionRequisitionController extends BaseController { + + @Resource + private ProductionRequisitionService productionRequisitionService; + + @GetMapping(value = "/list") + @ApiOperation(value = "领料单列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request) throws Exception { + String requisitionNumber = StringUtil.getInfo(search, "requisitionNumber"); + String orderNumber = StringUtil.getInfo(search, "orderNumber"); + String status = StringUtil.getInfo(search, "status"); + Long depotId = StringUtil.parseStrLong(StringUtil.getInfo(search, "depotId")); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + List list = productionRequisitionService.select(requisitionNumber, + orderNumber, status, depotId, beginTime, endTime); + return getDataTable(list); + } + + @PostMapping(value = "/generateRequisition") + @ApiOperation(value = "从工单生成领料单") + public String generateRequisition(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Long orderId = obj.getLong("orderId"); + Long depotId = obj.getLong("depotId"); + Map objectMap = new HashMap<>(); + int insert = productionRequisitionService.generateRequisition(orderId, depotId, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/updateRequisition") + @ApiOperation(value = "修改领料单") + public String updateRequisition(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int update = productionRequisitionService.updateRequisition(obj, request); + return returnStr(objectMap, update); + } + + @PostMapping(value = "/confirmIssue") + @ApiOperation(value = "确认发料") + public String confirmIssue(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Long id = obj.getLong("id"); + Map objectMap = new HashMap<>(); + int update = productionRequisitionService.confirmIssue(id, request); + return returnStr(objectMap, update); + } + + @PostMapping(value = "/rejectRequisition") + @ApiOperation(value = "驳回领料单") + public String rejectRequisition(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Long id = obj.getLong("id"); + String rejectReason = obj.getString("rejectReason"); + Map objectMap = new HashMap<>(); + int update = productionRequisitionService.rejectRequisition(id, rejectReason, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/deleteRequisition") + @ApiOperation(value = "删除领料单") + public String deleteRequisition(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = productionRequisitionService.deleteRequisition(id, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/getDetail") + @ApiOperation(value = "领料单详情") + public BaseResponseInfo getDetail(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + JSONObject detail = productionRequisitionService.getDetail(id); + res.code = 200; + res.data = detail; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/RoleController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/RoleController.java new file mode 100644 index 0000000..a480baf --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/RoleController.java @@ -0,0 +1,178 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Role; +import com.reallin.smt.datasource.entities.RoleEx; +import com.reallin.smt.service.RoleService; +import com.reallin.smt.service.UserBusinessService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji sheng hua jshERP + */ +@RestController +@RequestMapping(value = "/role") +@Api(tags = {"角色管理"}) +public class RoleController extends BaseController { + private Logger logger = LoggerFactory.getLogger(RoleController.class); + + @Resource + private RoleService roleService; + + @Resource + private UserBusinessService userBusinessService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Role role = roleService.getRole(id); + Map objectMap = new HashMap<>(); + if(role != null) { + objectMap.put("info", role); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + String description = StringUtil.getInfo(search, "description"); + List list = roleService.select(name, description); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = roleService.insertRole(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = roleService.updateRole(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = roleService.deleteRole(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = roleService.batchDeleteRole(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = roleService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 角色对应应用显示 + * @param request + * @return + */ + @GetMapping(value = "/findUserRole") + @ApiOperation(value = "查询用户的角色") + public JSONArray findUserRole(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, + HttpServletRequest request)throws Exception { + JSONArray arr = new JSONArray(); + try { + //获取权限信息 + String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId); + List dataList = roleService.findUserRole(); + if (null != dataList) { + for (Role role : dataList) { + JSONObject item = new JSONObject(); + item.put("id", role.getId()); + item.put("text", role.getName()); + Boolean flag = ubValue.contains("[" + role.getId().toString() + "]"); + if (flag) { + item.put("checked", true); + } + arr.add(item); + } + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return arr; + } + + @GetMapping(value = "/allList") + @ApiOperation(value = "查询全部角色列表") + public List allList(HttpServletRequest request)throws Exception { + return roleService.allList(); + } + + @GetMapping(value = "/tenantRoleList") + @ApiOperation(value = "查询租户角色列表") + public List tenantRoleList(HttpServletRequest request)throws Exception { + return roleService.tenantRoleList(); + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = roleService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/SaleShipmentController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/SaleShipmentController.java new file mode 100644 index 0000000..008154b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/SaleShipmentController.java @@ -0,0 +1,130 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.SaleShipmentItem; +import com.reallin.smt.datasource.vo.SaleShipmentVo4List; +import com.reallin.smt.service.SaleShipmentService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +@RestController +@RequestMapping(value = "/saleShipment") +@Api(tags = {"销售发货管理"}) +public class SaleShipmentController extends BaseController { + + @Resource + private SaleShipmentService saleShipmentService; + + @GetMapping(value = "/list") + @ApiOperation(value = "发货通知列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request) { + String shipmentNumber = StringUtil.getInfo(search, "shipmentNumber"); + String saleOutNumber = StringUtil.getInfo(search, "saleOutNumber"); + String saleOrderNumber = StringUtil.getInfo(search, "saleOrderNumber"); + String status = StringUtil.getInfo(search, "status"); + String logisticsNo = StringUtil.getInfo(search, "logisticsNo"); + String beginTime = StringUtil.getInfo(search, "beginTime"); + String endTime = StringUtil.getInfo(search, "endTime"); + List list = saleShipmentService.select(shipmentNumber, saleOutNumber, saleOrderNumber, + status, logisticsNo, beginTime, endTime); + return getDataTable(list); + } + + @GetMapping(value = "/detail") + @ApiOperation(value = "发货通知详情") + public BaseResponseInfo getDetail(@RequestParam("id") Long id, HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + res.code = 200; + res.data = saleShipmentService.getDetail(id); + return res; + } + + @GetMapping(value = "/saleOutItems") + @ApiOperation(value = "销售出库可发货明细") + public BaseResponseInfo getSaleOutItems(@RequestParam("saleOutId") Long saleOutId, HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + List rows = saleShipmentService.getSaleOutItems(saleOutId); + JSONObject data = new JSONObject(); + data.put("rows", rows); + res.code = 200; + res.data = data; + return res; + } + + @GetMapping(value = "/deliveryPlanItems") + @ApiOperation(value = "交货计划可发货明细") + public BaseResponseInfo getDeliveryPlanItems(@RequestParam("deliveryPlanId") Long deliveryPlanId, HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + List rows = saleShipmentService.getDeliveryPlanItems(deliveryPlanId); + JSONObject data = new JSONObject(); + data.put("rows", rows); + res.code = 200; + res.data = data; + return res; + } + + @PostMapping(value = "/createFromSaleOut") + @ApiOperation(value = "从销售出库创建发货通知") + public String createFromSaleOut(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = saleShipmentService.createFromSaleOut(obj, request); + return returnStr(objectMap, insert); + } + + @PostMapping(value = "/createFromDeliveryPlan") + @ApiOperation(value = "从交货计划创建发货通知") + public String createFromDeliveryPlan(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = saleShipmentService.createFromDeliveryPlan(obj, request); + return returnStr(objectMap, insert); + } + + @PostMapping(value = "/batchCreateFromSaleOut") + @ApiOperation(value = "批量从销售出库创建发货通知") + public String batchCreateFromSaleOut(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int insert = saleShipmentService.batchCreateFromSaleOut(obj, request); + objectMap.put("message", "已生成" + insert + "张发货通知单"); + return returnStr(objectMap, insert); + } + + @PostMapping(value = "/approve") + @ApiOperation(value = "审批发货通知") + public String approve(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int update = saleShipmentService.approve(obj.getLong("id"), obj.getBoolean("pass"), + obj.getString("approveRemark"), request); + return returnStr(objectMap, update); + } + + @PostMapping(value = "/confirmShipment") + @ApiOperation(value = "确认实际发货") + public String confirmShipment(@RequestBody JSONObject obj, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int update = saleShipmentService.confirmShipment(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除发货通知") + public String deleteShipment(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + int delete = saleShipmentService.deleteShipment(id, request); + return returnStr(objectMap, delete); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/SequenceController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/SequenceController.java new file mode 100644 index 0000000..f2715b7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/SequenceController.java @@ -0,0 +1,53 @@ +package com.reallin.smt.controller; + +import com.reallin.smt.service.SequenceService; +import com.reallin.smt.utils.BaseResponseInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +/** + * @author ji-sheng-hua 752*718*920 + */ +@RestController +@RequestMapping(value = "/sequence") +@Api(tags = {"单据编号"}) +public class SequenceController { + private Logger logger = LoggerFactory.getLogger(SequenceController.class); + + @Resource + private SequenceService sequenceService; + + /** + * 单据编号生成接口 + * @param request + * @return + */ + @GetMapping(value = "/buildNumber") + @ApiOperation(value = "单据编号生成接口") + public BaseResponseInfo buildNumber(HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap(); + try { + String number = sequenceService.buildOnlyNumber(); + map.put("defaultNumber", number); + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/SerialNumberController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/SerialNumberController.java new file mode 100644 index 0000000..2ab4cbd --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/SerialNumberController.java @@ -0,0 +1,133 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.datasource.entities.DepotItem; +import com.reallin.smt.datasource.entities.SerialNumberEx; +import com.reallin.smt.service.DepotHeadService; +import com.reallin.smt.service.DepotItemService; +import com.reallin.smt.service.SerialNumberService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.StringUtil; +import com.reallin.smt.utils.Tools; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * Description + * @Author: jsh + * @Date: 2019/1/22 10:29 + */ +@RestController +@RequestMapping(value = "/serialNumber") +@Api(tags = {"序列号管理"}) +public class SerialNumberController { + private Logger logger = LoggerFactory.getLogger(SerialNumberController.class); + + @Resource + private SerialNumberService serialNumberService; + @Resource + private DepotHeadService depotHeadService; + @Resource + private DepotItemService depotItemService; + + /** + * create by: jsh + * @return java.lang.Object + */ + @PostMapping("/batAddSerialNumber") + @ApiOperation(value = "批量添加序列号") + public String batAddSerialNumber(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception{ + Map objectMap = new HashMap<>(); + String materialCode = jsonObject.getString("materialCode"); + String serialNumberPrefix = jsonObject.getString("serialNumberPrefix"); + Integer batAddTotal = jsonObject.getInteger("batAddTotal"); + String remark = jsonObject.getString("remark"); + int insert = serialNumberService.batAddSerialNumber(materialCode,serialNumberPrefix,batAddTotal,remark); + return returnStr(objectMap, insert); + } + + /** + * 获取序列号商品 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/getEnableSerialNumberList") + @ApiOperation(value = "获取序列号商品") + public BaseResponseInfo getEnableSerialNumberList(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + Map map = new HashMap<>(); + try { + String name = jsonObject.getString("name"); + Long depotItemId = jsonObject.getLong("depotItemId"); + Long depotId = jsonObject.getLong("depotId"); + String barCode = jsonObject.getString("barCode"); + Integer currentPage = jsonObject.getInteger("page"); + Integer pageSize = jsonObject.getInteger("rows"); + String number = ""; + String [] nameArray = null; + if(depotItemId != null) { + DepotItem depotItem = depotItemService.getDepotItem(depotItemId); + number = depotHeadService.getDepotHead(depotItem.getHeaderId()).getNumber(); + } + // 批量查询序列号时,name可能为多个 + if(StringUtil.isNotEmpty(name)) { + name = name.replace(",",","); + if(name.contains(",")) { + nameArray = name.split(","); + name = null; + } + } + List list = serialNumberService.getEnableSerialNumberList(number, name, nameArray, depotId, barCode, (currentPage-1)*pageSize, pageSize); + for(SerialNumberEx serialNumberEx: list) { + serialNumberEx.setCreateTimeStr(Tools.getCenternTime(serialNumberEx.getCreateTime())); + } + Long total = serialNumberService.getEnableSerialNumberCount(number, name, nameArray, depotId, barCode); + List missList = new ArrayList<>(); + if(nameArray!=null && nameArray.length>0) { + List allList = serialNumberService.getEnableSerialNumberList(number, name, nameArray, depotId, barCode, null, null); + if(allList.size() < nameArray.length) { + //说明查出的比查询条件里面的序列号少,此时需要寻找出缺少的序列号 + for (String item : nameArray) { + boolean isHave = false; + for (SerialNumberEx serialNumberEx : allList) { + if (item.equals(serialNumberEx.getSerialNumber())) { + isHave = true; + break; + } + } + if (!isHave) { + missList.add(item); + } + } + } + } + map.put("rows", list); + map.put("total", total); + if(!missList.isEmpty()) { + //列出未查询到的序列号 + map.put("missInfo", String.join(",", missList)); + } + res.code = 200; + res.data = map; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/SmtInboundController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/SmtInboundController.java new file mode 100644 index 0000000..e13160c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/SmtInboundController.java @@ -0,0 +1,88 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.datasource.entities.DepotHeadVo4Body; +import com.reallin.smt.service.SmtInboundService; +import com.reallin.smt.utils.BaseResponseInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/smtInbound") +@Api(tags = "SMT其他入库") +public class SmtInboundController { + @Resource + private SmtInboundService smtInboundService; + + @GetMapping("/nextNumber") + @ApiOperation("生成SMT单据编号") + public BaseResponseInfo nextNumber(@RequestParam(required = false) String businessDate) { + return ok(single("number", smtInboundService.nextNumber(businessDate))); + } + + @PostMapping("/save") + @ApiOperation("新增SMT其他入库") + public BaseResponseInfo save(@RequestBody DepotHeadVo4Body body, HttpServletRequest request) { + JSONObject info = JSONObject.parseObject(body.getInfo()); + JSONArray rows = JSONArray.parseArray(body.getRows()); + Long id = smtInboundService.save(info, rows, smtInboundService.creatorId(request)); + return ok(single("id", id)); + } + + @PutMapping("/save") + @ApiOperation("修改SMT其他入库") + public BaseResponseInfo update(@RequestBody DepotHeadVo4Body body, HttpServletRequest request) { + return save(body, request); + } + + @GetMapping("/details") + @ApiOperation("查询SMT其他入库明细") + public BaseResponseInfo details(@RequestParam Long headerId) { + List> rows = smtInboundService.details(headerId); + Map data = new HashMap<>(); + data.put("rows", rows); + data.put("total", rows.size()); + return ok(data); + } + + @PostMapping("/importExcel") + @ApiOperation("导入SMT出库单Excel") + public BaseResponseInfo importExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws Exception { + return ok(smtInboundService.importExcel(file, smtInboundService.creatorId(request))); + } + + @GetMapping("/template") + @ApiOperation("下载SMT出库单导入模板") + public void template(HttpServletResponse response) throws Exception { + smtInboundService.exportTemplate(response); + } + + @PostMapping("/sync") + @ApiOperation("外部平台JSON同步") + public BaseResponseInfo sync(@RequestBody List payload, HttpServletRequest request) { + return ok(smtInboundService.sync(payload, smtInboundService.creatorId(request))); + } + + private BaseResponseInfo ok(Object data) { + BaseResponseInfo response = new BaseResponseInfo(); + response.code = 200; + response.data = data; + return response; + } + + private Map single(String key, Object value) { + Map data = new HashMap<>(); + data.put(key, value); + return data; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/SupplierController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/SupplierController.java new file mode 100644 index 0000000..8f050a9 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/SupplierController.java @@ -0,0 +1,545 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Supplier; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.vo.SupplierSimple; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.service.SupplierService; +import com.reallin.smt.service.SystemConfigService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.service.UserBusinessService; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji|sheng|hua SMT + */ +@RestController +@RequestMapping(value = "/supplier") +@Api(tags = {"商家管理"}) +public class SupplierController extends BaseController { + private Logger logger = LoggerFactory.getLogger(SupplierController.class); + + @Resource + private SupplierService supplierService; + + @Resource + private UserBusinessService userBusinessService; + + @Resource + private SystemConfigService systemConfigService; + + @Resource + private UserService userService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Supplier supplier = supplierService.getSupplier(id); + Map objectMap = new HashMap<>(); + if(supplier != null) { + objectMap.put("info", supplier); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String supplier = StringUtil.getInfo(search, "supplier"); + String type = StringUtil.getInfo(search, "type"); + String contacts = StringUtil.getInfo(search, "contacts"); + String phonenum = StringUtil.getInfo(search, "phonenum"); + String telephone = StringUtil.getInfo(search, "telephone"); + String categoryIdStr = StringUtil.getInfo(search, "categoryId"); + Long categoryId = (categoryIdStr != null && !categoryIdStr.isEmpty()) ? Long.parseLong(categoryIdStr) : null; + List list = supplierService.select(supplier, type, contacts, phonenum, telephone, categoryId); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = supplierService.insertSupplier(obj, request); + if(insert > 0 && obj.containsKey("id")) { + objectMap.put("id", obj.getLong("id")); + } + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = supplierService.updateSupplier(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = supplierService.deleteSupplier(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = supplierService.batchDeleteSupplier(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = supplierService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + @GetMapping(value = "/checkIsNameAndTypeExist") + @ApiOperation(value = "检查名称和类型是否存在") + public String checkIsNameAndTypeExist(@RequestParam Long id, + @RequestParam(value ="name", required = false) String name, + @RequestParam(value ="type") String type, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = supplierService.checkIsNameAndTypeExist(id, name, type); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 查找客户信息-下拉框 + * @param request + * @return + */ + @PostMapping(value = "/findBySelect_cus") + @ApiOperation(value = "查找客户信息") + public JSONArray findBySelectCus(@RequestBody JSONObject jsonObject, + HttpServletRequest request) { + JSONArray arr = new JSONArray(); + try { + String key = jsonObject.get("key")!=null ? jsonObject.getString("key") : null; + Long organId = jsonObject.get("organId")!=null ? jsonObject.getLong("organId") : null; + Integer limit = jsonObject.get("limit")!=null ? jsonObject.getInteger("limit") : null; + String type = "UserCustomer"; + Long userId = userService.getUserId(request); + //获取权限信息 + String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, userId.toString()); + List supplierList = supplierService.findBySelectCus(key, organId, limit); + JSONArray dataArray = new JSONArray(); + if (null != supplierList) { + boolean customerFlag = systemConfigService.getCustomerFlag(); + for (Supplier supplier : supplierList) { + JSONObject item = new JSONObject(); + Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]"); + if (!customerFlag || flag) { + item.put("id", supplier.getId()); + item.put("supplier", supplier.getSupplier()); //客户名称 + item.put("categoryId", supplier.getCategoryId()); + dataArray.add(item); + } + } + } + arr = dataArray; + } catch(Exception e){ + logger.error(e.getMessage(), e); + } + return arr; + } + + /** + * 查找供应商信息-下拉框 + * @param request + * @return + */ + @PostMapping(value = "/findBySelect_sup") + @ApiOperation(value = "查找供应商信息") + public JSONArray findBySelectSup(@RequestBody JSONObject jsonObject, + HttpServletRequest request) throws Exception{ + JSONArray arr = new JSONArray(); + try { + String key = jsonObject.get("key")!=null ? jsonObject.getString("key") : null; + Long organId = jsonObject.get("organId")!=null ? jsonObject.getLong("organId") : null; + Integer limit = jsonObject.get("limit")!=null ? jsonObject.getInteger("limit") : null; + List supplierList = supplierService.findBySelectSup(key, organId, limit); + JSONArray dataArray = new JSONArray(); + if (null != supplierList) { + for (Supplier supplier : supplierList) { + JSONObject item = new JSONObject(); + item.put("id", supplier.getId()); + //供应商名称 + item.put("supplier", supplier.getSupplier()); + dataArray.add(item); + } + } + arr = dataArray; + } catch(Exception e){ + logger.error(e.getMessage(), e); + } + return arr; + } + + /** + * 查找往来单位,含供应商和客户信息-下拉框 + * @param request + * @return + */ + @PostMapping(value = "/findBySelect_organ") + @ApiOperation(value = "查找往来单位,含供应商和客户信息") + public JSONArray findBySelectOrgan(@RequestBody JSONObject jsonObject, + HttpServletRequest request) throws Exception{ + JSONArray arr = new JSONArray(); + try { + String key = jsonObject.get("key")!=null ? jsonObject.getString("key") : null; + Long organId = jsonObject.get("organId")!=null ? jsonObject.getLong("organId") : null; + Integer limit = jsonObject.get("limit")!=null ? jsonObject.getInteger("limit") : null; + JSONArray dataArray = new JSONArray(); + //1、获取供应商信息 + List supplierList = supplierService.findBySelectSup(key, organId, limit); + if (null != supplierList) { + for (Supplier supplier : supplierList) { + JSONObject item = new JSONObject(); + item.put("id", supplier.getId()); + item.put("supplier", supplier.getSupplier() + "[供应商]"); //供应商名称 + dataArray.add(item); + } + } + //2、获取客户信息 + String type = "UserCustomer"; + Long userId = userService.getUserId(request); + String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, userId.toString()); + List customerList = supplierService.findBySelectCus(key, organId, limit); + if (null != customerList) { + boolean customerFlag = systemConfigService.getCustomerFlag(); + for (Supplier supplier : customerList) { + JSONObject item = new JSONObject(); + Boolean flag = ubValue.contains("[" + supplier.getId().toString() + "]"); + if (!customerFlag || flag) { + item.put("id", supplier.getId()); + item.put("supplier", supplier.getSupplier() + "[客户]"); //客户名称 + dataArray.add(item); + } + } + } + arr = dataArray; + } catch(Exception e){ + logger.error(e.getMessage(), e); + } + return arr; + } + + /** + * 查找会员信息-下拉框 + * @param request + * @return + */ + @PostMapping(value = "/findBySelect_retail") + @ApiOperation(value = "查找会员信息") + public JSONArray findBySelectRetail(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + JSONArray arr = new JSONArray(); + try { + String key = jsonObject.get("key")!=null ? jsonObject.getString("key") : null; + Long organId = jsonObject.get("organId")!=null ? jsonObject.getLong("organId") : null; + Integer limit = jsonObject.get("limit")!=null ? jsonObject.getInteger("limit") : null; + List supplierList = supplierService.findBySelectRetail(key, organId, limit); + JSONArray dataArray = new JSONArray(); + if (null != supplierList) { + for (Supplier supplier : supplierList) { + JSONObject item = new JSONObject(); + item.put("id", supplier.getId()); + //客户名称 + item.put("supplier", supplier.getSupplier()); + item.put("advanceIn", supplier.getAdvanceIn()); //预付款金额 + dataArray.add(item); + } + } + arr = dataArray; + } catch(Exception e){ + logger.error(e.getMessage(), e); + } + return arr; + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = supplierService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 获取全部客户信息 + * @param search + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getAllCustomer") + @ApiOperation(value = "获取全部客户信息") + public TableDataInfo getAllCustomer(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + List list = supplierService.getAllCustomer(); + return getDataTable(list); + } + + /** + * 获取用户对应客户的关系数组 + * @param type + * @param keyId + * @param request + * @return + */ + @GetMapping(value = "/getUserCustomerValue") + @ApiOperation(value = "获取用户对应客户的关系数组") + public JSONObject getUserCustomerValue(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, + HttpServletRequest request) throws Exception{ + JSONObject obj = new JSONObject(); + try { + //获取权限信息 + String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId); + if(StringUtil.isNotEmpty(ubValue)) { + String ubStr = ubValue.substring(1, ubValue.length()-1); + String [] ubArr = ubStr.split("]\\["); + Long[] ubLongArray = new Long[ubArr.length]; + for (int i = 0; i < ubArr.length; i++) { + ubLongArray[i] = Long.parseLong(ubArr[i]); + } + obj.put("data", ubLongArray); + } else { + obj.put("data", null); + } + obj.put("code", 200); + } catch (Exception e) { + obj.put("code", 500); + obj.put("data", "服务内部错误"); + logger.error(e.getMessage(), e); + } + return obj; + } + + /** + * 根据客户或供应商查询期初、期初已收等信息 + * @param organId + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getBeginNeedByOrganId") + @ApiOperation(value = "根据客户或供应商查询期初、期初已收等信息") + public BaseResponseInfo getBeginNeedByOrganId(@RequestParam("organId") Long organId, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map map = supplierService.getBeginNeedByOrganId(organId); + res.code = 200; + res.data = map; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 导入供应商 + * @param file + * @param request + * @param response + * @return + */ + @PostMapping(value = "/importVendor") + @ApiOperation(value = "导入供应商") + public BaseResponseInfo importVendor(MultipartFile file, + HttpServletRequest request, HttpServletResponse response) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + supplierService.checkFileExt(file); + supplierService.importVendor(file, request); + res.code = 200; + res.data = "导入成功"; + } catch(BusinessRunTimeException e) { + res.code = e.getCode(); + res.data = e.getData().get("message"); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "导入失败"; + } + return res; + } + + /** + * 导入客户 + * @param file + * @param request + * @param response + * @return + */ + @PostMapping(value = "/importCustomer") + @ApiOperation(value = "导入客户") + public BaseResponseInfo importCustomer(MultipartFile file, + HttpServletRequest request, HttpServletResponse response) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + supplierService.checkFileExt(file); + supplierService.importCustomer(file, request); + res.code = 200; + res.data = "导入成功"; + } catch(BusinessRunTimeException e) { + res.code = e.getCode(); + res.data = e.getData().get("message"); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "导入失败"; + } + return res; + } + + /** + * 导入会员 + * @param file + * @param request + * @param response + * @return + */ + @PostMapping(value = "/importMember") + @ApiOperation(value = "导入会员") + public BaseResponseInfo importMember(MultipartFile file, + HttpServletRequest request, HttpServletResponse response) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + supplierService.checkFileExt(file); + supplierService.importMember(file, request); + res.code = 200; + res.data = "导入成功"; + } catch(BusinessRunTimeException e) { + res.code = e.getCode(); + res.data = e.getData().get("message"); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "导入失败"; + } + return res; + } + + /** + * 生成excel表格 + * @param supplier + * @param type + * @param phonenum + * @param telephone + * @param request + * @param response + * @return + */ + @GetMapping(value = "/exportExcel") + public void exportExcel(@RequestParam(value = "supplier", required = false) String supplier, + @RequestParam("type") String type, + @RequestParam(value = "phonenum", required = false) String phonenum, + @RequestParam(value = "telephone", required = false) String telephone, + HttpServletRequest request, HttpServletResponse response) { + try { + List dataList = supplierService.findByAll(supplier, type, phonenum, telephone); + File file = supplierService.exportExcel(dataList, type); + ExcelUtils.downloadExcel(file, file.getName(), response); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } + + /** + * 批量设置会员当前的预付款 + * @param jsonObject + * @param request + * @return + * @throws Exception + */ + @PostMapping(value = "/batchSetAdvanceIn") + @ApiOperation(value = "批量设置会员当前的预付款") + public String batchSetAdvanceIn(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = supplierService.batchSetAdvanceIn(ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/getInfoByName") + @ApiOperation(value = "根据名称获取信息") + public String getInfoByName(@RequestParam("name") String name, + @RequestParam("type") String type, + HttpServletRequest request) throws Exception { + Supplier supplier = supplierService.getInfoByName(name, type); + Map objectMap = new HashMap<>(); + if(supplier != null) { + objectMap.put("info", supplier); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/SysDictDataController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/SysDictDataController.java new file mode 100644 index 0000000..0b0f0e5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/SysDictDataController.java @@ -0,0 +1,124 @@ +package com.reallin.smt.controller; + +import com.reallin.smt.base.AjaxResult; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.SysDictData; +import com.reallin.smt.service.SysDictDataService; +import com.reallin.smt.service.SysDictTypeService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.ApiOperation; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * 数据字典信息 + * + * @author jishenghua + */ +@RestController +@RequestMapping("/dict/data") +public class SysDictDataController extends BaseController { + + @Resource + private SysDictDataService dictDataService; + + @Resource + private SysDictTypeService dictTypeService; + + @Resource + private UserService userService; + + @GetMapping("/list") + @ApiOperation(value = "查询列表") + public TableDataInfo list(@RequestParam(value = Constants.SEARCH, required = false) String search) { + SysDictData dictData = new SysDictData(); + dictData.setDictType(StringUtil.getInfo(search, "dictType")); + dictData.setDictLabel(StringUtil.getInfo(search, "dictLabel")); + dictData.setStatus(StringUtil.getInfo(search, "status")); + List list = dictDataService.selectDictDataList(dictData); + return getDataTable(list); + } + + /** + * 查询字典数据详细 + */ + @GetMapping(value = "/{dictCode}") + @ApiOperation(value = "查询字典数据详细") + public AjaxResult getInfo(@PathVariable Long dictCode) { + return success(dictDataService.selectDictDataById(dictCode)); + } + + /** + * 根据字典类型查询字典数据信息 + */ + @GetMapping(value = "/type/{dictType}") + @ApiOperation(value = "根据字典类型查询字典数据信息") + public AjaxResult dictType(@PathVariable String dictType) { + List data = dictTypeService.selectDictDataByType(dictType); + if (StringUtil.isNull(data)) + { + data = new ArrayList(); + } + return success(data); + } + + /** + * 新增字典数据 + */ + @ApiOperation(value = "新增字典数据") + @PostMapping(value = "/add") + public String add(@Validated @RequestBody SysDictData dict) throws Exception { + Map objectMap = new HashMap<>(); + dict.setCreateBy(userService.getCurrentUser().getLoginName()); + return returnStr(objectMap, dictDataService.insertDictData(dict)); + } + + /** + * 修改保存字典数据 + */ + @ApiOperation(value = "修改保存字典数据") + @PutMapping(value = "/update") + public String edit(@Validated @RequestBody SysDictData dict) throws Exception { + Map objectMap = new HashMap<>(); + dict.setUpdateBy(userService.getCurrentUser().getLoginName()); + return returnStr(objectMap, dictDataService.updateDictData(dict)); + } + + /** + * 删除字典数据 + */ + @DeleteMapping("/{dictCodes}") + @ApiOperation(value = "删除字典数据") + public AjaxResult remove(@PathVariable Long[] dictCodes) { + dictDataService.deleteDictDataByIds(dictCodes); + return success(); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = dictDataService.deleteDictData(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = dictDataService.batchDeleteDictData(ids, request); + return returnStr(objectMap, delete); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/SysDictTypeController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/SysDictTypeController.java new file mode 100644 index 0000000..fccc64a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/SysDictTypeController.java @@ -0,0 +1,129 @@ +package com.reallin.smt.controller; + +import com.reallin.smt.base.AjaxResult; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.SysDictType; +import com.reallin.smt.service.SysDictTypeService; +import com.reallin.smt.service.UserService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * 数据字典信息 + * + * @author jishenghua + */ +@Api(tags = "字典管理") +@RestController +@RequestMapping("/dict/type") +public class SysDictTypeController extends BaseController { + + @Resource + private SysDictTypeService dictTypeService; + + @Resource + private UserService userService; + + @ApiOperation("获取字典分页列表") + @GetMapping("/list") + public TableDataInfo list(@RequestParam(value = Constants.SEARCH, required = false) String search) { + SysDictType dictType = new SysDictType(); + dictType.setDictName(StringUtil.getInfo(search, "dictName")); + dictType.setDictType(StringUtil.getInfo(search, "dictType")); + dictType.setStatus(StringUtil.getInfo(search, "status")); + Map params = new HashMap<>(); + params.put("beginTime", StringUtil.getInfo(search, "beginTime")); + params.put("endTime", StringUtil.getInfo(search, "endTime")); + dictType.setParams(params); + List list = dictTypeService.selectDictTypeList(dictType); + return getDataTable(list); + } + + /** + * 查询字典类型详细 + */ + @ApiOperation("查询字典类型详细") + @GetMapping(value = "/{dictId}") + public AjaxResult getInfo(@PathVariable Long dictId) { + return success(dictTypeService.selectDictTypeById(dictId)); + } + + /** + * 新增字典类型 + */ + @ApiOperation("新增字典类型") + @PostMapping(value = "/add") + public String add(@Validated @RequestBody SysDictType dict) throws Exception { + Map objectMap = new HashMap<>(); + if (!dictTypeService.checkDictTypeUnique(dict)) { + return returnJson(objectMap, "新增字典'" + dict.getDictName() + "'失败,字典类型已存在", ErpInfo.ERROR.code); + } + dict.setCreateBy(userService.getCurrentUser().getLoginName()); + return returnStr(objectMap, dictTypeService.insertDictType(dict)); + } + + /** + * 修改字典类型 + */ + @ApiOperation("修改字典类型") + @PutMapping(value = "/update") + public String edit(@Validated @RequestBody SysDictType dict) throws Exception { + Map objectMap = new HashMap<>(); + if (!dictTypeService.checkDictTypeUnique(dict)) { + return returnJson(objectMap, "修改字典'" + dict.getDictName() + "'失败,字典类型已存在", ErpInfo.ERROR.code); + } + dict.setUpdateBy(userService.getCurrentUser().getLoginName()); + return returnStr(objectMap, dictTypeService.updateDictType(dict)); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = dictTypeService.deleteDictType(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = dictTypeService.batchDeleteDictType(ids, request); + return returnStr(objectMap, delete); + } + + /** + * 刷新字典缓存 + */ + @ApiOperation("刷新字典缓存") + @DeleteMapping("/refreshCache") + public AjaxResult refreshCache() { + dictTypeService.resetDictCache(); + return success(); + } + + /** + * 获取字典选择框列表 + */ + @ApiOperation("获取字典选择框列表") + @GetMapping("/optionselect") + public AjaxResult optionselect() { + List dictTypes = dictTypeService.selectDictTypeAll(); + return success(dictTypes); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/SystemConfigController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/SystemConfigController.java new file mode 100644 index 0000000..902492f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/SystemConfigController.java @@ -0,0 +1,370 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.SystemConfig; +import com.reallin.smt.service.SystemConfigService; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.AntPathMatcher; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.HandlerMapping; + +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * Description + * @Author: jishenghua + * @Date: 2021-3-13 0:01 + */ +@RestController +@RequestMapping(value = "/systemConfig") +@Api(tags = {"系统参数"}) +public class SystemConfigController extends BaseController { + private Logger logger = LoggerFactory.getLogger(SystemConfigController.class); + + @Resource + private SystemConfigService systemConfigService; + + @Value(value="${file.uploadType}") + private Long fileUploadType; + + @Value(value="${file.path}") + private String filePath; + + @Value(value="${spring.servlet.multipart.max-file-size}") + private Long maxFileSize; + + @Value(value="${spring.servlet.multipart.max-request-size}") + private Long maxRequestSize; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + SystemConfig systemConfig = systemConfigService.getSystemConfig(id); + Map objectMap = new HashMap<>(); + if(systemConfig != null) { + objectMap.put("info", systemConfig); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String companyName = StringUtil.getInfo(search, "companyName"); + List list = systemConfigService.select(companyName); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = systemConfigService.insertSystemConfig(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = systemConfigService.updateSystemConfig(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = systemConfigService.deleteSystemConfig(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = systemConfigService.batchDeleteSystemConfig(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = systemConfigService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 获取当前租户的配置信息 + * @param request + * @return + */ + @GetMapping(value = "/getCurrentInfo") + @ApiOperation(value = "获取当前租户的配置信息") + public BaseResponseInfo getCurrentInfo(HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try{ + List list = systemConfigService.getSystemConfig(); + res.code = 200; + if(list.size()>0) { + res.data = list.get(0); + } + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 获取文件大小限制 + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/fileSizeLimit") + @ApiOperation(value = "获取文件大小限制") + public BaseResponseInfo fileSizeLimit(HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try{ + Long limit = 0L; + if(maxFileSize UTF-8 进行编码转换 + String imgPath = extractPathFromPattern(request); + if(StringUtil.isEmpty(imgPath) || imgPath=="null"){ + return; + } + // 其余处理略 + InputStream inputStream = null; + OutputStream outputStream = null; + try { + imgPath = imgPath.replace("..", ""); + if (imgPath.endsWith(",")) { + imgPath = imgPath.substring(0, imgPath.length() - 1); + } + String fileUrl = ""; + if(fileUploadType == 1) { + fileUrl = systemConfigService.getFileUrlLocal(imgPath); + inputStream = new BufferedInputStream(new FileInputStream(fileUrl)); + } else if(fileUploadType == 2) { + fileUrl = systemConfigService.getFileUrlAliOss(imgPath); + URL url = new URL(fileUrl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setConnectTimeout(5 * 1000); + inputStream = conn.getInputStream();// 通过输入流获取图片数据 + } + outputStream = response.getOutputStream(); + byte[] buf = new byte[1024]; + int len; + while ((len = inputStream.read(buf)) > 0) { + outputStream.write(buf, 0, len); + } + response.flushBuffer(); + } catch (IOException e) { + logger.error("预览文件失败" + e.getMessage()); + response.setStatus(404); + logger.error(e.getMessage(), e); + } catch (Exception e) { + response.setStatus(404); + logger.error(e.getMessage(), e); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + } + if (outputStream != null) { + try { + outputStream.close(); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + } + } + } + + /** + * 预览缩略图&下载文件 + * @param request + * @param response + */ + @GetMapping(value = "/static/mini/**") + @ApiOperation(value = "预览缩略图&下载文件") + public void viewMini(HttpServletRequest request, HttpServletResponse response) { + // ISO-8859-1 ==> UTF-8 进行编码转换 + String imgPath = extractPathFromPattern(request); + if(StringUtil.isEmpty(imgPath) || imgPath=="null"){ + return; + } + InputStream inputStream = null; + OutputStream outputStream = null; + try { + imgPath = imgPath.replace("..", ""); + if (imgPath.endsWith(",")) { + imgPath = imgPath.substring(0, imgPath.length() - 1); + } + String fileUrl = ""; + if(fileUploadType == 1) { + fileUrl = systemConfigService.getFileUrlLocal(imgPath); + inputStream = new BufferedInputStream(new FileInputStream(fileUrl)); + } else if(fileUploadType == 2) { + fileUrl = systemConfigService.getFileUrlAliOss(imgPath); + URL url = new URL(fileUrl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setConnectTimeout(5 * 1000); + inputStream = conn.getInputStream();// 通过输入流获取图片数据 + } + int index = fileUrl.lastIndexOf("."); + String ext = fileUrl.substring(index + 1); + BufferedImage image = systemConfigService.getImageMini(inputStream, 80); + outputStream = response.getOutputStream(); + ImageIO.write(image, ext, outputStream); + response.flushBuffer(); + } catch (Exception e) { + response.setStatus(404); + logger.error(e.getMessage(), e); + } finally { + if (outputStream != null) { + try { + outputStream.close(); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + } + } + } + + /** + * Excel导出统一接口 + * @param response + */ + @PostMapping(value = "/exportExcelByParam") + @ApiOperation(value = "生成excel表格") + public void exportExcelByParam(@RequestBody JSONObject jsonObject, + HttpServletResponse response) { + try { + String title = jsonObject.getString("title"); + String head = jsonObject.getString("head"); + String tip = jsonObject.getString("tip"); + JSONArray arr = jsonObject.getJSONArray("list"); + systemConfigService.exportExcelByParam(title, head, tip, arr, response); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } + + /** + * 把指定URL后的字符串全部截断当成参数 + * 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题 + * @param request + * @return + */ + private static String extractPathFromPattern(final HttpServletRequest request) { + String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); + String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); + return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/TenantController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/TenantController.java new file mode 100644 index 0000000..d19be1c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/TenantController.java @@ -0,0 +1,128 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Tenant; +import com.reallin.smt.datasource.entities.TenantEx; +import com.reallin.smt.service.TenantService; +import com.reallin.smt.utils.Constants; +import com.reallin.smt.utils.ErpInfo; +import com.reallin.smt.utils.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji_sheng_hua SMT + */ +@RestController +@RequestMapping(value = "/tenant") +@Api(tags = {"租户管理"}) +public class TenantController extends BaseController { + + @Resource + private TenantService tenantService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Tenant tenant = tenantService.getTenant(id); + Map objectMap = new HashMap<>(); + if(tenant != null) { + objectMap.put("info", tenant); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String loginName = StringUtil.getInfo(search, "loginName"); + String type = StringUtil.getInfo(search, "type"); + String enabled = StringUtil.getInfo(search, "enabled"); + String remark = StringUtil.getInfo(search, "remark"); + List list = tenantService.select(loginName, type, enabled, remark); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = tenantService.insertTenant(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = tenantService.updateTenant(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = tenantService.deleteTenant(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = tenantService.batchDeleteTenant(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = tenantService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = tenantService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/TpmDoubleController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/TpmDoubleController.java new file mode 100644 index 0000000..e121fd6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/TpmDoubleController.java @@ -0,0 +1,40 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.datasource.entities.AssetInventory; +import com.reallin.smt.service.AssetManagementService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; + +/** + * 参考设备服务的兼容入口。保留原接口的拼写,便于协同服务平滑切换。 + */ +@RestController +@RequestMapping("/tpmDouble") +@Api(tags = "盘点协同兼容接口") +public class TpmDoubleController { + @Resource + private AssetManagementService service; + + @PostMapping("/cteatePdTasks") + @ApiOperation("一键为全部设备创建盘点任务") + public String createPdTasks(@RequestBody(required = false) JSONObject request) throws Exception { + JSONObject input = request == null ? new JSONObject() : request; + input.put("scopeType", "DEVICE"); + input.put("source", "TPM_DOUBLE"); + AssetInventory inventory = service.createInventory(input, "TPM_DOUBLE"); + Map data = new HashMap<>(); + data.put("inventory", inventory); + return returnJson(data, "创建成功", 200); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/UnitController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/UnitController.java new file mode 100644 index 0000000..feb3383 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/UnitController.java @@ -0,0 +1,150 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.datasource.entities.Unit; +import com.reallin.smt.service.UnitService; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/4/1 15:38 + */ +@RestController +@RequestMapping(value = "/unit") +@Api(tags = {"单位管理"}) +public class UnitController extends BaseController { + private Logger logger = LoggerFactory.getLogger(UnitController.class); + + @Resource + private UnitService unitService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + Unit unit = unitService.getUnit(id); + Map objectMap = new HashMap<>(); + if(unit != null) { + objectMap.put("info", unit); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String name = StringUtil.getInfo(search, "name"); + List list = unitService.select(name); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = unitService.insertUnit(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = unitService.updateUnit(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = unitService.deleteUnit(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = unitService.batchDeleteUnit(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = unitService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 单位列表 + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getAllList") + @ApiOperation(value = "单位列表") + public BaseResponseInfo getAllList(HttpServletRequest request) throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + List unitList = unitService.getUnit(); + res.code = 200; + res.data = unitList; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Boolean status = jsonObject.getBoolean("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = unitService.batchSetStatus(status, ids); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/UserBusinessController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/UserBusinessController.java new file mode 100644 index 0000000..b25c9f0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/UserBusinessController.java @@ -0,0 +1,199 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.datasource.entities.UserBusiness; +import com.reallin.smt.service.UserBusinessService; +import com.reallin.smt.utils.BaseResponseInfo; +import com.reallin.smt.utils.ErpInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji_sheng_hua jshERP + */ +@RestController +@RequestMapping(value = "/userBusiness") +@Api(tags = {"用户角色模块的关系"}) +public class UserBusinessController { + private Logger logger = LoggerFactory.getLogger(UserBusinessController.class); + + @Resource + private UserBusinessService userBusinessService; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + UserBusiness userBusiness = userBusinessService.getUserBusiness(id); + Map objectMap = new HashMap<>(); + if(userBusiness != null) { + objectMap.put("info", userBusiness); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = userBusinessService.insertUserBusiness(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = userBusinessService.updateUserBusiness(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = userBusinessService.deleteUserBusiness(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = userBusinessService.batchDeleteUserBusiness(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = userBusinessService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 获取信息 + * @param keyId + * @param type + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getBasicData") + @ApiOperation(value = "获取信息") + public BaseResponseInfo getBasicData(@RequestParam(value = "KeyId") String keyId, + @RequestParam(value = "Type") String type, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + List list = userBusinessService.getBasicData(keyId, type); + Map mapData = new HashMap(); + mapData.put("userBusinessList", list); + res.code = 200; + res.data = mapData; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "查询权限失败"; + } + return res; + } + + /** + * 校验存在 + * @param type + * @param keyId + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/checkIsValueExist") + @ApiOperation(value = "校验存在") + public String checkIsValueExist(@RequestParam(value ="type", required = false) String type, + @RequestParam(value ="keyId", required = false) String keyId, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap(); + Long id = userBusinessService.checkIsValueExist(type, keyId); + objectMap.put("id", id); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + /** + * 更新角色的按钮权限 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/updateBtnStr") + @ApiOperation(value = "更新角色的按钮权限") + public BaseResponseInfo updateBtnStr(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + String roleId = jsonObject.getString("roleId"); + String btnStr = jsonObject.getString("btnStr"); + String keyId = roleId; + String type = "RoleFunctions"; + int back = userBusinessService.updateBtnStr(keyId, type, btnStr); + if(back > 0) { + res.code = 200; + res.data = "成功"; + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "更新权限失败"; + } + return res; + } + + /** + * 根据KeyId和类型更新一个值 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/updateOneValueByKeyIdAndType") + @ApiOperation(value = "根据KeyId和类型更新一个值") + public BaseResponseInfo updateOneValueByKeyIdAndType(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + String type = jsonObject.getString("type"); + JSONArray keyIdArr = jsonObject.getJSONArray("keyIds"); + String oneValue = jsonObject.getString("oneValue"); + int back = userBusinessService.updateOneValueByKeyIdAndType(type, keyIdArr, oneValue); + if(back > 0) { + res.code = 200; + res.data = "成功"; + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "更新权限失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/controller/UserController.java b/smtERP-boot/src/main/java/com/reallin/smt/controller/UserController.java new file mode 100644 index 0000000..4c54bd2 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/controller/UserController.java @@ -0,0 +1,609 @@ +package com.reallin.smt.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.BaseController; +import com.reallin.smt.base.TableDataInfo; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.entities.UserEx; +import com.reallin.smt.datasource.vo.TreeNodeEx; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.service.*; +import com.reallin.smt.utils.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static com.reallin.smt.utils.ResponseJsonUtil.returnJson; +import static com.reallin.smt.utils.ResponseJsonUtil.returnStr; + +/** + * @author ji_sheng_hua SMT + */ +@RestController +@RequestMapping(value = "/user") +@Api(tags = {"用户管理"}) +public class UserController extends BaseController { + private Logger logger = LoggerFactory.getLogger(UserController.class); + + @Value("${manage.roleId}") + private Integer manageRoleId; + + @Resource + private UserService userService; + + @Resource + private RoleService roleService; + + + @Resource + private UserBusinessService userBusinessService; + + @Resource + private RedisService redisService; + + private static String SUCCESS = "操作成功"; + private static String ERROR = "操作失败"; + + @GetMapping(value = "/info") + @ApiOperation(value = "根据id获取信息") + public String getList(@RequestParam("id") Long id, + HttpServletRequest request) throws Exception { + User user = userService.getUser(id); + Map objectMap = new HashMap<>(); + if(user != null) { + objectMap.put("info", user); + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/list") + @ApiOperation(value = "获取信息列表") + public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, + HttpServletRequest request)throws Exception { + String userName = StringUtil.getInfo(search, "userName"); + String loginName = StringUtil.getInfo(search, "loginName"); + List list = userService.select(userName, loginName); + return getDataTable(list); + } + + @PostMapping(value = "/add") + @ApiOperation(value = "新增") + public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int insert = userService.insertUser(obj, request); + return returnStr(objectMap, insert); + } + + @PutMapping(value = "/update") + @ApiOperation(value = "修改") + public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int update = userService.updateUser(obj, request); + return returnStr(objectMap, update); + } + + @DeleteMapping(value = "/delete") + @ApiOperation(value = "删除") + public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = userService.deleteUser(id, request); + return returnStr(objectMap, delete); + } + + @DeleteMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除") + public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int delete = userService.batchDeleteUser(ids, request); + return returnStr(objectMap, delete); + } + + @GetMapping(value = "/checkIsNameExist") + @ApiOperation(value = "检查名称是否存在") + public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + int exist = userService.checkIsNameExist(id, name); + if(exist > 0) { + objectMap.put("status", true); + } else { + objectMap.put("status", false); + } + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } + + @PostMapping(value = "/login") + @ApiOperation(value = "登录") + public BaseResponseInfo login(@RequestBody UserEx userParam, HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + userService.validateCaptcha(userParam.getCode(), userParam.getUuid()); + Map data = userService.login(userParam.getLoginName().trim(), userParam.getPassword().trim(), request); + res.code = 200; + res.data = data; + } catch (BusinessRunTimeException e) { + throw new BusinessRunTimeException(e.getCode(), e.getMessage()); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "用户登录失败"; + } + return res; + } + + @PostMapping(value = "/weixinLogin") + @ApiOperation(value = "微信登录") + public BaseResponseInfo weixinLogin(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + String weixinCode = jsonObject.getString("weixinCode"); + User user = userService.getUserByWeixinCode(weixinCode); + if(user == null) { + res.code = 501; + res.data = "微信未绑定"; + } else { + logger.info("微信登录:" + user.getLoginName()); + Map data = userService.login(user.getLoginName().trim(), user.getPassword().trim(), request); + res.code = 200; + res.data = data; + } + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "用户登录失败"; + } + return res; + } + + @PostMapping(value = "/weixinBind") + @ApiOperation(value = "绑定微信") + public String weixinBind(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Map objectMap = new HashMap<>(); + String loginName = jsonObject.getString("loginName"); + String password = jsonObject.getString("password"); + String weixinCode = jsonObject.getString("weixinCode"); + int res = userService.weixinBind(loginName, password, weixinCode); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + @GetMapping(value = "/getUserSession") + @ApiOperation(value = "获取用户信息") + public BaseResponseInfo getSessionUser(HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map data = new HashMap<>(); + Long userId = Long.parseLong(redisService.getObjectFromSessionByKey(request,"userId").toString()); + User user = userService.getUser(userId); + user.setPassword(null); + data.put("user", user); + res.code = 200; + res.data = data; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取session失败"; + } + return res; + } + + @GetMapping(value = "/logout") + @ApiOperation(value = "退出") + public BaseResponseInfo logout(HttpServletRequest request, HttpServletResponse response)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + redisService.deleteObjectBySession(request,"userId"); + redisService.deleteObjectBySession(request,"clientIp"); + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "退出失败"; + } + return res; + } + + @PostMapping(value = "/resetPwd") + @ApiOperation(value = "重置密码") + public String resetPwd(@RequestBody JSONObject jsonObject, + HttpServletRequest request) throws Exception { + Map objectMap = new HashMap<>(); + Long id = jsonObject.getLong("id"); + String md5Pwd = jsonObject.getString("password"); + int update = userService.resetPwd(md5Pwd, id, request); + if(update > 0) { + return returnJson(objectMap, SUCCESS, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ERROR, ErpInfo.ERROR.code); + } + } + + @PutMapping(value = "/updatePwd") + @ApiOperation(value = "更新密码") + public String updatePwd(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { + Integer flag = 0; + Map objectMap = new HashMap(); + try { + String info = ""; + Long userId = jsonObject.getLong("userId"); + String oldpwd = jsonObject.getString("oldpassword"); + String password = jsonObject.getString("password"); + User user = userService.getUser(userId); + //必须和原始密码一致才可以更新密码 + if (oldpwd.equalsIgnoreCase(user.getPassword())) { + user.setPassword(password); + flag = userService.updateUserByObj(user, request); //1-成功 + info = "修改成功"; + } else { + flag = 2; //原始密码输入错误 + info = "原始密码输入错误"; + } + objectMap.put("status", flag); + if(flag > 0) { + return returnJson(objectMap, info, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ERROR, ErpInfo.ERROR.code); + } + } catch (Exception e) { + logger.error(">>>>>>>>>>>>>修改用户ID为 : " + jsonObject.getLong("userId") + "密码信息失败", e); + flag = 3; + objectMap.put("status", flag); + return returnJson(objectMap, ERROR, ErpInfo.ERROR.code); + } + } + + /** + * 用户列表,用于用户下拉框 + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getUserList") + @ApiOperation(value = "用户列表") + public JSONArray getUserList(HttpServletRequest request)throws Exception { + JSONArray dataArray = new JSONArray(); + try { + List dataList = userService.getUser(request); + if (null != dataList) { + for (User user : dataList) { + JSONObject item = new JSONObject(); + item.put("id", user.getId()); + item.put("userName", user.getUsername()); + dataArray.add(item); + } + } + } catch(Exception e){ + logger.error(e.getMessage(), e); + } + return dataArray; + } + + /** + * create by: cjl + * description: + * 新增用户及部门和用户关系 + * create time: 2019/3/8 16:06 + * @Param: beanJson + * @return java.lang.Object + */ + @PostMapping("/addUser") + @ApiOperation(value = "新增用户") + @ResponseBody + public Object addUser(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + UserEx ue= JSONObject.parseObject(obj.toJSONString(), UserEx.class); + userService.addUserAndOrgUserRel(ue, request); + return result; + } + + /** + * create by: cjl + * description: + * 修改用户及部门和用户关系 + * create time: 2019/3/8 16:06 + * @Param: beanJson + * @return java.lang.Object + */ + @PutMapping("/updateUser") + @ApiOperation(value = "修改用户") + @ResponseBody + public Object updateUser(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + UserEx ue= JSONObject.parseObject(obj.toJSONString(), UserEx.class); + userService.updateUserAndOrgUserRel(ue, request); + return result; + } + + /** + * 分配用户角色 + * @param obj + * @param request + * @return + * @throws Exception + */ + @PostMapping("/updateUserRole") + @ApiOperation(value = "分配用户角色") + @ResponseBody + public BaseResponseInfo updateUserRole(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception{ + BaseResponseInfo res = new BaseResponseInfo(); + try { + Long userId = obj.getLong("id"); + Long roleId = obj.getLong("roleId"); + if(userId == null || roleId == null) { + res.code = 500; + res.data = "参数错误"; + return res; + } + User user = userService.getUser(userId); + if(user == null) { + res.code = 500; + res.data = "用户不存在"; + return res; + } + //更新用户与角色的关系 + JSONObject ubObj = new JSONObject(); + ubObj.put("type", "UserRole"); + ubObj.put("keyid", userId); + ubObj.put("value", "[" + roleId + "]"); + Long ubId = userBusinessService.checkIsValueExist("UserRole", userId.toString()); + if(ubId != null) { + ubObj.put("id", ubId); + userBusinessService.updateUserBusiness(ubObj, request); + } else { + userBusinessService.insertUserBusiness(ubObj, request); + } + res.code = 200; + res.data = "操作成功"; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "操作失败"; + } + return res; + } + + /** + * 注册用户 + * @param ue + * @return + * @throws Exception + */ + @PostMapping(value = "/registerUser") + @ApiOperation(value = "注册用户") + public Object registerUser(@RequestBody UserEx ue, + HttpServletRequest request)throws Exception{ + JSONObject result = ExceptionConstants.standardSuccess(); + ue.setUsername(ue.getLoginName()); + userService.validateCaptcha(ue.getCode(), ue.getUuid()); + userService.checkLoginName(ue); //检查登录名 + userService.registerUser(ue,manageRoleId,request); + return result; + } + + /** + * 获取部门用户树 + * @return + * @throws Exception + */ + @RequestMapping("/getOrganizationUserTree") + @ApiOperation(value = "获取部门用户树") + public JSONArray getOrganizationUserTree()throws Exception{ + JSONArray arr=new JSONArray(); + List organizationUserTree= userService.getOrganizationUserTree(); + if(organizationUserTree!=null&&organizationUserTree.size()>0){ + for(TreeNodeEx node:organizationUserTree){ + String str=JSON.toJSONString(node); + JSONObject obj=JSON.parseObject(str); + arr.add(obj) ; + } + } + return arr; + } + + @GetMapping(value = "/getCurrentPriceLimit") + @ApiOperation(value = "查询当前用户的价格屏蔽") + public BaseResponseInfo getCurrentPriceLimit(HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map data = new HashMap<>(); + String priceLimit = roleService.getCurrentPriceLimit(request); + data.put("priceLimit", priceLimit); + res.code = 200; + res.data = data; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取session失败"; + } + return res; + } + + /** + * 获取当前用户的角色类型 + * @param request + * @return + */ + @GetMapping("/getRoleTypeByCurrentUser") + @ApiOperation(value = "获取当前用户的角色类型") + public BaseResponseInfo getRoleTypeByCurrentUser(HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map data = new HashMap(); + Long userId = userService.getUserId(request); + String roleType = userService.getRoleTypeByUserId(userId).getType(); //角色类型 + data.put("roleType", roleType); + res.code = 200; + res.data = data; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取失败"; + } + return res; + } + + /** + * 获取当前用户的按钮权限 + * @param request + * @return + */ + @GetMapping("/getUserBtnByCurrentUser") + @ApiOperation(value = "获取当前用户的按钮权限") + public BaseResponseInfo getUserBtnByCurrentUser(HttpServletRequest request) { + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map data = new HashMap<>(); + Long userId = userService.getUserId(request); + JSONArray btnStrArr = userService.getBtnStrArrById(userId); + data.put("userBtn", btnStrArr); + res.code = 200; + res.data = data; + } catch(Exception e){ + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取失败"; + } + return res; + } + + /** + * 获取对应的用户显示 + * @param type + * @param oneValue + * @param request + * @return + */ + @GetMapping(value = "/getUserWithChecked") + @ApiOperation(value = "获取对应的用户显示") + public JSONArray getUserWithChecked(@RequestParam("UBType") String type, @RequestParam("UBValue") String oneValue, + HttpServletRequest request) throws Exception{ + JSONArray arr = new JSONArray(); + try { + //获取权限信息 + List keyIdList = userBusinessService.getUBKeyIdByTypeAndOneValue(type, oneValue); + Map keyIdMap = keyIdList.stream().collect(Collectors.toMap(Function.identity(),Function.identity())); + List dataList = userService.getUser(request); + //开始拼接json数据 + JSONObject outer = new JSONObject(); + outer.put("id", 0); + outer.put("key", 0); + outer.put("value", 0); + outer.put("title", "用户列表"); + outer.put("attributes", "用户列表"); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (User user : dataList) { + JSONObject item = new JSONObject(); + item.put("id", user.getId()); + item.put("key", user.getId()); + item.put("value", user.getId()); + item.put("title", user.getLoginName() + "(" + user.getUsername() + ")"); + item.put("attributes", user.getLoginName()); + if (keyIdMap.get(user.getId())!=null) { + item.put("checked", true); + } + dataArray.add(item); + } + } + outer.put("children", dataArray); + arr.add(outer); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return arr; + } + + /** + * 获取随机校验码 + * @param response + * @return + */ + @GetMapping(value = "/randomImage") + @ApiOperation(value = "获取随机校验码") + public BaseResponseInfo randomImage(HttpServletResponse response){ + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map data = new HashMap<>(); + String uuid = UUID.randomUUID().toString().replaceAll("-", "") + ""; + String verifyKey = BusinessConstants.CAPTCHA_CODE_KEY + uuid; + String codeNum = Tools.getCharAndNum(4); + redisService.storageCaptchaObject(verifyKey, codeNum); + String base64 = RandImageUtil.generate(codeNum); + data.put("uuid", uuid); + data.put("base64", base64); + res.code = 200; + res.data = data; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取失败"; + } + return res; + } + + /** + * 批量设置状态-启用或者禁用 + * @param jsonObject + * @param request + * @return + */ + @PostMapping(value = "/batchSetStatus") + @ApiOperation(value = "批量设置状态") + public String batchSetStatus(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { + Byte status = jsonObject.getByte("status"); + String ids = jsonObject.getString("ids"); + Map objectMap = new HashMap<>(); + int res = userService.batchSetStatus(status, ids, request); + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } + + /** + * 获取当前用户的用户数量和租户信息 + * @param request + * @return + */ + @GetMapping(value = "/infoWithTenant") + @ApiOperation(value = "获取当前用户数量") + public BaseResponseInfo infoWithTenant(HttpServletRequest request){ + BaseResponseInfo res = new BaseResponseInfo(); + try { + Map data = new HashMap<>(); + Long userId = Long.parseLong(redisService.getObjectFromSessionByKey(request,"userId").toString()); + int userCurrentNum = userService.getUser(request).size(); + data.put("userCurrentNum", userCurrentNum); + res.code = 200; + res.data = data; + } catch (Exception e) { + logger.error(e.getMessage(), e); + res.code = 500; + res.data = "获取失败"; + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Account.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Account.java new file mode 100644 index 0000000..cc6d73c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Account.java @@ -0,0 +1,115 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class Account { + private Long id; + + private String name; + + private String serialNo; + + private BigDecimal initialAmount; + + private BigDecimal currentAmount; + + private String remark; + + private Boolean enabled; + + private String sort; + + private Boolean isDefault; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getSerialNo() { + return serialNo; + } + + public void setSerialNo(String serialNo) { + this.serialNo = serialNo == null ? null : serialNo.trim(); + } + + public BigDecimal getInitialAmount() { + return initialAmount; + } + + public void setInitialAmount(BigDecimal initialAmount) { + this.initialAmount = initialAmount; + } + + public BigDecimal getCurrentAmount() { + return currentAmount; + } + + public void setCurrentAmount(BigDecimal currentAmount) { + this.currentAmount = currentAmount; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public Boolean getIsDefault() { + return isDefault; + } + + public void setIsDefault(Boolean isDefault) { + this.isDefault = isDefault; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountExample.java new file mode 100644 index 0000000..1c1b723 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountExample.java @@ -0,0 +1,910 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class AccountExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public AccountExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andSerialNoIsNull() { + addCriterion("serial_no is null"); + return (Criteria) this; + } + + public Criteria andSerialNoIsNotNull() { + addCriterion("serial_no is not null"); + return (Criteria) this; + } + + public Criteria andSerialNoEqualTo(String value) { + addCriterion("serial_no =", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoNotEqualTo(String value) { + addCriterion("serial_no <>", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoGreaterThan(String value) { + addCriterion("serial_no >", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoGreaterThanOrEqualTo(String value) { + addCriterion("serial_no >=", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoLessThan(String value) { + addCriterion("serial_no <", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoLessThanOrEqualTo(String value) { + addCriterion("serial_no <=", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoLike(String value) { + addCriterion("serial_no like", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoNotLike(String value) { + addCriterion("serial_no not like", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoIn(List values) { + addCriterion("serial_no in", values, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoNotIn(List values) { + addCriterion("serial_no not in", values, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoBetween(String value1, String value2) { + addCriterion("serial_no between", value1, value2, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoNotBetween(String value1, String value2) { + addCriterion("serial_no not between", value1, value2, "serialNo"); + return (Criteria) this; + } + + public Criteria andInitialAmountIsNull() { + addCriterion("initial_amount is null"); + return (Criteria) this; + } + + public Criteria andInitialAmountIsNotNull() { + addCriterion("initial_amount is not null"); + return (Criteria) this; + } + + public Criteria andInitialAmountEqualTo(BigDecimal value) { + addCriterion("initial_amount =", value, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountNotEqualTo(BigDecimal value) { + addCriterion("initial_amount <>", value, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountGreaterThan(BigDecimal value) { + addCriterion("initial_amount >", value, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("initial_amount >=", value, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountLessThan(BigDecimal value) { + addCriterion("initial_amount <", value, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountLessThanOrEqualTo(BigDecimal value) { + addCriterion("initial_amount <=", value, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountIn(List values) { + addCriterion("initial_amount in", values, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountNotIn(List values) { + addCriterion("initial_amount not in", values, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("initial_amount between", value1, value2, "initialAmount"); + return (Criteria) this; + } + + public Criteria andInitialAmountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("initial_amount not between", value1, value2, "initialAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountIsNull() { + addCriterion("current_amount is null"); + return (Criteria) this; + } + + public Criteria andCurrentAmountIsNotNull() { + addCriterion("current_amount is not null"); + return (Criteria) this; + } + + public Criteria andCurrentAmountEqualTo(BigDecimal value) { + addCriterion("current_amount =", value, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountNotEqualTo(BigDecimal value) { + addCriterion("current_amount <>", value, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountGreaterThan(BigDecimal value) { + addCriterion("current_amount >", value, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("current_amount >=", value, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountLessThan(BigDecimal value) { + addCriterion("current_amount <", value, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountLessThanOrEqualTo(BigDecimal value) { + addCriterion("current_amount <=", value, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountIn(List values) { + addCriterion("current_amount in", values, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountNotIn(List values) { + addCriterion("current_amount not in", values, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("current_amount between", value1, value2, "currentAmount"); + return (Criteria) this; + } + + public Criteria andCurrentAmountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("current_amount not between", value1, value2, "currentAmount"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andIsDefaultIsNull() { + addCriterion("is_default is null"); + return (Criteria) this; + } + + public Criteria andIsDefaultIsNotNull() { + addCriterion("is_default is not null"); + return (Criteria) this; + } + + public Criteria andIsDefaultEqualTo(Boolean value) { + addCriterion("is_default =", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultNotEqualTo(Boolean value) { + addCriterion("is_default <>", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultGreaterThan(Boolean value) { + addCriterion("is_default >", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultGreaterThanOrEqualTo(Boolean value) { + addCriterion("is_default >=", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultLessThan(Boolean value) { + addCriterion("is_default <", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultLessThanOrEqualTo(Boolean value) { + addCriterion("is_default <=", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultIn(List values) { + addCriterion("is_default in", values, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultNotIn(List values) { + addCriterion("is_default not in", values, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultBetween(Boolean value1, Boolean value2) { + addCriterion("is_default between", value1, value2, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultNotBetween(Boolean value1, Boolean value2) { + addCriterion("is_default not between", value1, value2, "isDefault"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHead.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHead.java new file mode 100644 index 0000000..df5621b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHead.java @@ -0,0 +1,176 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +public class AccountHead { + private Long id; + + private String type; + + private Long organId; + + private Long handsPersonId; + + private Long creator; + + private BigDecimal changeAmount; + + private BigDecimal discountMoney; + + private BigDecimal totalPrice; + + private Long accountId; + + private String billNo; + + private Date billTime; + + private String remark; + + private String fileName; + + private String status; + + private String source; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public Long getOrganId() { + return organId; + } + + public void setOrganId(Long organId) { + this.organId = organId; + } + + public Long getHandsPersonId() { + return handsPersonId; + } + + public void setHandsPersonId(Long handsPersonId) { + this.handsPersonId = handsPersonId; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public BigDecimal getChangeAmount() { + return changeAmount; + } + + public void setChangeAmount(BigDecimal changeAmount) { + this.changeAmount = changeAmount; + } + + public BigDecimal getDiscountMoney() { + return discountMoney; + } + + public void setDiscountMoney(BigDecimal discountMoney) { + this.discountMoney = discountMoney; + } + + public BigDecimal getTotalPrice() { + return totalPrice; + } + + public void setTotalPrice(BigDecimal totalPrice) { + this.totalPrice = totalPrice; + } + + public Long getAccountId() { + return accountId; + } + + public void setAccountId(Long accountId) { + this.accountId = accountId; + } + + public String getBillNo() { + return billNo; + } + + public void setBillNo(String billNo) { + this.billNo = billNo == null ? null : billNo.trim(); + } + + public Date getBillTime() { + return billTime; + } + + public void setBillTime(Date billTime) { + this.billTime = billTime; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName == null ? null : fileName.trim(); + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source == null ? null : source.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadExample.java new file mode 100644 index 0000000..7af2660 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadExample.java @@ -0,0 +1,1291 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class AccountHeadExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public AccountHeadExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andOrganIdIsNull() { + addCriterion("organ_id is null"); + return (Criteria) this; + } + + public Criteria andOrganIdIsNotNull() { + addCriterion("organ_id is not null"); + return (Criteria) this; + } + + public Criteria andOrganIdEqualTo(Long value) { + addCriterion("organ_id =", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdNotEqualTo(Long value) { + addCriterion("organ_id <>", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdGreaterThan(Long value) { + addCriterion("organ_id >", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdGreaterThanOrEqualTo(Long value) { + addCriterion("organ_id >=", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdLessThan(Long value) { + addCriterion("organ_id <", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdLessThanOrEqualTo(Long value) { + addCriterion("organ_id <=", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdIn(List values) { + addCriterion("organ_id in", values, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdNotIn(List values) { + addCriterion("organ_id not in", values, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdBetween(Long value1, Long value2) { + addCriterion("organ_id between", value1, value2, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdNotBetween(Long value1, Long value2) { + addCriterion("organ_id not between", value1, value2, "organId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdIsNull() { + addCriterion("hands_person_id is null"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdIsNotNull() { + addCriterion("hands_person_id is not null"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdEqualTo(Long value) { + addCriterion("hands_person_id =", value, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdNotEqualTo(Long value) { + addCriterion("hands_person_id <>", value, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdGreaterThan(Long value) { + addCriterion("hands_person_id >", value, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdGreaterThanOrEqualTo(Long value) { + addCriterion("hands_person_id >=", value, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdLessThan(Long value) { + addCriterion("hands_person_id <", value, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdLessThanOrEqualTo(Long value) { + addCriterion("hands_person_id <=", value, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdIn(List values) { + addCriterion("hands_person_id in", values, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdNotIn(List values) { + addCriterion("hands_person_id not in", values, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdBetween(Long value1, Long value2) { + addCriterion("hands_person_id between", value1, value2, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andHandsPersonIdNotBetween(Long value1, Long value2) { + addCriterion("hands_person_id not between", value1, value2, "handsPersonId"); + return (Criteria) this; + } + + public Criteria andCreatorIsNull() { + addCriterion("creator is null"); + return (Criteria) this; + } + + public Criteria andCreatorIsNotNull() { + addCriterion("creator is not null"); + return (Criteria) this; + } + + public Criteria andCreatorEqualTo(Long value) { + addCriterion("creator =", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotEqualTo(Long value) { + addCriterion("creator <>", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThan(Long value) { + addCriterion("creator >", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThanOrEqualTo(Long value) { + addCriterion("creator >=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThan(Long value) { + addCriterion("creator <", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThanOrEqualTo(Long value) { + addCriterion("creator <=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorIn(List values) { + addCriterion("creator in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotIn(List values) { + addCriterion("creator not in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorBetween(Long value1, Long value2) { + addCriterion("creator between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotBetween(Long value1, Long value2) { + addCriterion("creator not between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andChangeAmountIsNull() { + addCriterion("change_amount is null"); + return (Criteria) this; + } + + public Criteria andChangeAmountIsNotNull() { + addCriterion("change_amount is not null"); + return (Criteria) this; + } + + public Criteria andChangeAmountEqualTo(BigDecimal value) { + addCriterion("change_amount =", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountNotEqualTo(BigDecimal value) { + addCriterion("change_amount <>", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountGreaterThan(BigDecimal value) { + addCriterion("change_amount >", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("change_amount >=", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountLessThan(BigDecimal value) { + addCriterion("change_amount <", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountLessThanOrEqualTo(BigDecimal value) { + addCriterion("change_amount <=", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountIn(List values) { + addCriterion("change_amount in", values, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountNotIn(List values) { + addCriterion("change_amount not in", values, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("change_amount between", value1, value2, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("change_amount not between", value1, value2, "changeAmount"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyIsNull() { + addCriterion("discount_money is null"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyIsNotNull() { + addCriterion("discount_money is not null"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyEqualTo(BigDecimal value) { + addCriterion("discount_money =", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyNotEqualTo(BigDecimal value) { + addCriterion("discount_money <>", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyGreaterThan(BigDecimal value) { + addCriterion("discount_money >", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("discount_money >=", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyLessThan(BigDecimal value) { + addCriterion("discount_money <", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyLessThanOrEqualTo(BigDecimal value) { + addCriterion("discount_money <=", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyIn(List values) { + addCriterion("discount_money in", values, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyNotIn(List values) { + addCriterion("discount_money not in", values, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("discount_money between", value1, value2, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("discount_money not between", value1, value2, "discountMoney"); + return (Criteria) this; + } + + public Criteria andTotalPriceIsNull() { + addCriterion("total_price is null"); + return (Criteria) this; + } + + public Criteria andTotalPriceIsNotNull() { + addCriterion("total_price is not null"); + return (Criteria) this; + } + + public Criteria andTotalPriceEqualTo(BigDecimal value) { + addCriterion("total_price =", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceNotEqualTo(BigDecimal value) { + addCriterion("total_price <>", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceGreaterThan(BigDecimal value) { + addCriterion("total_price >", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("total_price >=", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceLessThan(BigDecimal value) { + addCriterion("total_price <", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceLessThanOrEqualTo(BigDecimal value) { + addCriterion("total_price <=", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceIn(List values) { + addCriterion("total_price in", values, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceNotIn(List values) { + addCriterion("total_price not in", values, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("total_price between", value1, value2, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("total_price not between", value1, value2, "totalPrice"); + return (Criteria) this; + } + + public Criteria andAccountIdIsNull() { + addCriterion("account_id is null"); + return (Criteria) this; + } + + public Criteria andAccountIdIsNotNull() { + addCriterion("account_id is not null"); + return (Criteria) this; + } + + public Criteria andAccountIdEqualTo(Long value) { + addCriterion("account_id =", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotEqualTo(Long value) { + addCriterion("account_id <>", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdGreaterThan(Long value) { + addCriterion("account_id >", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdGreaterThanOrEqualTo(Long value) { + addCriterion("account_id >=", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdLessThan(Long value) { + addCriterion("account_id <", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdLessThanOrEqualTo(Long value) { + addCriterion("account_id <=", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdIn(List values) { + addCriterion("account_id in", values, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotIn(List values) { + addCriterion("account_id not in", values, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdBetween(Long value1, Long value2) { + addCriterion("account_id between", value1, value2, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotBetween(Long value1, Long value2) { + addCriterion("account_id not between", value1, value2, "accountId"); + return (Criteria) this; + } + + public Criteria andBillNoIsNull() { + addCriterion("bill_no is null"); + return (Criteria) this; + } + + public Criteria andBillNoIsNotNull() { + addCriterion("bill_no is not null"); + return (Criteria) this; + } + + public Criteria andBillNoEqualTo(String value) { + addCriterion("bill_no =", value, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoNotEqualTo(String value) { + addCriterion("bill_no <>", value, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoGreaterThan(String value) { + addCriterion("bill_no >", value, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoGreaterThanOrEqualTo(String value) { + addCriterion("bill_no >=", value, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoLessThan(String value) { + addCriterion("bill_no <", value, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoLessThanOrEqualTo(String value) { + addCriterion("bill_no <=", value, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoLike(String value) { + addCriterion("bill_no like", value, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoNotLike(String value) { + addCriterion("bill_no not like", value, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoIn(List values) { + addCriterion("bill_no in", values, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoNotIn(List values) { + addCriterion("bill_no not in", values, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoBetween(String value1, String value2) { + addCriterion("bill_no between", value1, value2, "billNo"); + return (Criteria) this; + } + + public Criteria andBillNoNotBetween(String value1, String value2) { + addCriterion("bill_no not between", value1, value2, "billNo"); + return (Criteria) this; + } + + public Criteria andBillTimeIsNull() { + addCriterion("bill_time is null"); + return (Criteria) this; + } + + public Criteria andBillTimeIsNotNull() { + addCriterion("bill_time is not null"); + return (Criteria) this; + } + + public Criteria andBillTimeEqualTo(Date value) { + addCriterion("bill_time =", value, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeNotEqualTo(Date value) { + addCriterion("bill_time <>", value, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeGreaterThan(Date value) { + addCriterion("bill_time >", value, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeGreaterThanOrEqualTo(Date value) { + addCriterion("bill_time >=", value, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeLessThan(Date value) { + addCriterion("bill_time <", value, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeLessThanOrEqualTo(Date value) { + addCriterion("bill_time <=", value, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeIn(List values) { + addCriterion("bill_time in", values, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeNotIn(List values) { + addCriterion("bill_time not in", values, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeBetween(Date value1, Date value2) { + addCriterion("bill_time between", value1, value2, "billTime"); + return (Criteria) this; + } + + public Criteria andBillTimeNotBetween(Date value1, Date value2) { + addCriterion("bill_time not between", value1, value2, "billTime"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andFileNameIsNull() { + addCriterion("file_name is null"); + return (Criteria) this; + } + + public Criteria andFileNameIsNotNull() { + addCriterion("file_name is not null"); + return (Criteria) this; + } + + public Criteria andFileNameEqualTo(String value) { + addCriterion("file_name =", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotEqualTo(String value) { + addCriterion("file_name <>", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameGreaterThan(String value) { + addCriterion("file_name >", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameGreaterThanOrEqualTo(String value) { + addCriterion("file_name >=", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLessThan(String value) { + addCriterion("file_name <", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLessThanOrEqualTo(String value) { + addCriterion("file_name <=", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLike(String value) { + addCriterion("file_name like", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotLike(String value) { + addCriterion("file_name not like", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameIn(List values) { + addCriterion("file_name in", values, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotIn(List values) { + addCriterion("file_name not in", values, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameBetween(String value1, String value2) { + addCriterion("file_name between", value1, value2, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotBetween(String value1, String value2) { + addCriterion("file_name not between", value1, value2, "fileName"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(String value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(String value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(String value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(String value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(String value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(String value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLike(String value) { + addCriterion("status like", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotLike(String value) { + addCriterion("status not like", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(String value1, String value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(String value1, String value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andSourceIsNull() { + addCriterion("source is null"); + return (Criteria) this; + } + + public Criteria andSourceIsNotNull() { + addCriterion("source is not null"); + return (Criteria) this; + } + + public Criteria andSourceEqualTo(String value) { + addCriterion("source =", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotEqualTo(String value) { + addCriterion("source <>", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceGreaterThan(String value) { + addCriterion("source >", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceGreaterThanOrEqualTo(String value) { + addCriterion("source >=", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceLessThan(String value) { + addCriterion("source <", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceLessThanOrEqualTo(String value) { + addCriterion("source <=", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceLike(String value) { + addCriterion("source like", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotLike(String value) { + addCriterion("source not like", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceIn(List values) { + addCriterion("source in", values, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotIn(List values) { + addCriterion("source not in", values, "source"); + return (Criteria) this; + } + + public Criteria andSourceBetween(String value1, String value2) { + addCriterion("source between", value1, value2, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotBetween(String value1, String value2) { + addCriterion("source not between", value1, value2, "source"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadVo4Body.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadVo4Body.java new file mode 100644 index 0000000..aba3d1d --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadVo4Body.java @@ -0,0 +1,34 @@ +package com.reallin.smt.datasource.entities; + +public class AccountHeadVo4Body { + + private Long id; + + private String info; + + private String rows; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getInfo() { + return info; + } + + public void setInfo(String info) { + this.info = info; + } + + public String getRows() { + return rows; + } + + public void setRows(String rows) { + this.rows = rows; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadVo4ListEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadVo4ListEx.java new file mode 100644 index 0000000..8f73c47 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountHeadVo4ListEx.java @@ -0,0 +1,81 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +public class AccountHeadVo4ListEx extends AccountHead{ + + private String organName; + + private String handsPersonName; + + private String userName; + + private String accountName; + + private String billTimeStr; + + private String sourceType; + + private String sourceNumber; + + private String sourceTime; + + private String sourceUser; + + public String getOrganName() { + return organName; + } + + public void setOrganName(String organName) { + this.organName = organName; + } + + public String getHandsPersonName() { + return handsPersonName; + } + + public void setHandsPersonName(String handsPersonName) { + this.handsPersonName = handsPersonName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getAccountName() { + return accountName; + } + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + public String getBillTimeStr() { + return billTimeStr; + } + + public void setBillTimeStr(String billTimeStr) { + this.billTimeStr = billTimeStr; + } + + public String getSourceType() { return sourceType; } + + public void setSourceType(String sourceType) { this.sourceType = sourceType; } + + public String getSourceNumber() { return sourceNumber; } + + public void setSourceNumber(String sourceNumber) { this.sourceNumber = sourceNumber; } + + public String getSourceTime() { return sourceTime; } + + public void setSourceTime(String sourceTime) { this.sourceTime = sourceTime; } + + public String getSourceUser() { return sourceUser; } + + public void setSourceUser(String sourceUser) { this.sourceUser = sourceUser; } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountItem.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountItem.java new file mode 100644 index 0000000..e456e1a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountItem.java @@ -0,0 +1,115 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class AccountItem { + private Long id; + + private Long headerId; + + private Long accountId; + + private Long inOutItemId; + + private Long billId; + + private BigDecimal needDebt; + + private BigDecimal finishDebt; + + private BigDecimal eachAmount; + + private String remark; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getHeaderId() { + return headerId; + } + + public void setHeaderId(Long headerId) { + this.headerId = headerId; + } + + public Long getAccountId() { + return accountId; + } + + public void setAccountId(Long accountId) { + this.accountId = accountId; + } + + public Long getInOutItemId() { + return inOutItemId; + } + + public void setInOutItemId(Long inOutItemId) { + this.inOutItemId = inOutItemId; + } + + public Long getBillId() { + return billId; + } + + public void setBillId(Long billId) { + this.billId = billId; + } + + public BigDecimal getNeedDebt() { + return needDebt; + } + + public void setNeedDebt(BigDecimal needDebt) { + this.needDebt = needDebt; + } + + public BigDecimal getFinishDebt() { + return finishDebt; + } + + public void setFinishDebt(BigDecimal finishDebt) { + this.finishDebt = finishDebt; + } + + public BigDecimal getEachAmount() { + return eachAmount; + } + + public void setEachAmount(BigDecimal eachAmount) { + this.eachAmount = eachAmount; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountItemExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountItemExample.java new file mode 100644 index 0000000..9ab31ed --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountItemExample.java @@ -0,0 +1,880 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class AccountItemExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public AccountItemExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andHeaderIdIsNull() { + addCriterion("header_id is null"); + return (Criteria) this; + } + + public Criteria andHeaderIdIsNotNull() { + addCriterion("header_id is not null"); + return (Criteria) this; + } + + public Criteria andHeaderIdEqualTo(Long value) { + addCriterion("header_id =", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdNotEqualTo(Long value) { + addCriterion("header_id <>", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdGreaterThan(Long value) { + addCriterion("header_id >", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdGreaterThanOrEqualTo(Long value) { + addCriterion("header_id >=", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdLessThan(Long value) { + addCriterion("header_id <", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdLessThanOrEqualTo(Long value) { + addCriterion("header_id <=", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdIn(List values) { + addCriterion("header_id in", values, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdNotIn(List values) { + addCriterion("header_id not in", values, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdBetween(Long value1, Long value2) { + addCriterion("header_id between", value1, value2, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdNotBetween(Long value1, Long value2) { + addCriterion("header_id not between", value1, value2, "headerId"); + return (Criteria) this; + } + + public Criteria andAccountIdIsNull() { + addCriterion("account_id is null"); + return (Criteria) this; + } + + public Criteria andAccountIdIsNotNull() { + addCriterion("account_id is not null"); + return (Criteria) this; + } + + public Criteria andAccountIdEqualTo(Long value) { + addCriterion("account_id =", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotEqualTo(Long value) { + addCriterion("account_id <>", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdGreaterThan(Long value) { + addCriterion("account_id >", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdGreaterThanOrEqualTo(Long value) { + addCriterion("account_id >=", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdLessThan(Long value) { + addCriterion("account_id <", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdLessThanOrEqualTo(Long value) { + addCriterion("account_id <=", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdIn(List values) { + addCriterion("account_id in", values, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotIn(List values) { + addCriterion("account_id not in", values, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdBetween(Long value1, Long value2) { + addCriterion("account_id between", value1, value2, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotBetween(Long value1, Long value2) { + addCriterion("account_id not between", value1, value2, "accountId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdIsNull() { + addCriterion("in_out_item_id is null"); + return (Criteria) this; + } + + public Criteria andInOutItemIdIsNotNull() { + addCriterion("in_out_item_id is not null"); + return (Criteria) this; + } + + public Criteria andInOutItemIdEqualTo(Long value) { + addCriterion("in_out_item_id =", value, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdNotEqualTo(Long value) { + addCriterion("in_out_item_id <>", value, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdGreaterThan(Long value) { + addCriterion("in_out_item_id >", value, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdGreaterThanOrEqualTo(Long value) { + addCriterion("in_out_item_id >=", value, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdLessThan(Long value) { + addCriterion("in_out_item_id <", value, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdLessThanOrEqualTo(Long value) { + addCriterion("in_out_item_id <=", value, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdIn(List values) { + addCriterion("in_out_item_id in", values, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdNotIn(List values) { + addCriterion("in_out_item_id not in", values, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdBetween(Long value1, Long value2) { + addCriterion("in_out_item_id between", value1, value2, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andInOutItemIdNotBetween(Long value1, Long value2) { + addCriterion("in_out_item_id not between", value1, value2, "inOutItemId"); + return (Criteria) this; + } + + public Criteria andBillIdIsNull() { + addCriterion("bill_id is null"); + return (Criteria) this; + } + + public Criteria andBillIdIsNotNull() { + addCriterion("bill_id is not null"); + return (Criteria) this; + } + + public Criteria andBillIdEqualTo(Long value) { + addCriterion("bill_id =", value, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdNotEqualTo(Long value) { + addCriterion("bill_id <>", value, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdGreaterThan(Long value) { + addCriterion("bill_id >", value, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdGreaterThanOrEqualTo(Long value) { + addCriterion("bill_id >=", value, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdLessThan(Long value) { + addCriterion("bill_id <", value, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdLessThanOrEqualTo(Long value) { + addCriterion("bill_id <=", value, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdIn(List values) { + addCriterion("bill_id in", values, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdNotIn(List values) { + addCriterion("bill_id not in", values, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdBetween(Long value1, Long value2) { + addCriterion("bill_id between", value1, value2, "billId"); + return (Criteria) this; + } + + public Criteria andBillIdNotBetween(Long value1, Long value2) { + addCriterion("bill_id not between", value1, value2, "billId"); + return (Criteria) this; + } + + public Criteria andNeedDebtIsNull() { + addCriterion("need_debt is null"); + return (Criteria) this; + } + + public Criteria andNeedDebtIsNotNull() { + addCriterion("need_debt is not null"); + return (Criteria) this; + } + + public Criteria andNeedDebtEqualTo(BigDecimal value) { + addCriterion("need_debt =", value, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtNotEqualTo(BigDecimal value) { + addCriterion("need_debt <>", value, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtGreaterThan(BigDecimal value) { + addCriterion("need_debt >", value, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("need_debt >=", value, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtLessThan(BigDecimal value) { + addCriterion("need_debt <", value, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtLessThanOrEqualTo(BigDecimal value) { + addCriterion("need_debt <=", value, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtIn(List values) { + addCriterion("need_debt in", values, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtNotIn(List values) { + addCriterion("need_debt not in", values, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("need_debt between", value1, value2, "needDebt"); + return (Criteria) this; + } + + public Criteria andNeedDebtNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("need_debt not between", value1, value2, "needDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtIsNull() { + addCriterion("finish_debt is null"); + return (Criteria) this; + } + + public Criteria andFinishDebtIsNotNull() { + addCriterion("finish_debt is not null"); + return (Criteria) this; + } + + public Criteria andFinishDebtEqualTo(BigDecimal value) { + addCriterion("finish_debt =", value, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtNotEqualTo(BigDecimal value) { + addCriterion("finish_debt <>", value, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtGreaterThan(BigDecimal value) { + addCriterion("finish_debt >", value, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("finish_debt >=", value, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtLessThan(BigDecimal value) { + addCriterion("finish_debt <", value, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtLessThanOrEqualTo(BigDecimal value) { + addCriterion("finish_debt <=", value, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtIn(List values) { + addCriterion("finish_debt in", values, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtNotIn(List values) { + addCriterion("finish_debt not in", values, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("finish_debt between", value1, value2, "finishDebt"); + return (Criteria) this; + } + + public Criteria andFinishDebtNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("finish_debt not between", value1, value2, "finishDebt"); + return (Criteria) this; + } + + public Criteria andEachAmountIsNull() { + addCriterion("each_amount is null"); + return (Criteria) this; + } + + public Criteria andEachAmountIsNotNull() { + addCriterion("each_amount is not null"); + return (Criteria) this; + } + + public Criteria andEachAmountEqualTo(BigDecimal value) { + addCriterion("each_amount =", value, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountNotEqualTo(BigDecimal value) { + addCriterion("each_amount <>", value, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountGreaterThan(BigDecimal value) { + addCriterion("each_amount >", value, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("each_amount >=", value, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountLessThan(BigDecimal value) { + addCriterion("each_amount <", value, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountLessThanOrEqualTo(BigDecimal value) { + addCriterion("each_amount <=", value, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountIn(List values) { + addCriterion("each_amount in", values, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountNotIn(List values) { + addCriterion("each_amount not in", values, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("each_amount between", value1, value2, "eachAmount"); + return (Criteria) this; + } + + public Criteria andEachAmountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("each_amount not between", value1, value2, "eachAmount"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountVo4Sum.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountVo4Sum.java new file mode 100644 index 0000000..0dd6be0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AccountVo4Sum.java @@ -0,0 +1,47 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class AccountVo4Sum { + + private Long id; + + private BigDecimal accountSum; + + private BigDecimal accountSumByHead; + + private BigDecimal accountSumByDetail; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public BigDecimal getAccountSum() { + return accountSum; + } + + public void setAccountSum(BigDecimal accountSum) { + this.accountSum = accountSum; + } + + public BigDecimal getAccountSumByHead() { + return accountSumByHead; + } + + public void setAccountSumByHead(BigDecimal accountSumByHead) { + this.accountSumByHead = accountSumByHead; + } + + public BigDecimal getAccountSumByDetail() { + return accountSumByDetail; + } + + public void setAccountSumByDetail(BigDecimal accountSumByDetail) { + this.accountSumByDetail = accountSumByDetail; + } + +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Asset.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Asset.java new file mode 100644 index 0000000..2b9c242 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Asset.java @@ -0,0 +1,39 @@ +package com.reallin.smt.datasource.entities; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 资产台账。 + */ +@Data +public class Asset { + private Long id; + private String assetCode; + private String assetName; + private Long categoryId; + private String categoryCode; + private String assetCategory; + private String specification; + private String unit; + private BigDecimal quantity; + private BigDecimal originalValue; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaseDate; + private String useDepartment; + private String keeper; + private String location; + private String status; + private String source; + private String externalSource; + private String externalId; + private String remark; + private Long creator; + private Long updater; + private String deleteFlag; + private Date createTime; + private Date updateTime; +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetCategory.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetCategory.java new file mode 100644 index 0000000..772a838 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetCategory.java @@ -0,0 +1,23 @@ +package com.reallin.smt.datasource.entities; + +import lombok.Data; + +import java.util.Date; + +/** + * 资产种类。 + */ +@Data +public class AssetCategory { + private Long id; + private String categoryCode; + private String categoryName; + private String description; + private Integer sort; + private Boolean enabled; + private Long creator; + private Long updater; + private String deleteFlag; + private Date createTime; + private Date updateTime; +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetDevice.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetDevice.java new file mode 100644 index 0000000..a3fcb42 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetDevice.java @@ -0,0 +1,38 @@ +package com.reallin.smt.datasource.entities; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * 设备台账,一个资产可关联多台设备。 + */ +@Data +public class AssetDevice { + private Long id; + private Long assetId; + private String assetCode; + private String deviceCode; + private String deviceName; + private String deviceCategory; + private String model; + private String serialNumber; + private String manufacturer; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaseDate; + private Date enabledDate; + private String useDepartment; + private String keeper; + private String location; + private String status; + private Date lastInventoryTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date nextMaintenanceDate; + private String remark; + private Long creator; + private Long updater; + private String deleteFlag; + private Date createTime; + private Date updateTime; +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetInventory.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetInventory.java new file mode 100644 index 0000000..95fd167 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetInventory.java @@ -0,0 +1,37 @@ +package com.reallin.smt.datasource.entities; + +import lombok.Data; + +import java.util.Date; + +/** + * 资产盘点单。 + */ +@Data +public class AssetInventory { + private Long id; + private String inventoryNo; + private String planName; + private String scopeType; + private Date plannedAt; + private Date deadline; + private String status; + private Integer totalCount; + private Integer inventoriedCount; + private Integer normalCount; + private Integer abnormalCount; + private Long inventoryUserId; + private String inventoryUserName; + private Date startedAt; + private Date completedAt; + private Long auditUserId; + private Date auditTime; + private String source; + private String externalRequestId; + private String remark; + private Long creator; + private Long updater; + private String deleteFlag; + private Date createTime; + private Date updateTime; +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetInventoryDetail.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetInventoryDetail.java new file mode 100644 index 0000000..8716757 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/AssetInventoryDetail.java @@ -0,0 +1,36 @@ +package com.reallin.smt.datasource.entities; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Date; + +/** + * 资产盘点快照明细。 + */ +@Data +public class AssetInventoryDetail { + private Long id; + private Long inventoryId; + private String targetType; + private Long targetId; + private String targetCode; + private String targetName; + private String model; + private BigDecimal bookQuantity; + private BigDecimal actualQuantity; + private String inventoryStatus; + private String bookDepartment; + private String actualDepartment; + private String bookLocation; + private String actualLocation; + private Date inventoryTime; + private Long inventoryUserId; + private String inventoryUserName; + private String remark; + private String imageGroupId; + private List imageUrls; + private Date createTime; + private Date updateTime; +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/BaseEntity.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/BaseEntity.java new file mode 100644 index 0000000..1a93df8 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/BaseEntity.java @@ -0,0 +1,152 @@ +package com.reallin.smt.datasource.entities; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * Entity基类 + * + * @author jishenghua + */ +public class BaseEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 搜索值 + */ + @TableField(exist = false) + @ApiModelProperty("搜索值") + @JsonIgnore + private String searchValue; + + /** + * 创建者 + */ + @ApiModelProperty("创建者") + private String createBy; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 更新者 + */ + @ApiModelProperty("更新者") + private String updateBy; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String remark; + + /** + * 当前记录起始索引 默认值 + */ + public static final int DEFAULT_PAGE_NUM = 1; + + /** + * 每页显示记录数 默认值 默认查全部 + */ + public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE; + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + @TableField(exist = false) + private Integer pageNum; + + @TableField(exist = false) + private Integer pageSize; + + /** + * 请求参数 + */ + @TableField(exist = false) + @ApiModelProperty("请求参数") + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Map params; + + public String getSearchValue() { + return searchValue; + } + + public void setSearchValue(String searchValue) { + this.searchValue = searchValue; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Map getParams() { + if (params == null) { + params = new HashMap<>(); + } + return params; + } + + public void setParams(Map params) { + this.params = params; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/CustomerCategory.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/CustomerCategory.java new file mode 100644 index 0000000..a4718ad --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/CustomerCategory.java @@ -0,0 +1,128 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +/** + * 客户分类实体类 + */ +public class CustomerCategory { + private Long id; + + private String categoryName; + + private Long parentId; + + private Integer level; + + private String sort; + + private String description; + + private Boolean enabled; + + private Long creator; + + private Long tenantId; + + private String deleteFlag; + + private Date createTime; + + private Date updateTime; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getCategoryName() { + return categoryName; + } + + public void setCategoryName(String categoryName) { + this.categoryName = categoryName == null ? null : categoryName.trim(); + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public Integer getLevel() { + return level; + } + + public void setLevel(Integer level) { + this.level = level; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description == null ? null : description.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/CustomerContact.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/CustomerContact.java new file mode 100644 index 0000000..dbfb96f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/CustomerContact.java @@ -0,0 +1,168 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +/** + * 客户联系人实体类 + */ +public class CustomerContact { + private Long id; + + private Long customerId; + + private String contactName; + + private String position; + + private String phone; + + private String telephone; + + private String email; + + private String wechat; + + private String qq; + + private Boolean isPrimary; + + private String remark; + + private Long creator; + + private Long tenantId; + + private String deleteFlag; + + private Date createTime; + + private Date updateTime; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getCustomerId() { + return customerId; + } + + public void setCustomerId(Long customerId) { + this.customerId = customerId; + } + + public String getContactName() { + return contactName; + } + + public void setContactName(String contactName) { + this.contactName = contactName == null ? null : contactName.trim(); + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position == null ? null : position.trim(); + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone == null ? null : phone.trim(); + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone == null ? null : telephone.trim(); + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email == null ? null : email.trim(); + } + + public String getWechat() { + return wechat; + } + + public void setWechat(String wechat) { + this.wechat = wechat == null ? null : wechat.trim(); + } + + public String getQq() { + return qq; + } + + public void setQq(String qq) { + this.qq = qq == null ? null : qq.trim(); + } + + public Boolean getIsPrimary() { + return isPrimary; + } + + public void setIsPrimary(Boolean isPrimary) { + this.isPrimary = isPrimary; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DeliveryPlan.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DeliveryPlan.java new file mode 100644 index 0000000..8831050 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DeliveryPlan.java @@ -0,0 +1,144 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +/** + * 交货计划主表 + */ +public class DeliveryPlan { + private Long id; + private String planNumber; + private String sourceType; + private Long sourceBillId; + private String sourceBillNumber; + private String saleOrderNumber; + private Long customerId; + private String status; + private Date plannedDeliveryTime; + private String adjustReason; + private String remark; + private Date createTime; + private Long creator; + private Long tenantId; + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getPlanNumber() { + return planNumber; + } + + public void setPlanNumber(String planNumber) { + this.planNumber = planNumber == null ? null : planNumber.trim(); + } + + public String getSourceType() { + return sourceType; + } + + public void setSourceType(String sourceType) { + this.sourceType = sourceType == null ? null : sourceType.trim(); + } + + public Long getSourceBillId() { + return sourceBillId; + } + + public void setSourceBillId(Long sourceBillId) { + this.sourceBillId = sourceBillId; + } + + public String getSourceBillNumber() { + return sourceBillNumber; + } + + public void setSourceBillNumber(String sourceBillNumber) { + this.sourceBillNumber = sourceBillNumber == null ? null : sourceBillNumber.trim(); + } + + public String getSaleOrderNumber() { + return saleOrderNumber; + } + + public void setSaleOrderNumber(String saleOrderNumber) { + this.saleOrderNumber = saleOrderNumber == null ? null : saleOrderNumber.trim(); + } + + public Long getCustomerId() { + return customerId; + } + + public void setCustomerId(Long customerId) { + this.customerId = customerId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public Date getPlannedDeliveryTime() { + return plannedDeliveryTime; + } + + public void setPlannedDeliveryTime(Date plannedDeliveryTime) { + this.plannedDeliveryTime = plannedDeliveryTime; + } + + public String getAdjustReason() { + return adjustReason; + } + + public void setAdjustReason(String adjustReason) { + this.adjustReason = adjustReason == null ? null : adjustReason.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DeliveryPlanItem.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DeliveryPlanItem.java new file mode 100644 index 0000000..7e92353 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DeliveryPlanItem.java @@ -0,0 +1,171 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +/** + * 交货计划明细 + */ +public class DeliveryPlanItem { + private Long id; + private Long planId; + private Long sourceItemId; + private Long materialId; + private Long materialExtendId; + private String barCode; + private String materialName; + private String standard; + private String model; + private String unit; + private String batchNumber; + private String snList; + private BigDecimal planQuantity; + private BigDecimal shippedQuantity; + private Long depotId; + private String remark; + private Long tenantId; + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getPlanId() { + return planId; + } + + public void setPlanId(Long planId) { + this.planId = planId; + } + + public Long getSourceItemId() { + return sourceItemId; + } + + public void setSourceItemId(Long sourceItemId) { + this.sourceItemId = sourceItemId; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getMaterialExtendId() { + return materialExtendId; + } + + public void setMaterialExtendId(Long materialExtendId) { + this.materialExtendId = materialExtendId; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode == null ? null : barCode.trim(); + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName == null ? null : materialName.trim(); + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard == null ? null : standard.trim(); + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model == null ? null : model.trim(); + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit == null ? null : unit.trim(); + } + + public String getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(String batchNumber) { + this.batchNumber = batchNumber == null ? null : batchNumber.trim(); + } + + public String getSnList() { + return snList; + } + + public void setSnList(String snList) { + this.snList = snList == null ? null : snList.trim(); + } + + public BigDecimal getPlanQuantity() { + return planQuantity; + } + + public void setPlanQuantity(BigDecimal planQuantity) { + this.planQuantity = planQuantity; + } + + public BigDecimal getShippedQuantity() { + return shippedQuantity; + } + + public void setShippedQuantity(BigDecimal shippedQuantity) { + this.shippedQuantity = shippedQuantity; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Depot.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Depot.java new file mode 100644 index 0000000..b3460c4 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Depot.java @@ -0,0 +1,135 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class Depot { + private Long id; + + private String name; + + private String address; + + private BigDecimal warehousing; + + private BigDecimal truckage; + + private Integer type; + + private String sort; + + private String remark; + + private Long principal; + + private Boolean enabled; + + private Long tenantId; + + private String deleteFlag; + + private Boolean isDefault; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address == null ? null : address.trim(); + } + + public BigDecimal getWarehousing() { + return warehousing; + } + + public void setWarehousing(BigDecimal warehousing) { + this.warehousing = warehousing; + } + + public BigDecimal getTruckage() { + return truckage; + } + + public void setTruckage(BigDecimal truckage) { + this.truckage = truckage; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getPrincipal() { + return principal; + } + + public void setPrincipal(Long principal) { + this.principal = principal; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } + + public Boolean getIsDefault() { + return isDefault; + } + + public void setIsDefault(Boolean isDefault) { + this.isDefault = isDefault; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotEx.java new file mode 100644 index 0000000..6a40502 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotEx.java @@ -0,0 +1,26 @@ +package com.reallin.smt.datasource.entities; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/2/25 11:40 + */ +@Data +public class DepotEx extends Depot{ + //负责人名字 + private String principalName; + + private BigDecimal initStock; + + private BigDecimal currentStock; + + private BigDecimal lowSafeStock; + + private BigDecimal highSafeStock; + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotExample.java new file mode 100644 index 0000000..35ec6c6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotExample.java @@ -0,0 +1,1030 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class DepotExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public DepotExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andAddressIsNull() { + addCriterion("address is null"); + return (Criteria) this; + } + + public Criteria andAddressIsNotNull() { + addCriterion("address is not null"); + return (Criteria) this; + } + + public Criteria andAddressEqualTo(String value) { + addCriterion("address =", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressNotEqualTo(String value) { + addCriterion("address <>", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressGreaterThan(String value) { + addCriterion("address >", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressGreaterThanOrEqualTo(String value) { + addCriterion("address >=", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressLessThan(String value) { + addCriterion("address <", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressLessThanOrEqualTo(String value) { + addCriterion("address <=", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressLike(String value) { + addCriterion("address like", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressNotLike(String value) { + addCriterion("address not like", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressIn(List values) { + addCriterion("address in", values, "address"); + return (Criteria) this; + } + + public Criteria andAddressNotIn(List values) { + addCriterion("address not in", values, "address"); + return (Criteria) this; + } + + public Criteria andAddressBetween(String value1, String value2) { + addCriterion("address between", value1, value2, "address"); + return (Criteria) this; + } + + public Criteria andAddressNotBetween(String value1, String value2) { + addCriterion("address not between", value1, value2, "address"); + return (Criteria) this; + } + + public Criteria andWarehousingIsNull() { + addCriterion("warehousing is null"); + return (Criteria) this; + } + + public Criteria andWarehousingIsNotNull() { + addCriterion("warehousing is not null"); + return (Criteria) this; + } + + public Criteria andWarehousingEqualTo(BigDecimal value) { + addCriterion("warehousing =", value, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingNotEqualTo(BigDecimal value) { + addCriterion("warehousing <>", value, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingGreaterThan(BigDecimal value) { + addCriterion("warehousing >", value, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("warehousing >=", value, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingLessThan(BigDecimal value) { + addCriterion("warehousing <", value, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingLessThanOrEqualTo(BigDecimal value) { + addCriterion("warehousing <=", value, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingIn(List values) { + addCriterion("warehousing in", values, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingNotIn(List values) { + addCriterion("warehousing not in", values, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("warehousing between", value1, value2, "warehousing"); + return (Criteria) this; + } + + public Criteria andWarehousingNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("warehousing not between", value1, value2, "warehousing"); + return (Criteria) this; + } + + public Criteria andTruckageIsNull() { + addCriterion("truckage is null"); + return (Criteria) this; + } + + public Criteria andTruckageIsNotNull() { + addCriterion("truckage is not null"); + return (Criteria) this; + } + + public Criteria andTruckageEqualTo(BigDecimal value) { + addCriterion("truckage =", value, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageNotEqualTo(BigDecimal value) { + addCriterion("truckage <>", value, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageGreaterThan(BigDecimal value) { + addCriterion("truckage >", value, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("truckage >=", value, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageLessThan(BigDecimal value) { + addCriterion("truckage <", value, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageLessThanOrEqualTo(BigDecimal value) { + addCriterion("truckage <=", value, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageIn(List values) { + addCriterion("truckage in", values, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageNotIn(List values) { + addCriterion("truckage not in", values, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("truckage between", value1, value2, "truckage"); + return (Criteria) this; + } + + public Criteria andTruckageNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("truckage not between", value1, value2, "truckage"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(Integer value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(Integer value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(Integer value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(Integer value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(Integer value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(Integer value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(Integer value1, Integer value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(Integer value1, Integer value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andPrincipalIsNull() { + addCriterion("principal is null"); + return (Criteria) this; + } + + public Criteria andPrincipalIsNotNull() { + addCriterion("principal is not null"); + return (Criteria) this; + } + + public Criteria andPrincipalEqualTo(Long value) { + addCriterion("principal =", value, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalNotEqualTo(Long value) { + addCriterion("principal <>", value, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalGreaterThan(Long value) { + addCriterion("principal >", value, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalGreaterThanOrEqualTo(Long value) { + addCriterion("principal >=", value, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalLessThan(Long value) { + addCriterion("principal <", value, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalLessThanOrEqualTo(Long value) { + addCriterion("principal <=", value, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalIn(List values) { + addCriterion("principal in", values, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalNotIn(List values) { + addCriterion("principal not in", values, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalBetween(Long value1, Long value2) { + addCriterion("principal between", value1, value2, "principal"); + return (Criteria) this; + } + + public Criteria andPrincipalNotBetween(Long value1, Long value2) { + addCriterion("principal not between", value1, value2, "principal"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_Flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_Flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_Flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_Flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_Flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_Flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_Flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_Flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_Flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_Flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_Flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_Flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_Flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_Flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andIsDefaultIsNull() { + addCriterion("is_default is null"); + return (Criteria) this; + } + + public Criteria andIsDefaultIsNotNull() { + addCriterion("is_default is not null"); + return (Criteria) this; + } + + public Criteria andIsDefaultEqualTo(Boolean value) { + addCriterion("is_default =", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultNotEqualTo(Boolean value) { + addCriterion("is_default <>", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultGreaterThan(Boolean value) { + addCriterion("is_default >", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultGreaterThanOrEqualTo(Boolean value) { + addCriterion("is_default >=", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultLessThan(Boolean value) { + addCriterion("is_default <", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultLessThanOrEqualTo(Boolean value) { + addCriterion("is_default <=", value, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultIn(List values) { + addCriterion("is_default in", values, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultNotIn(List values) { + addCriterion("is_default not in", values, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultBetween(Boolean value1, Boolean value2) { + addCriterion("is_default between", value1, value2, "isDefault"); + return (Criteria) this; + } + + public Criteria andIsDefaultNotBetween(Boolean value1, Boolean value2) { + addCriterion("is_default not between", value1, value2, "isDefault"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHead.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHead.java new file mode 100644 index 0000000..3501f13 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHead.java @@ -0,0 +1,356 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +public class DepotHead { + private Long id; + + private String type; + + private String subType; + + private String defaultNumber; + + private String number; + + private Date createTime; + + private Date operTime; + + private Long organId; + + private Long creator; + + private Long accountId; + + private BigDecimal changeAmount; + + private BigDecimal backAmount; + + private BigDecimal totalPrice; + + private String payType; + + private String billType; + + private String remark; + + private String fileName; + + private String salesMan; + + private String accountIdList; + + private String accountMoneyList; + + private BigDecimal discount; + + private BigDecimal discountMoney; + + private BigDecimal discountLastMoney; + + private BigDecimal otherMoney; + + private BigDecimal deposit; + + private BigDecimal lastDeposit; + + private BigDecimal debt; + + private BigDecimal lastDebt; + + private String status; + + private String purchaseStatus; + + private String source; + + private String linkNumber; + + private String linkApply; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public String getSubType() { + return subType; + } + + public void setSubType(String subType) { + this.subType = subType == null ? null : subType.trim(); + } + + public String getDefaultNumber() { + return defaultNumber; + } + + public void setDefaultNumber(String defaultNumber) { + this.defaultNumber = defaultNumber == null ? null : defaultNumber.trim(); + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number == null ? null : number.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getOperTime() { + return operTime; + } + + public void setOperTime(Date operTime) { + this.operTime = operTime; + } + + public Long getOrganId() { + return organId; + } + + public void setOrganId(Long organId) { + this.organId = organId; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getAccountId() { + return accountId; + } + + public void setAccountId(Long accountId) { + this.accountId = accountId; + } + + public BigDecimal getChangeAmount() { + return changeAmount; + } + + public void setChangeAmount(BigDecimal changeAmount) { + this.changeAmount = changeAmount; + } + + public BigDecimal getBackAmount() { + return backAmount; + } + + public void setBackAmount(BigDecimal backAmount) { + this.backAmount = backAmount; + } + + public BigDecimal getTotalPrice() { + return totalPrice; + } + + public void setTotalPrice(BigDecimal totalPrice) { + this.totalPrice = totalPrice; + } + + public String getPayType() { + return payType; + } + + public void setPayType(String payType) { + this.payType = payType == null ? null : payType.trim(); + } + + public String getBillType() { + return billType; + } + + public void setBillType(String billType) { + this.billType = billType == null ? null : billType.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName == null ? null : fileName.trim(); + } + + public String getSalesMan() { + return salesMan; + } + + public void setSalesMan(String salesMan) { + this.salesMan = salesMan == null ? null : salesMan.trim(); + } + + public String getAccountIdList() { + return accountIdList; + } + + public void setAccountIdList(String accountIdList) { + this.accountIdList = accountIdList == null ? null : accountIdList.trim(); + } + + public String getAccountMoneyList() { + return accountMoneyList; + } + + public void setAccountMoneyList(String accountMoneyList) { + this.accountMoneyList = accountMoneyList == null ? null : accountMoneyList.trim(); + } + + public BigDecimal getDiscount() { + return discount; + } + + public void setDiscount(BigDecimal discount) { + this.discount = discount; + } + + public BigDecimal getDiscountMoney() { + return discountMoney; + } + + public void setDiscountMoney(BigDecimal discountMoney) { + this.discountMoney = discountMoney; + } + + public BigDecimal getDiscountLastMoney() { + return discountLastMoney; + } + + public void setDiscountLastMoney(BigDecimal discountLastMoney) { + this.discountLastMoney = discountLastMoney; + } + + public BigDecimal getOtherMoney() { + return otherMoney; + } + + public void setOtherMoney(BigDecimal otherMoney) { + this.otherMoney = otherMoney; + } + + public BigDecimal getDeposit() { + return deposit; + } + + public void setDeposit(BigDecimal deposit) { + this.deposit = deposit; + } + + public BigDecimal getLastDeposit() { + return lastDeposit; + } + + public void setLastDeposit(BigDecimal lastDeposit) { + this.lastDeposit = lastDeposit; + } + + public BigDecimal getDebt() { + return debt; + } + + public void setDebt(BigDecimal debt) { + this.debt = debt; + } + + public BigDecimal getLastDebt() { + return lastDebt; + } + + public void setLastDebt(BigDecimal lastDebt) { + this.lastDebt = lastDebt; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public String getPurchaseStatus() { + return purchaseStatus; + } + + public void setPurchaseStatus(String purchaseStatus) { + this.purchaseStatus = purchaseStatus == null ? null : purchaseStatus.trim(); + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source == null ? null : source.trim(); + } + + public String getLinkNumber() { + return linkNumber; + } + + public void setLinkNumber(String linkNumber) { + this.linkNumber = linkNumber == null ? null : linkNumber.trim(); + } + + public String getLinkApply() { + return linkApply; + } + + public void setLinkApply(String linkApply) { + this.linkApply = linkApply == null ? null : linkApply.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHeadExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHeadExample.java new file mode 100644 index 0000000..52d4e41 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHeadExample.java @@ -0,0 +1,2471 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class DepotHeadExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public DepotHeadExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andSubTypeIsNull() { + addCriterion("sub_type is null"); + return (Criteria) this; + } + + public Criteria andSubTypeIsNotNull() { + addCriterion("sub_type is not null"); + return (Criteria) this; + } + + public Criteria andSubTypeEqualTo(String value) { + addCriterion("sub_type =", value, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeNotEqualTo(String value) { + addCriterion("sub_type <>", value, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeGreaterThan(String value) { + addCriterion("sub_type >", value, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeGreaterThanOrEqualTo(String value) { + addCriterion("sub_type >=", value, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeLessThan(String value) { + addCriterion("sub_type <", value, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeLessThanOrEqualTo(String value) { + addCriterion("sub_type <=", value, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeLike(String value) { + addCriterion("sub_type like", value, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeNotLike(String value) { + addCriterion("sub_type not like", value, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeIn(List values) { + addCriterion("sub_type in", values, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeNotIn(List values) { + addCriterion("sub_type not in", values, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeBetween(String value1, String value2) { + addCriterion("sub_type between", value1, value2, "subType"); + return (Criteria) this; + } + + public Criteria andSubTypeNotBetween(String value1, String value2) { + addCriterion("sub_type not between", value1, value2, "subType"); + return (Criteria) this; + } + + public Criteria andDefaultNumberIsNull() { + addCriterion("default_number is null"); + return (Criteria) this; + } + + public Criteria andDefaultNumberIsNotNull() { + addCriterion("default_number is not null"); + return (Criteria) this; + } + + public Criteria andDefaultNumberEqualTo(String value) { + addCriterion("default_number =", value, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberNotEqualTo(String value) { + addCriterion("default_number <>", value, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberGreaterThan(String value) { + addCriterion("default_number >", value, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberGreaterThanOrEqualTo(String value) { + addCriterion("default_number >=", value, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberLessThan(String value) { + addCriterion("default_number <", value, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberLessThanOrEqualTo(String value) { + addCriterion("default_number <=", value, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberLike(String value) { + addCriterion("default_number like", value, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberNotLike(String value) { + addCriterion("default_number not like", value, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberIn(List values) { + addCriterion("default_number in", values, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberNotIn(List values) { + addCriterion("default_number not in", values, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberBetween(String value1, String value2) { + addCriterion("default_number between", value1, value2, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andDefaultNumberNotBetween(String value1, String value2) { + addCriterion("default_number not between", value1, value2, "defaultNumber"); + return (Criteria) this; + } + + public Criteria andNumberIsNull() { + addCriterion("number is null"); + return (Criteria) this; + } + + public Criteria andNumberIsNotNull() { + addCriterion("number is not null"); + return (Criteria) this; + } + + public Criteria andNumberEqualTo(String value) { + addCriterion("number =", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotEqualTo(String value) { + addCriterion("number <>", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberGreaterThan(String value) { + addCriterion("number >", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberGreaterThanOrEqualTo(String value) { + addCriterion("number >=", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberLessThan(String value) { + addCriterion("number <", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberLessThanOrEqualTo(String value) { + addCriterion("number <=", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberLike(String value) { + addCriterion("number like", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotLike(String value) { + addCriterion("number not like", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberIn(List values) { + addCriterion("number in", values, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotIn(List values) { + addCriterion("number not in", values, "number"); + return (Criteria) this; + } + + public Criteria andNumberBetween(String value1, String value2) { + addCriterion("number between", value1, value2, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotBetween(String value1, String value2) { + addCriterion("number not between", value1, value2, "number"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andOperTimeIsNull() { + addCriterion("oper_time is null"); + return (Criteria) this; + } + + public Criteria andOperTimeIsNotNull() { + addCriterion("oper_time is not null"); + return (Criteria) this; + } + + public Criteria andOperTimeEqualTo(Date value) { + addCriterion("oper_time =", value, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeNotEqualTo(Date value) { + addCriterion("oper_time <>", value, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeGreaterThan(Date value) { + addCriterion("oper_time >", value, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeGreaterThanOrEqualTo(Date value) { + addCriterion("oper_time >=", value, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeLessThan(Date value) { + addCriterion("oper_time <", value, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeLessThanOrEqualTo(Date value) { + addCriterion("oper_time <=", value, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeIn(List values) { + addCriterion("oper_time in", values, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeNotIn(List values) { + addCriterion("oper_time not in", values, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeBetween(Date value1, Date value2) { + addCriterion("oper_time between", value1, value2, "operTime"); + return (Criteria) this; + } + + public Criteria andOperTimeNotBetween(Date value1, Date value2) { + addCriterion("oper_time not between", value1, value2, "operTime"); + return (Criteria) this; + } + + public Criteria andOrganIdIsNull() { + addCriterion("organ_id is null"); + return (Criteria) this; + } + + public Criteria andOrganIdIsNotNull() { + addCriterion("organ_id is not null"); + return (Criteria) this; + } + + public Criteria andOrganIdEqualTo(Long value) { + addCriterion("organ_id =", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdNotEqualTo(Long value) { + addCriterion("organ_id <>", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdGreaterThan(Long value) { + addCriterion("organ_id >", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdGreaterThanOrEqualTo(Long value) { + addCriterion("organ_id >=", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdLessThan(Long value) { + addCriterion("organ_id <", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdLessThanOrEqualTo(Long value) { + addCriterion("organ_id <=", value, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdIn(List values) { + addCriterion("organ_id in", values, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdNotIn(List values) { + addCriterion("organ_id not in", values, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdBetween(Long value1, Long value2) { + addCriterion("organ_id between", value1, value2, "organId"); + return (Criteria) this; + } + + public Criteria andOrganIdNotBetween(Long value1, Long value2) { + addCriterion("organ_id not between", value1, value2, "organId"); + return (Criteria) this; + } + + public Criteria andCreatorIsNull() { + addCriterion("creator is null"); + return (Criteria) this; + } + + public Criteria andCreatorIsNotNull() { + addCriterion("creator is not null"); + return (Criteria) this; + } + + public Criteria andCreatorEqualTo(Long value) { + addCriterion("creator =", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotEqualTo(Long value) { + addCriterion("creator <>", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThan(Long value) { + addCriterion("creator >", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThanOrEqualTo(Long value) { + addCriterion("creator >=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThan(Long value) { + addCriterion("creator <", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThanOrEqualTo(Long value) { + addCriterion("creator <=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorIn(List values) { + addCriterion("creator in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotIn(List values) { + addCriterion("creator not in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorBetween(Long value1, Long value2) { + addCriterion("creator between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotBetween(Long value1, Long value2) { + addCriterion("creator not between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andAccountIdIsNull() { + addCriterion("account_id is null"); + return (Criteria) this; + } + + public Criteria andAccountIdIsNotNull() { + addCriterion("account_id is not null"); + return (Criteria) this; + } + + public Criteria andAccountIdEqualTo(Long value) { + addCriterion("account_id =", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotEqualTo(Long value) { + addCriterion("account_id <>", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdGreaterThan(Long value) { + addCriterion("account_id >", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdGreaterThanOrEqualTo(Long value) { + addCriterion("account_id >=", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdLessThan(Long value) { + addCriterion("account_id <", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdLessThanOrEqualTo(Long value) { + addCriterion("account_id <=", value, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdIn(List values) { + addCriterion("account_id in", values, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotIn(List values) { + addCriterion("account_id not in", values, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdBetween(Long value1, Long value2) { + addCriterion("account_id between", value1, value2, "accountId"); + return (Criteria) this; + } + + public Criteria andAccountIdNotBetween(Long value1, Long value2) { + addCriterion("account_id not between", value1, value2, "accountId"); + return (Criteria) this; + } + + public Criteria andChangeAmountIsNull() { + addCriterion("change_amount is null"); + return (Criteria) this; + } + + public Criteria andChangeAmountIsNotNull() { + addCriterion("change_amount is not null"); + return (Criteria) this; + } + + public Criteria andChangeAmountEqualTo(BigDecimal value) { + addCriterion("change_amount =", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountNotEqualTo(BigDecimal value) { + addCriterion("change_amount <>", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountGreaterThan(BigDecimal value) { + addCriterion("change_amount >", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("change_amount >=", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountLessThan(BigDecimal value) { + addCriterion("change_amount <", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountLessThanOrEqualTo(BigDecimal value) { + addCriterion("change_amount <=", value, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountIn(List values) { + addCriterion("change_amount in", values, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountNotIn(List values) { + addCriterion("change_amount not in", values, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("change_amount between", value1, value2, "changeAmount"); + return (Criteria) this; + } + + public Criteria andChangeAmountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("change_amount not between", value1, value2, "changeAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountIsNull() { + addCriterion("back_amount is null"); + return (Criteria) this; + } + + public Criteria andBackAmountIsNotNull() { + addCriterion("back_amount is not null"); + return (Criteria) this; + } + + public Criteria andBackAmountEqualTo(BigDecimal value) { + addCriterion("back_amount =", value, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountNotEqualTo(BigDecimal value) { + addCriterion("back_amount <>", value, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountGreaterThan(BigDecimal value) { + addCriterion("back_amount >", value, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("back_amount >=", value, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountLessThan(BigDecimal value) { + addCriterion("back_amount <", value, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountLessThanOrEqualTo(BigDecimal value) { + addCriterion("back_amount <=", value, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountIn(List values) { + addCriterion("back_amount in", values, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountNotIn(List values) { + addCriterion("back_amount not in", values, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("back_amount between", value1, value2, "backAmount"); + return (Criteria) this; + } + + public Criteria andBackAmountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("back_amount not between", value1, value2, "backAmount"); + return (Criteria) this; + } + + public Criteria andTotalPriceIsNull() { + addCriterion("total_price is null"); + return (Criteria) this; + } + + public Criteria andTotalPriceIsNotNull() { + addCriterion("total_price is not null"); + return (Criteria) this; + } + + public Criteria andTotalPriceEqualTo(BigDecimal value) { + addCriterion("total_price =", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceNotEqualTo(BigDecimal value) { + addCriterion("total_price <>", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceGreaterThan(BigDecimal value) { + addCriterion("total_price >", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("total_price >=", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceLessThan(BigDecimal value) { + addCriterion("total_price <", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceLessThanOrEqualTo(BigDecimal value) { + addCriterion("total_price <=", value, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceIn(List values) { + addCriterion("total_price in", values, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceNotIn(List values) { + addCriterion("total_price not in", values, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("total_price between", value1, value2, "totalPrice"); + return (Criteria) this; + } + + public Criteria andTotalPriceNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("total_price not between", value1, value2, "totalPrice"); + return (Criteria) this; + } + + public Criteria andPayTypeIsNull() { + addCriterion("pay_type is null"); + return (Criteria) this; + } + + public Criteria andPayTypeIsNotNull() { + addCriterion("pay_type is not null"); + return (Criteria) this; + } + + public Criteria andPayTypeEqualTo(String value) { + addCriterion("pay_type =", value, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeNotEqualTo(String value) { + addCriterion("pay_type <>", value, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeGreaterThan(String value) { + addCriterion("pay_type >", value, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeGreaterThanOrEqualTo(String value) { + addCriterion("pay_type >=", value, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeLessThan(String value) { + addCriterion("pay_type <", value, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeLessThanOrEqualTo(String value) { + addCriterion("pay_type <=", value, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeLike(String value) { + addCriterion("pay_type like", value, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeNotLike(String value) { + addCriterion("pay_type not like", value, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeIn(List values) { + addCriterion("pay_type in", values, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeNotIn(List values) { + addCriterion("pay_type not in", values, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeBetween(String value1, String value2) { + addCriterion("pay_type between", value1, value2, "payType"); + return (Criteria) this; + } + + public Criteria andPayTypeNotBetween(String value1, String value2) { + addCriterion("pay_type not between", value1, value2, "payType"); + return (Criteria) this; + } + + public Criteria andBillTypeIsNull() { + addCriterion("bill_type is null"); + return (Criteria) this; + } + + public Criteria andBillTypeIsNotNull() { + addCriterion("bill_type is not null"); + return (Criteria) this; + } + + public Criteria andBillTypeEqualTo(String value) { + addCriterion("bill_type =", value, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeNotEqualTo(String value) { + addCriterion("bill_type <>", value, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeGreaterThan(String value) { + addCriterion("bill_type >", value, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeGreaterThanOrEqualTo(String value) { + addCriterion("bill_type >=", value, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeLessThan(String value) { + addCriterion("bill_type <", value, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeLessThanOrEqualTo(String value) { + addCriterion("bill_type <=", value, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeLike(String value) { + addCriterion("bill_type like", value, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeNotLike(String value) { + addCriterion("bill_type not like", value, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeIn(List values) { + addCriterion("bill_type in", values, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeNotIn(List values) { + addCriterion("bill_type not in", values, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeBetween(String value1, String value2) { + addCriterion("bill_type between", value1, value2, "billType"); + return (Criteria) this; + } + + public Criteria andBillTypeNotBetween(String value1, String value2) { + addCriterion("bill_type not between", value1, value2, "billType"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andFileNameIsNull() { + addCriterion("file_name is null"); + return (Criteria) this; + } + + public Criteria andFileNameIsNotNull() { + addCriterion("file_name is not null"); + return (Criteria) this; + } + + public Criteria andFileNameEqualTo(String value) { + addCriterion("file_name =", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotEqualTo(String value) { + addCriterion("file_name <>", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameGreaterThan(String value) { + addCriterion("file_name >", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameGreaterThanOrEqualTo(String value) { + addCriterion("file_name >=", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLessThan(String value) { + addCriterion("file_name <", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLessThanOrEqualTo(String value) { + addCriterion("file_name <=", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLike(String value) { + addCriterion("file_name like", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotLike(String value) { + addCriterion("file_name not like", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameIn(List values) { + addCriterion("file_name in", values, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotIn(List values) { + addCriterion("file_name not in", values, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameBetween(String value1, String value2) { + addCriterion("file_name between", value1, value2, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotBetween(String value1, String value2) { + addCriterion("file_name not between", value1, value2, "fileName"); + return (Criteria) this; + } + + public Criteria andSalesManIsNull() { + addCriterion("sales_man is null"); + return (Criteria) this; + } + + public Criteria andSalesManIsNotNull() { + addCriterion("sales_man is not null"); + return (Criteria) this; + } + + public Criteria andSalesManEqualTo(String value) { + addCriterion("sales_man =", value, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManNotEqualTo(String value) { + addCriterion("sales_man <>", value, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManGreaterThan(String value) { + addCriterion("sales_man >", value, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManGreaterThanOrEqualTo(String value) { + addCriterion("sales_man >=", value, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManLessThan(String value) { + addCriterion("sales_man <", value, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManLessThanOrEqualTo(String value) { + addCriterion("sales_man <=", value, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManLike(String value) { + addCriterion("sales_man like", value, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManNotLike(String value) { + addCriterion("sales_man not like", value, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManIn(List values) { + addCriterion("sales_man in", values, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManNotIn(List values) { + addCriterion("sales_man not in", values, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManBetween(String value1, String value2) { + addCriterion("sales_man between", value1, value2, "salesMan"); + return (Criteria) this; + } + + public Criteria andSalesManNotBetween(String value1, String value2) { + addCriterion("sales_man not between", value1, value2, "salesMan"); + return (Criteria) this; + } + + public Criteria andAccountIdListIsNull() { + addCriterion("account_id_list is null"); + return (Criteria) this; + } + + public Criteria andAccountIdListIsNotNull() { + addCriterion("account_id_list is not null"); + return (Criteria) this; + } + + public Criteria andAccountIdListEqualTo(String value) { + addCriterion("account_id_list =", value, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListNotEqualTo(String value) { + addCriterion("account_id_list <>", value, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListGreaterThan(String value) { + addCriterion("account_id_list >", value, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListGreaterThanOrEqualTo(String value) { + addCriterion("account_id_list >=", value, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListLessThan(String value) { + addCriterion("account_id_list <", value, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListLessThanOrEqualTo(String value) { + addCriterion("account_id_list <=", value, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListLike(String value) { + addCriterion("account_id_list like", value, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListNotLike(String value) { + addCriterion("account_id_list not like", value, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListIn(List values) { + addCriterion("account_id_list in", values, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListNotIn(List values) { + addCriterion("account_id_list not in", values, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListBetween(String value1, String value2) { + addCriterion("account_id_list between", value1, value2, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountIdListNotBetween(String value1, String value2) { + addCriterion("account_id_list not between", value1, value2, "accountIdList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListIsNull() { + addCriterion("account_money_list is null"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListIsNotNull() { + addCriterion("account_money_list is not null"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListEqualTo(String value) { + addCriterion("account_money_list =", value, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListNotEqualTo(String value) { + addCriterion("account_money_list <>", value, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListGreaterThan(String value) { + addCriterion("account_money_list >", value, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListGreaterThanOrEqualTo(String value) { + addCriterion("account_money_list >=", value, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListLessThan(String value) { + addCriterion("account_money_list <", value, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListLessThanOrEqualTo(String value) { + addCriterion("account_money_list <=", value, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListLike(String value) { + addCriterion("account_money_list like", value, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListNotLike(String value) { + addCriterion("account_money_list not like", value, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListIn(List values) { + addCriterion("account_money_list in", values, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListNotIn(List values) { + addCriterion("account_money_list not in", values, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListBetween(String value1, String value2) { + addCriterion("account_money_list between", value1, value2, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andAccountMoneyListNotBetween(String value1, String value2) { + addCriterion("account_money_list not between", value1, value2, "accountMoneyList"); + return (Criteria) this; + } + + public Criteria andDiscountIsNull() { + addCriterion("discount is null"); + return (Criteria) this; + } + + public Criteria andDiscountIsNotNull() { + addCriterion("discount is not null"); + return (Criteria) this; + } + + public Criteria andDiscountEqualTo(BigDecimal value) { + addCriterion("discount =", value, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountNotEqualTo(BigDecimal value) { + addCriterion("discount <>", value, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountGreaterThan(BigDecimal value) { + addCriterion("discount >", value, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("discount >=", value, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountLessThan(BigDecimal value) { + addCriterion("discount <", value, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountLessThanOrEqualTo(BigDecimal value) { + addCriterion("discount <=", value, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountIn(List values) { + addCriterion("discount in", values, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountNotIn(List values) { + addCriterion("discount not in", values, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("discount between", value1, value2, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("discount not between", value1, value2, "discount"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyIsNull() { + addCriterion("discount_money is null"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyIsNotNull() { + addCriterion("discount_money is not null"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyEqualTo(BigDecimal value) { + addCriterion("discount_money =", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyNotEqualTo(BigDecimal value) { + addCriterion("discount_money <>", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyGreaterThan(BigDecimal value) { + addCriterion("discount_money >", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("discount_money >=", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyLessThan(BigDecimal value) { + addCriterion("discount_money <", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyLessThanOrEqualTo(BigDecimal value) { + addCriterion("discount_money <=", value, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyIn(List values) { + addCriterion("discount_money in", values, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyNotIn(List values) { + addCriterion("discount_money not in", values, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("discount_money between", value1, value2, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountMoneyNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("discount_money not between", value1, value2, "discountMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyIsNull() { + addCriterion("discount_last_money is null"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyIsNotNull() { + addCriterion("discount_last_money is not null"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyEqualTo(BigDecimal value) { + addCriterion("discount_last_money =", value, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyNotEqualTo(BigDecimal value) { + addCriterion("discount_last_money <>", value, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyGreaterThan(BigDecimal value) { + addCriterion("discount_last_money >", value, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("discount_last_money >=", value, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyLessThan(BigDecimal value) { + addCriterion("discount_last_money <", value, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyLessThanOrEqualTo(BigDecimal value) { + addCriterion("discount_last_money <=", value, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyIn(List values) { + addCriterion("discount_last_money in", values, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyNotIn(List values) { + addCriterion("discount_last_money not in", values, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("discount_last_money between", value1, value2, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andDiscountLastMoneyNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("discount_last_money not between", value1, value2, "discountLastMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyIsNull() { + addCriterion("other_money is null"); + return (Criteria) this; + } + + public Criteria andOtherMoneyIsNotNull() { + addCriterion("other_money is not null"); + return (Criteria) this; + } + + public Criteria andOtherMoneyEqualTo(BigDecimal value) { + addCriterion("other_money =", value, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyNotEqualTo(BigDecimal value) { + addCriterion("other_money <>", value, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyGreaterThan(BigDecimal value) { + addCriterion("other_money >", value, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("other_money >=", value, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyLessThan(BigDecimal value) { + addCriterion("other_money <", value, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyLessThanOrEqualTo(BigDecimal value) { + addCriterion("other_money <=", value, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyIn(List values) { + addCriterion("other_money in", values, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyNotIn(List values) { + addCriterion("other_money not in", values, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("other_money between", value1, value2, "otherMoney"); + return (Criteria) this; + } + + public Criteria andOtherMoneyNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("other_money not between", value1, value2, "otherMoney"); + return (Criteria) this; + } + + public Criteria andDepositIsNull() { + addCriterion("deposit is null"); + return (Criteria) this; + } + + public Criteria andDepositIsNotNull() { + addCriterion("deposit is not null"); + return (Criteria) this; + } + + public Criteria andDepositEqualTo(BigDecimal value) { + addCriterion("deposit =", value, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositNotEqualTo(BigDecimal value) { + addCriterion("deposit <>", value, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositGreaterThan(BigDecimal value) { + addCriterion("deposit >", value, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("deposit >=", value, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositLessThan(BigDecimal value) { + addCriterion("deposit <", value, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositLessThanOrEqualTo(BigDecimal value) { + addCriterion("deposit <=", value, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositIn(List values) { + addCriterion("deposit in", values, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositNotIn(List values) { + addCriterion("deposit not in", values, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("deposit between", value1, value2, "deposit"); + return (Criteria) this; + } + + public Criteria andDepositNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("deposit not between", value1, value2, "deposit"); + return (Criteria) this; + } + + public Criteria andLastDepositIsNull() { + addCriterion("last_deposit is null"); + return (Criteria) this; + } + + public Criteria andLastDepositIsNotNull() { + addCriterion("last_deposit is not null"); + return (Criteria) this; + } + + public Criteria andLastDepositEqualTo(BigDecimal value) { + addCriterion("last_deposit =", value, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositNotEqualTo(BigDecimal value) { + addCriterion("last_deposit <>", value, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositGreaterThan(BigDecimal value) { + addCriterion("last_deposit >", value, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("last_deposit >=", value, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositLessThan(BigDecimal value) { + addCriterion("last_deposit <", value, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositLessThanOrEqualTo(BigDecimal value) { + addCriterion("last_deposit <=", value, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositIn(List values) { + addCriterion("last_deposit in", values, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositNotIn(List values) { + addCriterion("last_deposit not in", values, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("last_deposit between", value1, value2, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andLastDepositNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("last_deposit not between", value1, value2, "lastDeposit"); + return (Criteria) this; + } + + public Criteria andDebtIsNull() { + addCriterion("debt is null"); + return (Criteria) this; + } + + public Criteria andDebtIsNotNull() { + addCriterion("debt is not null"); + return (Criteria) this; + } + + public Criteria andDebtEqualTo(BigDecimal value) { + addCriterion("debt =", value, "debt"); + return (Criteria) this; + } + + public Criteria andDebtNotEqualTo(BigDecimal value) { + addCriterion("debt <>", value, "debt"); + return (Criteria) this; + } + + public Criteria andDebtGreaterThan(BigDecimal value) { + addCriterion("debt >", value, "debt"); + return (Criteria) this; + } + + public Criteria andDebtGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("debt >=", value, "debt"); + return (Criteria) this; + } + + public Criteria andDebtLessThan(BigDecimal value) { + addCriterion("debt <", value, "debt"); + return (Criteria) this; + } + + public Criteria andDebtLessThanOrEqualTo(BigDecimal value) { + addCriterion("debt <=", value, "debt"); + return (Criteria) this; + } + + public Criteria andDebtIn(List values) { + addCriterion("debt in", values, "debt"); + return (Criteria) this; + } + + public Criteria andDebtNotIn(List values) { + addCriterion("debt not in", values, "debt"); + return (Criteria) this; + } + + public Criteria andDebtBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("debt between", value1, value2, "debt"); + return (Criteria) this; + } + + public Criteria andDebtNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("debt not between", value1, value2, "debt"); + return (Criteria) this; + } + + public Criteria andLastDebtIsNull() { + addCriterion("last_debt is null"); + return (Criteria) this; + } + + public Criteria andLastDebtIsNotNull() { + addCriterion("last_debt is not null"); + return (Criteria) this; + } + + public Criteria andLastDebtEqualTo(BigDecimal value) { + addCriterion("last_debt =", value, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtNotEqualTo(BigDecimal value) { + addCriterion("last_debt <>", value, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtGreaterThan(BigDecimal value) { + addCriterion("last_debt >", value, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("last_debt >=", value, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtLessThan(BigDecimal value) { + addCriterion("last_debt <", value, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtLessThanOrEqualTo(BigDecimal value) { + addCriterion("last_debt <=", value, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtIn(List values) { + addCriterion("last_debt in", values, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtNotIn(List values) { + addCriterion("last_debt not in", values, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("last_debt between", value1, value2, "lastDebt"); + return (Criteria) this; + } + + public Criteria andLastDebtNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("last_debt not between", value1, value2, "lastDebt"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(String value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(String value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(String value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(String value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(String value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(String value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLike(String value) { + addCriterion("status like", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotLike(String value) { + addCriterion("status not like", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(String value1, String value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(String value1, String value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusIsNull() { + addCriterion("purchase_status is null"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusIsNotNull() { + addCriterion("purchase_status is not null"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusEqualTo(String value) { + addCriterion("purchase_status =", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusNotEqualTo(String value) { + addCriterion("purchase_status <>", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusGreaterThan(String value) { + addCriterion("purchase_status >", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusGreaterThanOrEqualTo(String value) { + addCriterion("purchase_status >=", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusLessThan(String value) { + addCriterion("purchase_status <", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusLessThanOrEqualTo(String value) { + addCriterion("purchase_status <=", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusLike(String value) { + addCriterion("purchase_status like", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusNotLike(String value) { + addCriterion("purchase_status not like", value, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusIn(List values) { + addCriterion("purchase_status in", values, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusNotIn(List values) { + addCriterion("purchase_status not in", values, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusBetween(String value1, String value2) { + addCriterion("purchase_status between", value1, value2, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andPurchaseStatusNotBetween(String value1, String value2) { + addCriterion("purchase_status not between", value1, value2, "purchaseStatus"); + return (Criteria) this; + } + + public Criteria andSourceIsNull() { + addCriterion("source is null"); + return (Criteria) this; + } + + public Criteria andSourceIsNotNull() { + addCriterion("source is not null"); + return (Criteria) this; + } + + public Criteria andSourceEqualTo(String value) { + addCriterion("source =", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotEqualTo(String value) { + addCriterion("source <>", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceGreaterThan(String value) { + addCriterion("source >", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceGreaterThanOrEqualTo(String value) { + addCriterion("source >=", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceLessThan(String value) { + addCriterion("source <", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceLessThanOrEqualTo(String value) { + addCriterion("source <=", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceLike(String value) { + addCriterion("source like", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotLike(String value) { + addCriterion("source not like", value, "source"); + return (Criteria) this; + } + + public Criteria andSourceIn(List values) { + addCriterion("source in", values, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotIn(List values) { + addCriterion("source not in", values, "source"); + return (Criteria) this; + } + + public Criteria andSourceBetween(String value1, String value2) { + addCriterion("source between", value1, value2, "source"); + return (Criteria) this; + } + + public Criteria andSourceNotBetween(String value1, String value2) { + addCriterion("source not between", value1, value2, "source"); + return (Criteria) this; + } + + public Criteria andLinkNumberIsNull() { + addCriterion("link_number is null"); + return (Criteria) this; + } + + public Criteria andLinkNumberIsNotNull() { + addCriterion("link_number is not null"); + return (Criteria) this; + } + + public Criteria andLinkNumberEqualTo(String value) { + addCriterion("link_number =", value, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberNotEqualTo(String value) { + addCriterion("link_number <>", value, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberGreaterThan(String value) { + addCriterion("link_number >", value, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberGreaterThanOrEqualTo(String value) { + addCriterion("link_number >=", value, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberLessThan(String value) { + addCriterion("link_number <", value, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberLessThanOrEqualTo(String value) { + addCriterion("link_number <=", value, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberLike(String value) { + addCriterion("link_number like", value, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberNotLike(String value) { + addCriterion("link_number not like", value, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberIn(List values) { + addCriterion("link_number in", values, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberNotIn(List values) { + addCriterion("link_number not in", values, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberBetween(String value1, String value2) { + addCriterion("link_number between", value1, value2, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkNumberNotBetween(String value1, String value2) { + addCriterion("link_number not between", value1, value2, "linkNumber"); + return (Criteria) this; + } + + public Criteria andLinkApplyIsNull() { + addCriterion("link_apply is null"); + return (Criteria) this; + } + + public Criteria andLinkApplyIsNotNull() { + addCriterion("link_apply is not null"); + return (Criteria) this; + } + + public Criteria andLinkApplyEqualTo(String value) { + addCriterion("link_apply =", value, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyNotEqualTo(String value) { + addCriterion("link_apply <>", value, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyGreaterThan(String value) { + addCriterion("link_apply >", value, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyGreaterThanOrEqualTo(String value) { + addCriterion("link_apply >=", value, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyLessThan(String value) { + addCriterion("link_apply <", value, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyLessThanOrEqualTo(String value) { + addCriterion("link_apply <=", value, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyLike(String value) { + addCriterion("link_apply like", value, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyNotLike(String value) { + addCriterion("link_apply not like", value, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyIn(List values) { + addCriterion("link_apply in", values, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyNotIn(List values) { + addCriterion("link_apply not in", values, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyBetween(String value1, String value2) { + addCriterion("link_apply between", value1, value2, "linkApply"); + return (Criteria) this; + } + + public Criteria andLinkApplyNotBetween(String value1, String value2) { + addCriterion("link_apply not between", value1, value2, "linkApply"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHeadVo4Body.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHeadVo4Body.java new file mode 100644 index 0000000..906538b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotHeadVo4Body.java @@ -0,0 +1,46 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class DepotHeadVo4Body { + + private Long id; + + private String info; + + private String rows; + + private BigDecimal preTotalPrice; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getInfo() { + return info; + } + + public void setInfo(String info) { + this.info = info; + } + + public String getRows() { + return rows; + } + + public void setRows(String rows) { + this.rows = rows; + } + + public BigDecimal getPreTotalPrice() { + return preTotalPrice; + } + + public void setPreTotalPrice(BigDecimal preTotalPrice) { + this.preTotalPrice = preTotalPrice; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItem.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItem.java new file mode 100644 index 0000000..6705ef0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItem.java @@ -0,0 +1,256 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +public class DepotItem { + private Long id; + + private Long headerId; + + private Long materialId; + + private Long materialExtendId; + + private String materialUnit; + + private String sku; + + private BigDecimal operNumber; + + private BigDecimal basicNumber; + + private BigDecimal unitPrice; + + private BigDecimal purchaseUnitPrice; + + private BigDecimal taxUnitPrice; + + private BigDecimal allPrice; + + private String remark; + + private Long depotId; + + private Long anotherDepotId; + + private BigDecimal taxRate; + + private BigDecimal taxMoney; + + private BigDecimal taxLastMoney; + + private String materialType; + + private String snList; + + private String batchNumber; + + private Date expirationDate; + + private Long linkId; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getHeaderId() { + return headerId; + } + + public void setHeaderId(Long headerId) { + this.headerId = headerId; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getMaterialExtendId() { + return materialExtendId; + } + + public void setMaterialExtendId(Long materialExtendId) { + this.materialExtendId = materialExtendId; + } + + public String getMaterialUnit() { + return materialUnit; + } + + public void setMaterialUnit(String materialUnit) { + this.materialUnit = materialUnit == null ? null : materialUnit.trim(); + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku == null ? null : sku.trim(); + } + + public BigDecimal getOperNumber() { + return operNumber; + } + + public void setOperNumber(BigDecimal operNumber) { + this.operNumber = operNumber; + } + + public BigDecimal getBasicNumber() { + return basicNumber; + } + + public void setBasicNumber(BigDecimal basicNumber) { + this.basicNumber = basicNumber; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public BigDecimal getPurchaseUnitPrice() { + return purchaseUnitPrice; + } + + public void setPurchaseUnitPrice(BigDecimal purchaseUnitPrice) { + this.purchaseUnitPrice = purchaseUnitPrice; + } + + public BigDecimal getTaxUnitPrice() { + return taxUnitPrice; + } + + public void setTaxUnitPrice(BigDecimal taxUnitPrice) { + this.taxUnitPrice = taxUnitPrice; + } + + public BigDecimal getAllPrice() { + return allPrice; + } + + public void setAllPrice(BigDecimal allPrice) { + this.allPrice = allPrice; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public Long getAnotherDepotId() { + return anotherDepotId; + } + + public void setAnotherDepotId(Long anotherDepotId) { + this.anotherDepotId = anotherDepotId; + } + + public BigDecimal getTaxRate() { + return taxRate; + } + + public void setTaxRate(BigDecimal taxRate) { + this.taxRate = taxRate; + } + + public BigDecimal getTaxMoney() { + return taxMoney; + } + + public void setTaxMoney(BigDecimal taxMoney) { + this.taxMoney = taxMoney; + } + + public BigDecimal getTaxLastMoney() { + return taxLastMoney; + } + + public void setTaxLastMoney(BigDecimal taxLastMoney) { + this.taxLastMoney = taxLastMoney; + } + + public String getMaterialType() { + return materialType; + } + + public void setMaterialType(String materialType) { + this.materialType = materialType == null ? null : materialType.trim(); + } + + public String getSnList() { + return snList; + } + + public void setSnList(String snList) { + this.snList = snList == null ? null : snList.trim(); + } + + public String getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(String batchNumber) { + this.batchNumber = batchNumber == null ? null : batchNumber.trim(); + } + + public Date getExpirationDate() { + return expirationDate; + } + + public void setExpirationDate(Date expirationDate) { + this.expirationDate = expirationDate; + } + + public Long getLinkId() { + return linkId; + } + + public void setLinkId(Long linkId) { + this.linkId = linkId; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemExample.java new file mode 100644 index 0000000..0d0f0f4 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemExample.java @@ -0,0 +1,1771 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class DepotItemExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public DepotItemExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andHeaderIdIsNull() { + addCriterion("header_id is null"); + return (Criteria) this; + } + + public Criteria andHeaderIdIsNotNull() { + addCriterion("header_id is not null"); + return (Criteria) this; + } + + public Criteria andHeaderIdEqualTo(Long value) { + addCriterion("header_id =", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdNotEqualTo(Long value) { + addCriterion("header_id <>", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdGreaterThan(Long value) { + addCriterion("header_id >", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdGreaterThanOrEqualTo(Long value) { + addCriterion("header_id >=", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdLessThan(Long value) { + addCriterion("header_id <", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdLessThanOrEqualTo(Long value) { + addCriterion("header_id <=", value, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdIn(List values) { + addCriterion("header_id in", values, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdNotIn(List values) { + addCriterion("header_id not in", values, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdBetween(Long value1, Long value2) { + addCriterion("header_id between", value1, value2, "headerId"); + return (Criteria) this; + } + + public Criteria andHeaderIdNotBetween(Long value1, Long value2) { + addCriterion("header_id not between", value1, value2, "headerId"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNull() { + addCriterion("material_id is null"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNotNull() { + addCriterion("material_id is not null"); + return (Criteria) this; + } + + public Criteria andMaterialIdEqualTo(Long value) { + addCriterion("material_id =", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotEqualTo(Long value) { + addCriterion("material_id <>", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThan(Long value) { + addCriterion("material_id >", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThanOrEqualTo(Long value) { + addCriterion("material_id >=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThan(Long value) { + addCriterion("material_id <", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThanOrEqualTo(Long value) { + addCriterion("material_id <=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdIn(List values) { + addCriterion("material_id in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotIn(List values) { + addCriterion("material_id not in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdBetween(Long value1, Long value2) { + addCriterion("material_id between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotBetween(Long value1, Long value2) { + addCriterion("material_id not between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdIsNull() { + addCriterion("material_extend_id is null"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdIsNotNull() { + addCriterion("material_extend_id is not null"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdEqualTo(Long value) { + addCriterion("material_extend_id =", value, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdNotEqualTo(Long value) { + addCriterion("material_extend_id <>", value, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdGreaterThan(Long value) { + addCriterion("material_extend_id >", value, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdGreaterThanOrEqualTo(Long value) { + addCriterion("material_extend_id >=", value, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdLessThan(Long value) { + addCriterion("material_extend_id <", value, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdLessThanOrEqualTo(Long value) { + addCriterion("material_extend_id <=", value, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdIn(List values) { + addCriterion("material_extend_id in", values, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdNotIn(List values) { + addCriterion("material_extend_id not in", values, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdBetween(Long value1, Long value2) { + addCriterion("material_extend_id between", value1, value2, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialExtendIdNotBetween(Long value1, Long value2) { + addCriterion("material_extend_id not between", value1, value2, "materialExtendId"); + return (Criteria) this; + } + + public Criteria andMaterialUnitIsNull() { + addCriterion("material_unit is null"); + return (Criteria) this; + } + + public Criteria andMaterialUnitIsNotNull() { + addCriterion("material_unit is not null"); + return (Criteria) this; + } + + public Criteria andMaterialUnitEqualTo(String value) { + addCriterion("material_unit =", value, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitNotEqualTo(String value) { + addCriterion("material_unit <>", value, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitGreaterThan(String value) { + addCriterion("material_unit >", value, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitGreaterThanOrEqualTo(String value) { + addCriterion("material_unit >=", value, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitLessThan(String value) { + addCriterion("material_unit <", value, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitLessThanOrEqualTo(String value) { + addCriterion("material_unit <=", value, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitLike(String value) { + addCriterion("material_unit like", value, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitNotLike(String value) { + addCriterion("material_unit not like", value, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitIn(List values) { + addCriterion("material_unit in", values, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitNotIn(List values) { + addCriterion("material_unit not in", values, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitBetween(String value1, String value2) { + addCriterion("material_unit between", value1, value2, "materialUnit"); + return (Criteria) this; + } + + public Criteria andMaterialUnitNotBetween(String value1, String value2) { + addCriterion("material_unit not between", value1, value2, "materialUnit"); + return (Criteria) this; + } + + public Criteria andSkuIsNull() { + addCriterion("sku is null"); + return (Criteria) this; + } + + public Criteria andSkuIsNotNull() { + addCriterion("sku is not null"); + return (Criteria) this; + } + + public Criteria andSkuEqualTo(String value) { + addCriterion("sku =", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuNotEqualTo(String value) { + addCriterion("sku <>", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuGreaterThan(String value) { + addCriterion("sku >", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuGreaterThanOrEqualTo(String value) { + addCriterion("sku >=", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuLessThan(String value) { + addCriterion("sku <", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuLessThanOrEqualTo(String value) { + addCriterion("sku <=", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuLike(String value) { + addCriterion("sku like", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuNotLike(String value) { + addCriterion("sku not like", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuIn(List values) { + addCriterion("sku in", values, "sku"); + return (Criteria) this; + } + + public Criteria andSkuNotIn(List values) { + addCriterion("sku not in", values, "sku"); + return (Criteria) this; + } + + public Criteria andSkuBetween(String value1, String value2) { + addCriterion("sku between", value1, value2, "sku"); + return (Criteria) this; + } + + public Criteria andSkuNotBetween(String value1, String value2) { + addCriterion("sku not between", value1, value2, "sku"); + return (Criteria) this; + } + + public Criteria andOperNumberIsNull() { + addCriterion("oper_number is null"); + return (Criteria) this; + } + + public Criteria andOperNumberIsNotNull() { + addCriterion("oper_number is not null"); + return (Criteria) this; + } + + public Criteria andOperNumberEqualTo(BigDecimal value) { + addCriterion("oper_number =", value, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberNotEqualTo(BigDecimal value) { + addCriterion("oper_number <>", value, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberGreaterThan(BigDecimal value) { + addCriterion("oper_number >", value, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("oper_number >=", value, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberLessThan(BigDecimal value) { + addCriterion("oper_number <", value, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberLessThanOrEqualTo(BigDecimal value) { + addCriterion("oper_number <=", value, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberIn(List values) { + addCriterion("oper_number in", values, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberNotIn(List values) { + addCriterion("oper_number not in", values, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("oper_number between", value1, value2, "operNumber"); + return (Criteria) this; + } + + public Criteria andOperNumberNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("oper_number not between", value1, value2, "operNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberIsNull() { + addCriterion("basic_number is null"); + return (Criteria) this; + } + + public Criteria andBasicNumberIsNotNull() { + addCriterion("basic_number is not null"); + return (Criteria) this; + } + + public Criteria andBasicNumberEqualTo(BigDecimal value) { + addCriterion("basic_number =", value, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberNotEqualTo(BigDecimal value) { + addCriterion("basic_number <>", value, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberGreaterThan(BigDecimal value) { + addCriterion("basic_number >", value, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("basic_number >=", value, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberLessThan(BigDecimal value) { + addCriterion("basic_number <", value, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberLessThanOrEqualTo(BigDecimal value) { + addCriterion("basic_number <=", value, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberIn(List values) { + addCriterion("basic_number in", values, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberNotIn(List values) { + addCriterion("basic_number not in", values, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("basic_number between", value1, value2, "basicNumber"); + return (Criteria) this; + } + + public Criteria andBasicNumberNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("basic_number not between", value1, value2, "basicNumber"); + return (Criteria) this; + } + + public Criteria andUnitPriceIsNull() { + addCriterion("unit_price is null"); + return (Criteria) this; + } + + public Criteria andUnitPriceIsNotNull() { + addCriterion("unit_price is not null"); + return (Criteria) this; + } + + public Criteria andUnitPriceEqualTo(BigDecimal value) { + addCriterion("unit_price =", value, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceNotEqualTo(BigDecimal value) { + addCriterion("unit_price <>", value, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceGreaterThan(BigDecimal value) { + addCriterion("unit_price >", value, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("unit_price >=", value, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceLessThan(BigDecimal value) { + addCriterion("unit_price <", value, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceLessThanOrEqualTo(BigDecimal value) { + addCriterion("unit_price <=", value, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceIn(List values) { + addCriterion("unit_price in", values, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceNotIn(List values) { + addCriterion("unit_price not in", values, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("unit_price between", value1, value2, "unitPrice"); + return (Criteria) this; + } + + public Criteria andUnitPriceNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("unit_price not between", value1, value2, "unitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceIsNull() { + addCriterion("purchase_unit_price is null"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceIsNotNull() { + addCriterion("purchase_unit_price is not null"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceEqualTo(BigDecimal value) { + addCriterion("purchase_unit_price =", value, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceNotEqualTo(BigDecimal value) { + addCriterion("purchase_unit_price <>", value, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceGreaterThan(BigDecimal value) { + addCriterion("purchase_unit_price >", value, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("purchase_unit_price >=", value, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceLessThan(BigDecimal value) { + addCriterion("purchase_unit_price <", value, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceLessThanOrEqualTo(BigDecimal value) { + addCriterion("purchase_unit_price <=", value, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceIn(List values) { + addCriterion("purchase_unit_price in", values, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceNotIn(List values) { + addCriterion("purchase_unit_price not in", values, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("purchase_unit_price between", value1, value2, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andPurchaseUnitPriceNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("purchase_unit_price not between", value1, value2, "purchaseUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceIsNull() { + addCriterion("tax_unit_price is null"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceIsNotNull() { + addCriterion("tax_unit_price is not null"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceEqualTo(BigDecimal value) { + addCriterion("tax_unit_price =", value, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceNotEqualTo(BigDecimal value) { + addCriterion("tax_unit_price <>", value, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceGreaterThan(BigDecimal value) { + addCriterion("tax_unit_price >", value, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("tax_unit_price >=", value, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceLessThan(BigDecimal value) { + addCriterion("tax_unit_price <", value, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceLessThanOrEqualTo(BigDecimal value) { + addCriterion("tax_unit_price <=", value, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceIn(List values) { + addCriterion("tax_unit_price in", values, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceNotIn(List values) { + addCriterion("tax_unit_price not in", values, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_unit_price between", value1, value2, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andTaxUnitPriceNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_unit_price not between", value1, value2, "taxUnitPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceIsNull() { + addCriterion("all_price is null"); + return (Criteria) this; + } + + public Criteria andAllPriceIsNotNull() { + addCriterion("all_price is not null"); + return (Criteria) this; + } + + public Criteria andAllPriceEqualTo(BigDecimal value) { + addCriterion("all_price =", value, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceNotEqualTo(BigDecimal value) { + addCriterion("all_price <>", value, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceGreaterThan(BigDecimal value) { + addCriterion("all_price >", value, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("all_price >=", value, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceLessThan(BigDecimal value) { + addCriterion("all_price <", value, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceLessThanOrEqualTo(BigDecimal value) { + addCriterion("all_price <=", value, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceIn(List values) { + addCriterion("all_price in", values, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceNotIn(List values) { + addCriterion("all_price not in", values, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("all_price between", value1, value2, "allPrice"); + return (Criteria) this; + } + + public Criteria andAllPriceNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("all_price not between", value1, value2, "allPrice"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNull() { + addCriterion("depot_id is null"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNotNull() { + addCriterion("depot_id is not null"); + return (Criteria) this; + } + + public Criteria andDepotIdEqualTo(Long value) { + addCriterion("depot_id =", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotEqualTo(Long value) { + addCriterion("depot_id <>", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThan(Long value) { + addCriterion("depot_id >", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThanOrEqualTo(Long value) { + addCriterion("depot_id >=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThan(Long value) { + addCriterion("depot_id <", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThanOrEqualTo(Long value) { + addCriterion("depot_id <=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdIn(List values) { + addCriterion("depot_id in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotIn(List values) { + addCriterion("depot_id not in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdBetween(Long value1, Long value2) { + addCriterion("depot_id between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotBetween(Long value1, Long value2) { + addCriterion("depot_id not between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdIsNull() { + addCriterion("another_depot_id is null"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdIsNotNull() { + addCriterion("another_depot_id is not null"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdEqualTo(Long value) { + addCriterion("another_depot_id =", value, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdNotEqualTo(Long value) { + addCriterion("another_depot_id <>", value, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdGreaterThan(Long value) { + addCriterion("another_depot_id >", value, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdGreaterThanOrEqualTo(Long value) { + addCriterion("another_depot_id >=", value, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdLessThan(Long value) { + addCriterion("another_depot_id <", value, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdLessThanOrEqualTo(Long value) { + addCriterion("another_depot_id <=", value, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdIn(List values) { + addCriterion("another_depot_id in", values, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdNotIn(List values) { + addCriterion("another_depot_id not in", values, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdBetween(Long value1, Long value2) { + addCriterion("another_depot_id between", value1, value2, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andAnotherDepotIdNotBetween(Long value1, Long value2) { + addCriterion("another_depot_id not between", value1, value2, "anotherDepotId"); + return (Criteria) this; + } + + public Criteria andTaxRateIsNull() { + addCriterion("tax_rate is null"); + return (Criteria) this; + } + + public Criteria andTaxRateIsNotNull() { + addCriterion("tax_rate is not null"); + return (Criteria) this; + } + + public Criteria andTaxRateEqualTo(BigDecimal value) { + addCriterion("tax_rate =", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateNotEqualTo(BigDecimal value) { + addCriterion("tax_rate <>", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateGreaterThan(BigDecimal value) { + addCriterion("tax_rate >", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("tax_rate >=", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateLessThan(BigDecimal value) { + addCriterion("tax_rate <", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateLessThanOrEqualTo(BigDecimal value) { + addCriterion("tax_rate <=", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateIn(List values) { + addCriterion("tax_rate in", values, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateNotIn(List values) { + addCriterion("tax_rate not in", values, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_rate between", value1, value2, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_rate not between", value1, value2, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxMoneyIsNull() { + addCriterion("tax_money is null"); + return (Criteria) this; + } + + public Criteria andTaxMoneyIsNotNull() { + addCriterion("tax_money is not null"); + return (Criteria) this; + } + + public Criteria andTaxMoneyEqualTo(BigDecimal value) { + addCriterion("tax_money =", value, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyNotEqualTo(BigDecimal value) { + addCriterion("tax_money <>", value, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyGreaterThan(BigDecimal value) { + addCriterion("tax_money >", value, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("tax_money >=", value, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyLessThan(BigDecimal value) { + addCriterion("tax_money <", value, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyLessThanOrEqualTo(BigDecimal value) { + addCriterion("tax_money <=", value, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyIn(List values) { + addCriterion("tax_money in", values, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyNotIn(List values) { + addCriterion("tax_money not in", values, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_money between", value1, value2, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxMoneyNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_money not between", value1, value2, "taxMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyIsNull() { + addCriterion("tax_last_money is null"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyIsNotNull() { + addCriterion("tax_last_money is not null"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyEqualTo(BigDecimal value) { + addCriterion("tax_last_money =", value, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyNotEqualTo(BigDecimal value) { + addCriterion("tax_last_money <>", value, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyGreaterThan(BigDecimal value) { + addCriterion("tax_last_money >", value, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("tax_last_money >=", value, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyLessThan(BigDecimal value) { + addCriterion("tax_last_money <", value, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyLessThanOrEqualTo(BigDecimal value) { + addCriterion("tax_last_money <=", value, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyIn(List values) { + addCriterion("tax_last_money in", values, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyNotIn(List values) { + addCriterion("tax_last_money not in", values, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_last_money between", value1, value2, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andTaxLastMoneyNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_last_money not between", value1, value2, "taxLastMoney"); + return (Criteria) this; + } + + public Criteria andMaterialTypeIsNull() { + addCriterion("material_type is null"); + return (Criteria) this; + } + + public Criteria andMaterialTypeIsNotNull() { + addCriterion("material_type is not null"); + return (Criteria) this; + } + + public Criteria andMaterialTypeEqualTo(String value) { + addCriterion("material_type =", value, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeNotEqualTo(String value) { + addCriterion("material_type <>", value, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeGreaterThan(String value) { + addCriterion("material_type >", value, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeGreaterThanOrEqualTo(String value) { + addCriterion("material_type >=", value, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeLessThan(String value) { + addCriterion("material_type <", value, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeLessThanOrEqualTo(String value) { + addCriterion("material_type <=", value, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeLike(String value) { + addCriterion("material_type like", value, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeNotLike(String value) { + addCriterion("material_type not like", value, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeIn(List values) { + addCriterion("material_type in", values, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeNotIn(List values) { + addCriterion("material_type not in", values, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeBetween(String value1, String value2) { + addCriterion("material_type between", value1, value2, "materialType"); + return (Criteria) this; + } + + public Criteria andMaterialTypeNotBetween(String value1, String value2) { + addCriterion("material_type not between", value1, value2, "materialType"); + return (Criteria) this; + } + + public Criteria andSnListIsNull() { + addCriterion("sn_list is null"); + return (Criteria) this; + } + + public Criteria andSnListIsNotNull() { + addCriterion("sn_list is not null"); + return (Criteria) this; + } + + public Criteria andSnListEqualTo(String value) { + addCriterion("sn_list =", value, "snList"); + return (Criteria) this; + } + + public Criteria andSnListNotEqualTo(String value) { + addCriterion("sn_list <>", value, "snList"); + return (Criteria) this; + } + + public Criteria andSnListGreaterThan(String value) { + addCriterion("sn_list >", value, "snList"); + return (Criteria) this; + } + + public Criteria andSnListGreaterThanOrEqualTo(String value) { + addCriterion("sn_list >=", value, "snList"); + return (Criteria) this; + } + + public Criteria andSnListLessThan(String value) { + addCriterion("sn_list <", value, "snList"); + return (Criteria) this; + } + + public Criteria andSnListLessThanOrEqualTo(String value) { + addCriterion("sn_list <=", value, "snList"); + return (Criteria) this; + } + + public Criteria andSnListLike(String value) { + addCriterion("sn_list like", value, "snList"); + return (Criteria) this; + } + + public Criteria andSnListNotLike(String value) { + addCriterion("sn_list not like", value, "snList"); + return (Criteria) this; + } + + public Criteria andSnListIn(List values) { + addCriterion("sn_list in", values, "snList"); + return (Criteria) this; + } + + public Criteria andSnListNotIn(List values) { + addCriterion("sn_list not in", values, "snList"); + return (Criteria) this; + } + + public Criteria andSnListBetween(String value1, String value2) { + addCriterion("sn_list between", value1, value2, "snList"); + return (Criteria) this; + } + + public Criteria andSnListNotBetween(String value1, String value2) { + addCriterion("sn_list not between", value1, value2, "snList"); + return (Criteria) this; + } + + public Criteria andBatchNumberIsNull() { + addCriterion("batch_number is null"); + return (Criteria) this; + } + + public Criteria andBatchNumberIsNotNull() { + addCriterion("batch_number is not null"); + return (Criteria) this; + } + + public Criteria andBatchNumberEqualTo(String value) { + addCriterion("batch_number =", value, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberNotEqualTo(String value) { + addCriterion("batch_number <>", value, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberGreaterThan(String value) { + addCriterion("batch_number >", value, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberGreaterThanOrEqualTo(String value) { + addCriterion("batch_number >=", value, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberLessThan(String value) { + addCriterion("batch_number <", value, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberLessThanOrEqualTo(String value) { + addCriterion("batch_number <=", value, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberLike(String value) { + addCriterion("batch_number like", value, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberNotLike(String value) { + addCriterion("batch_number not like", value, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberIn(List values) { + addCriterion("batch_number in", values, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberNotIn(List values) { + addCriterion("batch_number not in", values, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberBetween(String value1, String value2) { + addCriterion("batch_number between", value1, value2, "batchNumber"); + return (Criteria) this; + } + + public Criteria andBatchNumberNotBetween(String value1, String value2) { + addCriterion("batch_number not between", value1, value2, "batchNumber"); + return (Criteria) this; + } + + public Criteria andExpirationDateIsNull() { + addCriterion("expiration_date is null"); + return (Criteria) this; + } + + public Criteria andExpirationDateIsNotNull() { + addCriterion("expiration_date is not null"); + return (Criteria) this; + } + + public Criteria andExpirationDateEqualTo(Date value) { + addCriterion("expiration_date =", value, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateNotEqualTo(Date value) { + addCriterion("expiration_date <>", value, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateGreaterThan(Date value) { + addCriterion("expiration_date >", value, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateGreaterThanOrEqualTo(Date value) { + addCriterion("expiration_date >=", value, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateLessThan(Date value) { + addCriterion("expiration_date <", value, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateLessThanOrEqualTo(Date value) { + addCriterion("expiration_date <=", value, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateIn(List values) { + addCriterion("expiration_date in", values, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateNotIn(List values) { + addCriterion("expiration_date not in", values, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateBetween(Date value1, Date value2) { + addCriterion("expiration_date between", value1, value2, "expirationDate"); + return (Criteria) this; + } + + public Criteria andExpirationDateNotBetween(Date value1, Date value2) { + addCriterion("expiration_date not between", value1, value2, "expirationDate"); + return (Criteria) this; + } + + public Criteria andLinkIdIsNull() { + addCriterion("link_id is null"); + return (Criteria) this; + } + + public Criteria andLinkIdIsNotNull() { + addCriterion("link_id is not null"); + return (Criteria) this; + } + + public Criteria andLinkIdEqualTo(Long value) { + addCriterion("link_id =", value, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdNotEqualTo(Long value) { + addCriterion("link_id <>", value, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdGreaterThan(Long value) { + addCriterion("link_id >", value, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdGreaterThanOrEqualTo(Long value) { + addCriterion("link_id >=", value, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdLessThan(Long value) { + addCriterion("link_id <", value, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdLessThanOrEqualTo(Long value) { + addCriterion("link_id <=", value, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdIn(List values) { + addCriterion("link_id in", values, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdNotIn(List values) { + addCriterion("link_id not in", values, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdBetween(Long value1, Long value2) { + addCriterion("link_id between", value1, value2, "linkId"); + return (Criteria) this; + } + + public Criteria andLinkIdNotBetween(Long value1, Long value2) { + addCriterion("link_id not between", value1, value2, "linkId"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4DetailByTypeAndMId.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4DetailByTypeAndMId.java new file mode 100644 index 0000000..205f902 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4DetailByTypeAndMId.java @@ -0,0 +1,117 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +public class DepotItemVo4DetailByTypeAndMId { + + private String number; + + private String barCode; + + private String materialName; + + private String type; + + private String subType; + + private BigDecimal bnum; + + private BigDecimal unitPrice; + + private BigDecimal allPrice; + + private String materialUnit; + + private String depotName; + + private Date otime; + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getSubType() { + return subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + public BigDecimal getBnum() { + return bnum; + } + + public void setBnum(BigDecimal bnum) { + this.bnum = bnum; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public BigDecimal getAllPrice() { + return allPrice; + } + + public void setAllPrice(BigDecimal allPrice) { + this.allPrice = allPrice; + } + + public String getMaterialUnit() { + return materialUnit; + } + + public void setMaterialUnit(String materialUnit) { + this.materialUnit = materialUnit; + } + + public String getDepotName() { + return depotName; + } + + public void setDepotName(String depotName) { + this.depotName = depotName; + } + + public Date getOtime() { + return otime; + } + + public void setOtime(Date otime) { + this.otime = otime; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4Material.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4Material.java new file mode 100644 index 0000000..eb76bc6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4Material.java @@ -0,0 +1,27 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +public class DepotItemVo4Material extends DepotItem{ + + private String mname; + + private String mmodel; + + public String getMname() { + return mname; + } + + public void setMname(String mname) { + this.mname = mname; + } + + public String getMmodel() { + return mmodel; + } + + public void setMmodel(String mmodel) { + this.mmodel = mmodel; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4MaterialAndSum.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4MaterialAndSum.java new file mode 100644 index 0000000..6bd1d73 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4MaterialAndSum.java @@ -0,0 +1,26 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class DepotItemVo4MaterialAndSum { + + private Long materialExtendId; + + private BigDecimal operNumber; + + public Long getMaterialExtendId() { + return materialExtendId; + } + + public void setMaterialExtendId(Long materialExtendId) { + this.materialExtendId = materialExtendId; + } + + public BigDecimal getOperNumber() { + return operNumber; + } + + public void setOperNumber(BigDecimal operNumber) { + this.operNumber = operNumber; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4WithInfoEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4WithInfoEx.java new file mode 100644 index 0000000..0b52767 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/DepotItemVo4WithInfoEx.java @@ -0,0 +1,276 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class DepotItemVo4WithInfoEx extends DepotItem{ + + private Long MId; + + private String MName; + + private String MModel; + + private String MaterialUnit; + + private String MColor; + + private String MStandard; + + private String MMfrs; + + private String MOtherField1; + + private String MOtherField2; + + private String MOtherField3; + + private String enableSerialNumber; + + private String enableBatchNumber; + + private String DepotName; + + private String AnotherDepotName; + + private Long UnitId; + + private String unitName; + + private Integer ratio; + + private String otherUnit; + + private BigDecimal presetPriceOne; + + private String priceStrategy; + + private BigDecimal purchaseDecimal; + + private BigDecimal currentUnitPrice; + + private String barCode; + + private BigDecimal weight; + + private String position; + + private String imgName; + + private String brand; + + public Long getMId() { + return MId; + } + + public void setMId(Long MId) { + this.MId = MId; + } + + public String getMName() { + return MName; + } + + public void setMName(String MName) { + this.MName = MName; + } + + public String getMModel() { + return MModel; + } + + public void setMModel(String MModel) { + this.MModel = MModel; + } + + public String getMaterialUnit() { + return MaterialUnit; + } + + public void setMaterialUnit(String materialUnit) { + MaterialUnit = materialUnit; + } + + public String getMColor() { + return MColor; + } + + public void setMColor(String MColor) { + this.MColor = MColor; + } + + public String getMStandard() { + return MStandard; + } + + public void setMStandard(String MStandard) { + this.MStandard = MStandard; + } + + public String getMMfrs() { + return MMfrs; + } + + public void setMMfrs(String MMfrs) { + this.MMfrs = MMfrs; + } + + public String getMOtherField1() { + return MOtherField1; + } + + public void setMOtherField1(String MOtherField1) { + this.MOtherField1 = MOtherField1; + } + + public String getMOtherField2() { + return MOtherField2; + } + + public void setMOtherField2(String MOtherField2) { + this.MOtherField2 = MOtherField2; + } + + public String getMOtherField3() { + return MOtherField3; + } + + public void setMOtherField3(String MOtherField3) { + this.MOtherField3 = MOtherField3; + } + + public String getEnableSerialNumber() { + return enableSerialNumber; + } + + public void setEnableSerialNumber(String enableSerialNumber) { + this.enableSerialNumber = enableSerialNumber; + } + + public String getEnableBatchNumber() { + return enableBatchNumber; + } + + public void setEnableBatchNumber(String enableBatchNumber) { + this.enableBatchNumber = enableBatchNumber; + } + + public String getDepotName() { + return DepotName; + } + + public void setDepotName(String depotName) { + DepotName = depotName; + } + + public String getAnotherDepotName() { + return AnotherDepotName; + } + + public void setAnotherDepotName(String anotherDepotName) { + AnotherDepotName = anotherDepotName; + } + + public Long getUnitId() { + return UnitId; + } + + public void setUnitId(Long unitId) { + UnitId = unitId; + } + + public String getUnitName() { + return unitName; + } + + public void setUnitName(String unitName) { + this.unitName = unitName; + } + + public Integer getRatio() { + return ratio; + } + + public void setRatio(Integer ratio) { + this.ratio = ratio; + } + + public String getOtherUnit() { + return otherUnit; + } + + public void setOtherUnit(String otherUnit) { + this.otherUnit = otherUnit; + } + + public BigDecimal getPresetPriceOne() { + return presetPriceOne; + } + + public void setPresetPriceOne(BigDecimal presetPriceOne) { + this.presetPriceOne = presetPriceOne; + } + + public String getPriceStrategy() { + return priceStrategy; + } + + public void setPriceStrategy(String priceStrategy) { + this.priceStrategy = priceStrategy; + } + + public BigDecimal getPurchaseDecimal() { + return purchaseDecimal; + } + + public void setPurchaseDecimal(BigDecimal purchaseDecimal) { + this.purchaseDecimal = purchaseDecimal; + } + + public BigDecimal getCurrentUnitPrice() { + return currentUnitPrice; + } + + public void setCurrentUnitPrice(BigDecimal currentUnitPrice) { + this.currentUnitPrice = currentUnitPrice; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public BigDecimal getWeight() { + return weight; + } + + public void setWeight(BigDecimal weight) { + this.weight = weight; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getImgName() { + return imgName; + } + + public void setImgName(String imgName) { + this.imgName = imgName; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Function.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Function.java new file mode 100644 index 0000000..9c9203a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Function.java @@ -0,0 +1,143 @@ +package com.reallin.smt.datasource.entities; + +public class Function { + private Long id; + + private String number; + + private String name; + + private String nameEn; + + private String parentNumber; + + private String url; + + private String component; + + private Boolean state; + + private String sort; + + private Boolean enabled; + + private String type; + + private String pushBtn; + + private String icon; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number == null ? null : number.trim(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getNameEn() { + return nameEn; + } + + public void setNameEn(String nameEn) { + this.nameEn = nameEn == null ? null : nameEn.trim(); + } + + public String getParentNumber() { + return parentNumber; + } + + public void setParentNumber(String parentNumber) { + this.parentNumber = parentNumber == null ? null : parentNumber.trim(); + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url == null ? null : url.trim(); + } + + public String getComponent() { + return component; + } + + public void setComponent(String component) { + this.component = component == null ? null : component.trim(); + } + + public Boolean getState() { + return state; + } + + public void setState(Boolean state) { + this.state = state; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public String getPushBtn() { + return pushBtn; + } + + public void setPushBtn(String pushBtn) { + this.pushBtn = pushBtn == null ? null : pushBtn.trim(); + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon == null ? null : icon.trim(); + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/FunctionEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/FunctionEx.java new file mode 100644 index 0000000..e53e79e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/FunctionEx.java @@ -0,0 +1,14 @@ +package com.reallin.smt.datasource.entities; + +public class FunctionEx extends Function { + + private String parentName; + + public String getParentName() { + return parentName; + } + + public void setParentName(String parentName) { + this.parentName = parentName; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/FunctionExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/FunctionExample.java new file mode 100644 index 0000000..ee8d7b8 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/FunctionExample.java @@ -0,0 +1,1079 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class FunctionExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public FunctionExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNumberIsNull() { + addCriterion("number is null"); + return (Criteria) this; + } + + public Criteria andNumberIsNotNull() { + addCriterion("number is not null"); + return (Criteria) this; + } + + public Criteria andNumberEqualTo(String value) { + addCriterion("number =", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotEqualTo(String value) { + addCriterion("number <>", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberGreaterThan(String value) { + addCriterion("number >", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberGreaterThanOrEqualTo(String value) { + addCriterion("number >=", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberLessThan(String value) { + addCriterion("number <", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberLessThanOrEqualTo(String value) { + addCriterion("number <=", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberLike(String value) { + addCriterion("number like", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotLike(String value) { + addCriterion("number not like", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberIn(List values) { + addCriterion("number in", values, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotIn(List values) { + addCriterion("number not in", values, "number"); + return (Criteria) this; + } + + public Criteria andNumberBetween(String value1, String value2) { + addCriterion("number between", value1, value2, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotBetween(String value1, String value2) { + addCriterion("number not between", value1, value2, "number"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andParentNumberIsNull() { + addCriterion("parent_number is null"); + return (Criteria) this; + } + + public Criteria andParentNumberIsNotNull() { + addCriterion("parent_number is not null"); + return (Criteria) this; + } + + public Criteria andParentNumberEqualTo(String value) { + addCriterion("parent_number =", value, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberNotEqualTo(String value) { + addCriterion("parent_number <>", value, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberGreaterThan(String value) { + addCriterion("parent_number >", value, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberGreaterThanOrEqualTo(String value) { + addCriterion("parent_number >=", value, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberLessThan(String value) { + addCriterion("parent_number <", value, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberLessThanOrEqualTo(String value) { + addCriterion("parent_number <=", value, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberLike(String value) { + addCriterion("parent_number like", value, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberNotLike(String value) { + addCriterion("parent_number not like", value, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberIn(List values) { + addCriterion("parent_number in", values, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberNotIn(List values) { + addCriterion("parent_number not in", values, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberBetween(String value1, String value2) { + addCriterion("parent_number between", value1, value2, "parentNumber"); + return (Criteria) this; + } + + public Criteria andParentNumberNotBetween(String value1, String value2) { + addCriterion("parent_number not between", value1, value2, "parentNumber"); + return (Criteria) this; + } + + public Criteria andUrlIsNull() { + addCriterion("url is null"); + return (Criteria) this; + } + + public Criteria andUrlIsNotNull() { + addCriterion("url is not null"); + return (Criteria) this; + } + + public Criteria andUrlEqualTo(String value) { + addCriterion("url =", value, "url"); + return (Criteria) this; + } + + public Criteria andUrlNotEqualTo(String value) { + addCriterion("url <>", value, "url"); + return (Criteria) this; + } + + public Criteria andUrlGreaterThan(String value) { + addCriterion("url >", value, "url"); + return (Criteria) this; + } + + public Criteria andUrlGreaterThanOrEqualTo(String value) { + addCriterion("url >=", value, "url"); + return (Criteria) this; + } + + public Criteria andUrlLessThan(String value) { + addCriterion("url <", value, "url"); + return (Criteria) this; + } + + public Criteria andUrlLessThanOrEqualTo(String value) { + addCriterion("url <=", value, "url"); + return (Criteria) this; + } + + public Criteria andUrlLike(String value) { + addCriterion("url like", value, "url"); + return (Criteria) this; + } + + public Criteria andUrlNotLike(String value) { + addCriterion("url not like", value, "url"); + return (Criteria) this; + } + + public Criteria andUrlIn(List values) { + addCriterion("url in", values, "url"); + return (Criteria) this; + } + + public Criteria andUrlNotIn(List values) { + addCriterion("url not in", values, "url"); + return (Criteria) this; + } + + public Criteria andUrlBetween(String value1, String value2) { + addCriterion("url between", value1, value2, "url"); + return (Criteria) this; + } + + public Criteria andUrlNotBetween(String value1, String value2) { + addCriterion("url not between", value1, value2, "url"); + return (Criteria) this; + } + + public Criteria andComponentIsNull() { + addCriterion("component is null"); + return (Criteria) this; + } + + public Criteria andComponentIsNotNull() { + addCriterion("component is not null"); + return (Criteria) this; + } + + public Criteria andComponentEqualTo(String value) { + addCriterion("component =", value, "component"); + return (Criteria) this; + } + + public Criteria andComponentNotEqualTo(String value) { + addCriterion("component <>", value, "component"); + return (Criteria) this; + } + + public Criteria andComponentGreaterThan(String value) { + addCriterion("component >", value, "component"); + return (Criteria) this; + } + + public Criteria andComponentGreaterThanOrEqualTo(String value) { + addCriterion("component >=", value, "component"); + return (Criteria) this; + } + + public Criteria andComponentLessThan(String value) { + addCriterion("component <", value, "component"); + return (Criteria) this; + } + + public Criteria andComponentLessThanOrEqualTo(String value) { + addCriterion("component <=", value, "component"); + return (Criteria) this; + } + + public Criteria andComponentLike(String value) { + addCriterion("component like", value, "component"); + return (Criteria) this; + } + + public Criteria andComponentNotLike(String value) { + addCriterion("component not like", value, "component"); + return (Criteria) this; + } + + public Criteria andComponentIn(List values) { + addCriterion("component in", values, "component"); + return (Criteria) this; + } + + public Criteria andComponentNotIn(List values) { + addCriterion("component not in", values, "component"); + return (Criteria) this; + } + + public Criteria andComponentBetween(String value1, String value2) { + addCriterion("component between", value1, value2, "component"); + return (Criteria) this; + } + + public Criteria andComponentNotBetween(String value1, String value2) { + addCriterion("component not between", value1, value2, "component"); + return (Criteria) this; + } + + public Criteria andStateIsNull() { + addCriterion("state is null"); + return (Criteria) this; + } + + public Criteria andStateIsNotNull() { + addCriterion("state is not null"); + return (Criteria) this; + } + + public Criteria andStateEqualTo(Boolean value) { + addCriterion("state =", value, "state"); + return (Criteria) this; + } + + public Criteria andStateNotEqualTo(Boolean value) { + addCriterion("state <>", value, "state"); + return (Criteria) this; + } + + public Criteria andStateGreaterThan(Boolean value) { + addCriterion("state >", value, "state"); + return (Criteria) this; + } + + public Criteria andStateGreaterThanOrEqualTo(Boolean value) { + addCriterion("state >=", value, "state"); + return (Criteria) this; + } + + public Criteria andStateLessThan(Boolean value) { + addCriterion("state <", value, "state"); + return (Criteria) this; + } + + public Criteria andStateLessThanOrEqualTo(Boolean value) { + addCriterion("state <=", value, "state"); + return (Criteria) this; + } + + public Criteria andStateIn(List values) { + addCriterion("state in", values, "state"); + return (Criteria) this; + } + + public Criteria andStateNotIn(List values) { + addCriterion("state not in", values, "state"); + return (Criteria) this; + } + + public Criteria andStateBetween(Boolean value1, Boolean value2) { + addCriterion("state between", value1, value2, "state"); + return (Criteria) this; + } + + public Criteria andStateNotBetween(Boolean value1, Boolean value2) { + addCriterion("state not between", value1, value2, "state"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andPushBtnIsNull() { + addCriterion("push_btn is null"); + return (Criteria) this; + } + + public Criteria andPushBtnIsNotNull() { + addCriterion("push_btn is not null"); + return (Criteria) this; + } + + public Criteria andPushBtnEqualTo(String value) { + addCriterion("push_btn =", value, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnNotEqualTo(String value) { + addCriterion("push_btn <>", value, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnGreaterThan(String value) { + addCriterion("push_btn >", value, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnGreaterThanOrEqualTo(String value) { + addCriterion("push_btn >=", value, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnLessThan(String value) { + addCriterion("push_btn <", value, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnLessThanOrEqualTo(String value) { + addCriterion("push_btn <=", value, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnLike(String value) { + addCriterion("push_btn like", value, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnNotLike(String value) { + addCriterion("push_btn not like", value, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnIn(List values) { + addCriterion("push_btn in", values, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnNotIn(List values) { + addCriterion("push_btn not in", values, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnBetween(String value1, String value2) { + addCriterion("push_btn between", value1, value2, "pushBtn"); + return (Criteria) this; + } + + public Criteria andPushBtnNotBetween(String value1, String value2) { + addCriterion("push_btn not between", value1, value2, "pushBtn"); + return (Criteria) this; + } + + public Criteria andIconIsNull() { + addCriterion("icon is null"); + return (Criteria) this; + } + + public Criteria andIconIsNotNull() { + addCriterion("icon is not null"); + return (Criteria) this; + } + + public Criteria andIconEqualTo(String value) { + addCriterion("icon =", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconNotEqualTo(String value) { + addCriterion("icon <>", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconGreaterThan(String value) { + addCriterion("icon >", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconGreaterThanOrEqualTo(String value) { + addCriterion("icon >=", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconLessThan(String value) { + addCriterion("icon <", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconLessThanOrEqualTo(String value) { + addCriterion("icon <=", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconLike(String value) { + addCriterion("icon like", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconNotLike(String value) { + addCriterion("icon not like", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconIn(List values) { + addCriterion("icon in", values, "icon"); + return (Criteria) this; + } + + public Criteria andIconNotIn(List values) { + addCriterion("icon not in", values, "icon"); + return (Criteria) this; + } + + public Criteria andIconBetween(String value1, String value2) { + addCriterion("icon between", value1, value2, "icon"); + return (Criteria) this; + } + + public Criteria andIconNotBetween(String value1, String value2) { + addCriterion("icon not between", value1, value2, "icon"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/InOutItem.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/InOutItem.java new file mode 100644 index 0000000..a8d98ba --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/InOutItem.java @@ -0,0 +1,83 @@ +package com.reallin.smt.datasource.entities; + +public class InOutItem { + private Long id; + + private String name; + + private String type; + + private String remark; + + private Boolean enabled; + + private String sort; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/InOutItemExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/InOutItemExample.java new file mode 100644 index 0000000..a1f414f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/InOutItemExample.java @@ -0,0 +1,729 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class InOutItemExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public InOutItemExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Log.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Log.java new file mode 100644 index 0000000..39bcc5f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Log.java @@ -0,0 +1,115 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +public class Log { + private Long id; + + private Long userId; + + private String operation; + + private String clientIp; + + private Date createTime; + + private Byte status; + + private String content; + + private Long tenantId; + + private String requestUrl; + + private String requestParams; + + private String responseParams; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation == null ? null : operation.trim(); + } + + public String getClientIp() { + return clientIp; + } + + public void setClientIp(String clientIp) { + this.clientIp = clientIp == null ? null : clientIp.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Byte getStatus() { + return status; + } + + public void setStatus(Byte status) { + this.status = status; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content == null ? null : content.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getRequestUrl() { + return requestUrl; + } + + public void setRequestUrl(String requestUrl) { + this.requestUrl = requestUrl == null ? null : requestUrl.trim(); + } + + public String getRequestParams() { + return requestParams; + } + + public void setRequestParams(String requestParams) { + this.requestParams = requestParams; + } + + public String getResponseParams() { + return responseParams; + } + + public void setResponseParams(String responseParams) { + this.responseParams = responseParams; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/LogExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/LogExample.java new file mode 100644 index 0000000..1940bca --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/LogExample.java @@ -0,0 +1,710 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class LogExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public LogExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andUserIdIsNull() { + addCriterion("user_id is null"); + return (Criteria) this; + } + + public Criteria andUserIdIsNotNull() { + addCriterion("user_id is not null"); + return (Criteria) this; + } + + public Criteria andUserIdEqualTo(Long value) { + addCriterion("user_id =", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotEqualTo(Long value) { + addCriterion("user_id <>", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThan(Long value) { + addCriterion("user_id >", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThanOrEqualTo(Long value) { + addCriterion("user_id >=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThan(Long value) { + addCriterion("user_id <", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThanOrEqualTo(Long value) { + addCriterion("user_id <=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdIn(List values) { + addCriterion("user_id in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotIn(List values) { + addCriterion("user_id not in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdBetween(Long value1, Long value2) { + addCriterion("user_id between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotBetween(Long value1, Long value2) { + addCriterion("user_id not between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andOperationIsNull() { + addCriterion("operation is null"); + return (Criteria) this; + } + + public Criteria andOperationIsNotNull() { + addCriterion("operation is not null"); + return (Criteria) this; + } + + public Criteria andOperationEqualTo(String value) { + addCriterion("operation =", value, "operation"); + return (Criteria) this; + } + + public Criteria andOperationNotEqualTo(String value) { + addCriterion("operation <>", value, "operation"); + return (Criteria) this; + } + + public Criteria andOperationGreaterThan(String value) { + addCriterion("operation >", value, "operation"); + return (Criteria) this; + } + + public Criteria andOperationGreaterThanOrEqualTo(String value) { + addCriterion("operation >=", value, "operation"); + return (Criteria) this; + } + + public Criteria andOperationLessThan(String value) { + addCriterion("operation <", value, "operation"); + return (Criteria) this; + } + + public Criteria andOperationLessThanOrEqualTo(String value) { + addCriterion("operation <=", value, "operation"); + return (Criteria) this; + } + + public Criteria andOperationLike(String value) { + addCriterion("operation like", value, "operation"); + return (Criteria) this; + } + + public Criteria andOperationNotLike(String value) { + addCriterion("operation not like", value, "operation"); + return (Criteria) this; + } + + public Criteria andOperationIn(List values) { + addCriterion("operation in", values, "operation"); + return (Criteria) this; + } + + public Criteria andOperationNotIn(List values) { + addCriterion("operation not in", values, "operation"); + return (Criteria) this; + } + + public Criteria andOperationBetween(String value1, String value2) { + addCriterion("operation between", value1, value2, "operation"); + return (Criteria) this; + } + + public Criteria andOperationNotBetween(String value1, String value2) { + addCriterion("operation not between", value1, value2, "operation"); + return (Criteria) this; + } + + public Criteria andClientIpIsNull() { + addCriterion("client_ip is null"); + return (Criteria) this; + } + + public Criteria andClientIpIsNotNull() { + addCriterion("client_ip is not null"); + return (Criteria) this; + } + + public Criteria andClientIpEqualTo(String value) { + addCriterion("client_ip =", value, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpNotEqualTo(String value) { + addCriterion("client_ip <>", value, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpGreaterThan(String value) { + addCriterion("client_ip >", value, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpGreaterThanOrEqualTo(String value) { + addCriterion("client_ip >=", value, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpLessThan(String value) { + addCriterion("client_ip <", value, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpLessThanOrEqualTo(String value) { + addCriterion("client_ip <=", value, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpLike(String value) { + addCriterion("client_ip like", value, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpNotLike(String value) { + addCriterion("client_ip not like", value, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpIn(List values) { + addCriterion("client_ip in", values, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpNotIn(List values) { + addCriterion("client_ip not in", values, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpBetween(String value1, String value2) { + addCriterion("client_ip between", value1, value2, "clientIp"); + return (Criteria) this; + } + + public Criteria andClientIpNotBetween(String value1, String value2) { + addCriterion("client_ip not between", value1, value2, "clientIp"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(Byte value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Byte value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Byte value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Byte value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Byte value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(Byte value1, Byte value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Byte value1, Byte value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andContentIsNull() { + addCriterion("content is null"); + return (Criteria) this; + } + + public Criteria andContentIsNotNull() { + addCriterion("content is not null"); + return (Criteria) this; + } + + public Criteria andContentEqualTo(String value) { + addCriterion("content =", value, "content"); + return (Criteria) this; + } + + public Criteria andContentNotEqualTo(String value) { + addCriterion("content <>", value, "content"); + return (Criteria) this; + } + + public Criteria andContentGreaterThan(String value) { + addCriterion("content >", value, "content"); + return (Criteria) this; + } + + public Criteria andContentGreaterThanOrEqualTo(String value) { + addCriterion("content >=", value, "content"); + return (Criteria) this; + } + + public Criteria andContentLessThan(String value) { + addCriterion("content <", value, "content"); + return (Criteria) this; + } + + public Criteria andContentLessThanOrEqualTo(String value) { + addCriterion("content <=", value, "content"); + return (Criteria) this; + } + + public Criteria andContentLike(String value) { + addCriterion("content like", value, "content"); + return (Criteria) this; + } + + public Criteria andContentNotLike(String value) { + addCriterion("content not like", value, "content"); + return (Criteria) this; + } + + public Criteria andContentIn(List values) { + addCriterion("content in", values, "content"); + return (Criteria) this; + } + + public Criteria andContentNotIn(List values) { + addCriterion("content not in", values, "content"); + return (Criteria) this; + } + + public Criteria andContentBetween(String value1, String value2) { + addCriterion("content between", value1, value2, "content"); + return (Criteria) this; + } + + public Criteria andContentNotBetween(String value1, String value2) { + addCriterion("content not between", value1, value2, "content"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Material.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Material.java new file mode 100644 index 0000000..40ac997 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Material.java @@ -0,0 +1,255 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class Material { + private Long id; + + private Long categoryId; + + private String name; + + private String mfrs; + + private String model; + + private String standard; + + private String brand; + + private String mnemonic; + + private String color; + + private String unit; + + private String remark; + + private String imgName; + + private Long unitId; + + private Integer expiryNum; + + private BigDecimal weight; + + private Boolean enabled; + + private String otherField1; + + private String otherField2; + + private String otherField3; + + private String enableSerialNumber; + + private String enableBatchNumber; + + private String position; + + private String attribute; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getCategoryId() { + return categoryId; + } + + public void setCategoryId(Long categoryId) { + this.categoryId = categoryId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getMfrs() { + return mfrs; + } + + public void setMfrs(String mfrs) { + this.mfrs = mfrs == null ? null : mfrs.trim(); + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model == null ? null : model.trim(); + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard == null ? null : standard.trim(); + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand == null ? null : brand.trim(); + } + + public String getMnemonic() { + return mnemonic; + } + + public void setMnemonic(String mnemonic) { + this.mnemonic = mnemonic == null ? null : mnemonic.trim(); + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color == null ? null : color.trim(); + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit == null ? null : unit.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getImgName() { + return imgName; + } + + public void setImgName(String imgName) { + this.imgName = imgName == null ? null : imgName.trim(); + } + + public Long getUnitId() { + return unitId; + } + + public void setUnitId(Long unitId) { + this.unitId = unitId; + } + + public Integer getExpiryNum() { + return expiryNum; + } + + public void setExpiryNum(Integer expiryNum) { + this.expiryNum = expiryNum; + } + + public BigDecimal getWeight() { + return weight; + } + + public void setWeight(BigDecimal weight) { + this.weight = weight; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getOtherField1() { + return otherField1; + } + + public void setOtherField1(String otherField1) { + this.otherField1 = otherField1 == null ? null : otherField1.trim(); + } + + public String getOtherField2() { + return otherField2; + } + + public void setOtherField2(String otherField2) { + this.otherField2 = otherField2 == null ? null : otherField2.trim(); + } + + public String getOtherField3() { + return otherField3; + } + + public void setOtherField3(String otherField3) { + this.otherField3 = otherField3 == null ? null : otherField3.trim(); + } + + public String getEnableSerialNumber() { + return enableSerialNumber; + } + + public void setEnableSerialNumber(String enableSerialNumber) { + this.enableSerialNumber = enableSerialNumber == null ? null : enableSerialNumber.trim(); + } + + public String getEnableBatchNumber() { + return enableBatchNumber; + } + + public void setEnableBatchNumber(String enableBatchNumber) { + this.enableBatchNumber = enableBatchNumber == null ? null : enableBatchNumber.trim(); + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position == null ? null : position.trim(); + } + + public String getAttribute() { + return attribute; + } + + public void setAttribute(String attribute) { + this.attribute = attribute == null ? null : attribute.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialAttribute.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialAttribute.java new file mode 100644 index 0000000..2952a9a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialAttribute.java @@ -0,0 +1,53 @@ +package com.reallin.smt.datasource.entities; + +public class MaterialAttribute { + private Long id; + + private String attributeName; + + private String attributeValue; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAttributeName() { + return attributeName; + } + + public void setAttributeName(String attributeName) { + this.attributeName = attributeName == null ? null : attributeName.trim(); + } + + public String getAttributeValue() { + return attributeValue; + } + + public void setAttributeValue(String attributeValue) { + this.attributeValue = attributeValue == null ? null : attributeValue.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialAttributeExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialAttributeExample.java new file mode 100644 index 0000000..701b269 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialAttributeExample.java @@ -0,0 +1,529 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class MaterialAttributeExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MaterialAttributeExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andAttributeNameIsNull() { + addCriterion("attribute_name is null"); + return (Criteria) this; + } + + public Criteria andAttributeNameIsNotNull() { + addCriterion("attribute_name is not null"); + return (Criteria) this; + } + + public Criteria andAttributeNameEqualTo(String value) { + addCriterion("attribute_name =", value, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameNotEqualTo(String value) { + addCriterion("attribute_name <>", value, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameGreaterThan(String value) { + addCriterion("attribute_name >", value, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameGreaterThanOrEqualTo(String value) { + addCriterion("attribute_name >=", value, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameLessThan(String value) { + addCriterion("attribute_name <", value, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameLessThanOrEqualTo(String value) { + addCriterion("attribute_name <=", value, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameLike(String value) { + addCriterion("attribute_name like", value, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameNotLike(String value) { + addCriterion("attribute_name not like", value, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameIn(List values) { + addCriterion("attribute_name in", values, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameNotIn(List values) { + addCriterion("attribute_name not in", values, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameBetween(String value1, String value2) { + addCriterion("attribute_name between", value1, value2, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeNameNotBetween(String value1, String value2) { + addCriterion("attribute_name not between", value1, value2, "attributeName"); + return (Criteria) this; + } + + public Criteria andAttributeValueIsNull() { + addCriterion("attribute_value is null"); + return (Criteria) this; + } + + public Criteria andAttributeValueIsNotNull() { + addCriterion("attribute_value is not null"); + return (Criteria) this; + } + + public Criteria andAttributeValueEqualTo(String value) { + addCriterion("attribute_value =", value, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueNotEqualTo(String value) { + addCriterion("attribute_value <>", value, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueGreaterThan(String value) { + addCriterion("attribute_value >", value, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueGreaterThanOrEqualTo(String value) { + addCriterion("attribute_value >=", value, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueLessThan(String value) { + addCriterion("attribute_value <", value, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueLessThanOrEqualTo(String value) { + addCriterion("attribute_value <=", value, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueLike(String value) { + addCriterion("attribute_value like", value, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueNotLike(String value) { + addCriterion("attribute_value not like", value, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueIn(List values) { + addCriterion("attribute_value in", values, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueNotIn(List values) { + addCriterion("attribute_value not in", values, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueBetween(String value1, String value2) { + addCriterion("attribute_value between", value1, value2, "attributeValue"); + return (Criteria) this; + } + + public Criteria andAttributeValueNotBetween(String value1, String value2) { + addCriterion("attribute_value not between", value1, value2, "attributeValue"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCategory.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCategory.java new file mode 100644 index 0000000..daeb1c2 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCategory.java @@ -0,0 +1,115 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +public class MaterialCategory { + private Long id; + + private String name; + + private Short categoryLevel; + + private Long parentId; + + private String sort; + + private String serialNo; + + private String remark; + + private Date createTime; + + private Date updateTime; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public Short getCategoryLevel() { + return categoryLevel; + } + + public void setCategoryLevel(Short categoryLevel) { + this.categoryLevel = categoryLevel; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public String getSerialNo() { + return serialNo; + } + + public void setSerialNo(String serialNo) { + this.serialNo = serialNo == null ? null : serialNo.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCategoryExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCategoryExample.java new file mode 100644 index 0000000..6cc029c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCategoryExample.java @@ -0,0 +1,910 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class MaterialCategoryExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MaterialCategoryExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andCategoryLevelIsNull() { + addCriterion("category_level is null"); + return (Criteria) this; + } + + public Criteria andCategoryLevelIsNotNull() { + addCriterion("category_level is not null"); + return (Criteria) this; + } + + public Criteria andCategoryLevelEqualTo(Short value) { + addCriterion("category_level =", value, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelNotEqualTo(Short value) { + addCriterion("category_level <>", value, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelGreaterThan(Short value) { + addCriterion("category_level >", value, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelGreaterThanOrEqualTo(Short value) { + addCriterion("category_level >=", value, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelLessThan(Short value) { + addCriterion("category_level <", value, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelLessThanOrEqualTo(Short value) { + addCriterion("category_level <=", value, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelIn(List values) { + addCriterion("category_level in", values, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelNotIn(List values) { + addCriterion("category_level not in", values, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelBetween(Short value1, Short value2) { + addCriterion("category_level between", value1, value2, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andCategoryLevelNotBetween(Short value1, Short value2) { + addCriterion("category_level not between", value1, value2, "categoryLevel"); + return (Criteria) this; + } + + public Criteria andParentIdIsNull() { + addCriterion("parent_id is null"); + return (Criteria) this; + } + + public Criteria andParentIdIsNotNull() { + addCriterion("parent_id is not null"); + return (Criteria) this; + } + + public Criteria andParentIdEqualTo(Long value) { + addCriterion("parent_id =", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotEqualTo(Long value) { + addCriterion("parent_id <>", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThan(Long value) { + addCriterion("parent_id >", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThanOrEqualTo(Long value) { + addCriterion("parent_id >=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThan(Long value) { + addCriterion("parent_id <", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThanOrEqualTo(Long value) { + addCriterion("parent_id <=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdIn(List values) { + addCriterion("parent_id in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotIn(List values) { + addCriterion("parent_id not in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdBetween(Long value1, Long value2) { + addCriterion("parent_id between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotBetween(Long value1, Long value2) { + addCriterion("parent_id not between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSerialNoIsNull() { + addCriterion("serial_no is null"); + return (Criteria) this; + } + + public Criteria andSerialNoIsNotNull() { + addCriterion("serial_no is not null"); + return (Criteria) this; + } + + public Criteria andSerialNoEqualTo(String value) { + addCriterion("serial_no =", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoNotEqualTo(String value) { + addCriterion("serial_no <>", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoGreaterThan(String value) { + addCriterion("serial_no >", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoGreaterThanOrEqualTo(String value) { + addCriterion("serial_no >=", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoLessThan(String value) { + addCriterion("serial_no <", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoLessThanOrEqualTo(String value) { + addCriterion("serial_no <=", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoLike(String value) { + addCriterion("serial_no like", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoNotLike(String value) { + addCriterion("serial_no not like", value, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoIn(List values) { + addCriterion("serial_no in", values, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoNotIn(List values) { + addCriterion("serial_no not in", values, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoBetween(String value1, String value2) { + addCriterion("serial_no between", value1, value2, "serialNo"); + return (Criteria) this; + } + + public Criteria andSerialNoNotBetween(String value1, String value2) { + addCriterion("serial_no not between", value1, value2, "serialNo"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Date value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Date value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Date value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Date value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Date value1, Date value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCurrentStock.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCurrentStock.java new file mode 100644 index 0000000..2de314d --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCurrentStock.java @@ -0,0 +1,75 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class MaterialCurrentStock { + private Long id; + + private Long materialId; + + private Long depotId; + + private BigDecimal currentNumber; + + private BigDecimal currentUnitPrice; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public BigDecimal getCurrentNumber() { + return currentNumber; + } + + public void setCurrentNumber(BigDecimal currentNumber) { + this.currentNumber = currentNumber; + } + + public BigDecimal getCurrentUnitPrice() { + return currentUnitPrice; + } + + public void setCurrentUnitPrice(BigDecimal currentUnitPrice) { + this.currentUnitPrice = currentUnitPrice; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCurrentStockExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCurrentStockExample.java new file mode 100644 index 0000000..e313966 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialCurrentStockExample.java @@ -0,0 +1,630 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class MaterialCurrentStockExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MaterialCurrentStockExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNull() { + addCriterion("material_id is null"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNotNull() { + addCriterion("material_id is not null"); + return (Criteria) this; + } + + public Criteria andMaterialIdEqualTo(Long value) { + addCriterion("material_id =", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotEqualTo(Long value) { + addCriterion("material_id <>", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThan(Long value) { + addCriterion("material_id >", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThanOrEqualTo(Long value) { + addCriterion("material_id >=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThan(Long value) { + addCriterion("material_id <", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThanOrEqualTo(Long value) { + addCriterion("material_id <=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdIn(List values) { + addCriterion("material_id in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotIn(List values) { + addCriterion("material_id not in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdBetween(Long value1, Long value2) { + addCriterion("material_id between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotBetween(Long value1, Long value2) { + addCriterion("material_id not between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNull() { + addCriterion("depot_id is null"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNotNull() { + addCriterion("depot_id is not null"); + return (Criteria) this; + } + + public Criteria andDepotIdEqualTo(Long value) { + addCriterion("depot_id =", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotEqualTo(Long value) { + addCriterion("depot_id <>", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThan(Long value) { + addCriterion("depot_id >", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThanOrEqualTo(Long value) { + addCriterion("depot_id >=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThan(Long value) { + addCriterion("depot_id <", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThanOrEqualTo(Long value) { + addCriterion("depot_id <=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdIn(List values) { + addCriterion("depot_id in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotIn(List values) { + addCriterion("depot_id not in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdBetween(Long value1, Long value2) { + addCriterion("depot_id between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotBetween(Long value1, Long value2) { + addCriterion("depot_id not between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andCurrentNumberIsNull() { + addCriterion("current_number is null"); + return (Criteria) this; + } + + public Criteria andCurrentNumberIsNotNull() { + addCriterion("current_number is not null"); + return (Criteria) this; + } + + public Criteria andCurrentNumberEqualTo(BigDecimal value) { + addCriterion("current_number =", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberNotEqualTo(BigDecimal value) { + addCriterion("current_number <>", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberGreaterThan(BigDecimal value) { + addCriterion("current_number >", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("current_number >=", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberLessThan(BigDecimal value) { + addCriterion("current_number <", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberLessThanOrEqualTo(BigDecimal value) { + addCriterion("current_number <=", value, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberIn(List values) { + addCriterion("current_number in", values, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberNotIn(List values) { + addCriterion("current_number not in", values, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("current_number between", value1, value2, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentNumberNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("current_number not between", value1, value2, "currentNumber"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceIsNull() { + addCriterion("current_unit_price is null"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceIsNotNull() { + addCriterion("current_unit_price is not null"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceEqualTo(BigDecimal value) { + addCriterion("current_unit_price =", value, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceNotEqualTo(BigDecimal value) { + addCriterion("current_unit_price <>", value, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceGreaterThan(BigDecimal value) { + addCriterion("current_unit_price >", value, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("current_unit_price >=", value, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceLessThan(BigDecimal value) { + addCriterion("current_unit_price <", value, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceLessThanOrEqualTo(BigDecimal value) { + addCriterion("current_unit_price <=", value, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceIn(List values) { + addCriterion("current_unit_price in", values, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceNotIn(List values) { + addCriterion("current_unit_price not in", values, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("current_unit_price between", value1, value2, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andCurrentUnitPriceNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("current_unit_price not between", value1, value2, "currentUnitPrice"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExample.java new file mode 100644 index 0000000..bf04c79 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExample.java @@ -0,0 +1,1880 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class MaterialExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MaterialExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andCategoryIdIsNull() { + addCriterion("category_id is null"); + return (Criteria) this; + } + + public Criteria andCategoryIdIsNotNull() { + addCriterion("category_id is not null"); + return (Criteria) this; + } + + public Criteria andCategoryIdEqualTo(Long value) { + addCriterion("category_id =", value, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdNotEqualTo(Long value) { + addCriterion("category_id <>", value, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdGreaterThan(Long value) { + addCriterion("category_id >", value, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdGreaterThanOrEqualTo(Long value) { + addCriterion("category_id >=", value, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdLessThan(Long value) { + addCriterion("category_id <", value, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdLessThanOrEqualTo(Long value) { + addCriterion("category_id <=", value, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdIn(List values) { + addCriterion("category_id in", values, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdNotIn(List values) { + addCriterion("category_id not in", values, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdBetween(Long value1, Long value2) { + addCriterion("category_id between", value1, value2, "categoryId"); + return (Criteria) this; + } + + public Criteria andCategoryIdNotBetween(Long value1, Long value2) { + addCriterion("category_id not between", value1, value2, "categoryId"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andMfrsIsNull() { + addCriterion("mfrs is null"); + return (Criteria) this; + } + + public Criteria andMfrsIsNotNull() { + addCriterion("mfrs is not null"); + return (Criteria) this; + } + + public Criteria andMfrsEqualTo(String value) { + addCriterion("mfrs =", value, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsNotEqualTo(String value) { + addCriterion("mfrs <>", value, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsGreaterThan(String value) { + addCriterion("mfrs >", value, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsGreaterThanOrEqualTo(String value) { + addCriterion("mfrs >=", value, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsLessThan(String value) { + addCriterion("mfrs <", value, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsLessThanOrEqualTo(String value) { + addCriterion("mfrs <=", value, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsLike(String value) { + addCriterion("mfrs like", value, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsNotLike(String value) { + addCriterion("mfrs not like", value, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsIn(List values) { + addCriterion("mfrs in", values, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsNotIn(List values) { + addCriterion("mfrs not in", values, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsBetween(String value1, String value2) { + addCriterion("mfrs between", value1, value2, "mfrs"); + return (Criteria) this; + } + + public Criteria andMfrsNotBetween(String value1, String value2) { + addCriterion("mfrs not between", value1, value2, "mfrs"); + return (Criteria) this; + } + + public Criteria andModelIsNull() { + addCriterion("model is null"); + return (Criteria) this; + } + + public Criteria andModelIsNotNull() { + addCriterion("model is not null"); + return (Criteria) this; + } + + public Criteria andModelEqualTo(String value) { + addCriterion("model =", value, "model"); + return (Criteria) this; + } + + public Criteria andModelNotEqualTo(String value) { + addCriterion("model <>", value, "model"); + return (Criteria) this; + } + + public Criteria andModelGreaterThan(String value) { + addCriterion("model >", value, "model"); + return (Criteria) this; + } + + public Criteria andModelGreaterThanOrEqualTo(String value) { + addCriterion("model >=", value, "model"); + return (Criteria) this; + } + + public Criteria andModelLessThan(String value) { + addCriterion("model <", value, "model"); + return (Criteria) this; + } + + public Criteria andModelLessThanOrEqualTo(String value) { + addCriterion("model <=", value, "model"); + return (Criteria) this; + } + + public Criteria andModelLike(String value) { + addCriterion("model like", value, "model"); + return (Criteria) this; + } + + public Criteria andModelNotLike(String value) { + addCriterion("model not like", value, "model"); + return (Criteria) this; + } + + public Criteria andModelIn(List values) { + addCriterion("model in", values, "model"); + return (Criteria) this; + } + + public Criteria andModelNotIn(List values) { + addCriterion("model not in", values, "model"); + return (Criteria) this; + } + + public Criteria andModelBetween(String value1, String value2) { + addCriterion("model between", value1, value2, "model"); + return (Criteria) this; + } + + public Criteria andModelNotBetween(String value1, String value2) { + addCriterion("model not between", value1, value2, "model"); + return (Criteria) this; + } + + public Criteria andStandardIsNull() { + addCriterion("standard is null"); + return (Criteria) this; + } + + public Criteria andStandardIsNotNull() { + addCriterion("standard is not null"); + return (Criteria) this; + } + + public Criteria andStandardEqualTo(String value) { + addCriterion("standard =", value, "standard"); + return (Criteria) this; + } + + public Criteria andStandardNotEqualTo(String value) { + addCriterion("standard <>", value, "standard"); + return (Criteria) this; + } + + public Criteria andStandardGreaterThan(String value) { + addCriterion("standard >", value, "standard"); + return (Criteria) this; + } + + public Criteria andStandardGreaterThanOrEqualTo(String value) { + addCriterion("standard >=", value, "standard"); + return (Criteria) this; + } + + public Criteria andStandardLessThan(String value) { + addCriterion("standard <", value, "standard"); + return (Criteria) this; + } + + public Criteria andStandardLessThanOrEqualTo(String value) { + addCriterion("standard <=", value, "standard"); + return (Criteria) this; + } + + public Criteria andStandardLike(String value) { + addCriterion("standard like", value, "standard"); + return (Criteria) this; + } + + public Criteria andStandardNotLike(String value) { + addCriterion("standard not like", value, "standard"); + return (Criteria) this; + } + + public Criteria andStandardIn(List values) { + addCriterion("standard in", values, "standard"); + return (Criteria) this; + } + + public Criteria andStandardNotIn(List values) { + addCriterion("standard not in", values, "standard"); + return (Criteria) this; + } + + public Criteria andStandardBetween(String value1, String value2) { + addCriterion("standard between", value1, value2, "standard"); + return (Criteria) this; + } + + public Criteria andStandardNotBetween(String value1, String value2) { + addCriterion("standard not between", value1, value2, "standard"); + return (Criteria) this; + } + + public Criteria andBrandIsNull() { + addCriterion("brand is null"); + return (Criteria) this; + } + + public Criteria andBrandIsNotNull() { + addCriterion("brand is not null"); + return (Criteria) this; + } + + public Criteria andBrandEqualTo(String value) { + addCriterion("brand =", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandNotEqualTo(String value) { + addCriterion("brand <>", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandGreaterThan(String value) { + addCriterion("brand >", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandGreaterThanOrEqualTo(String value) { + addCriterion("brand >=", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandLessThan(String value) { + addCriterion("brand <", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandLessThanOrEqualTo(String value) { + addCriterion("brand <=", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandLike(String value) { + addCriterion("brand like", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandNotLike(String value) { + addCriterion("brand not like", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandIn(List values) { + addCriterion("brand in", values, "brand"); + return (Criteria) this; + } + + public Criteria andBrandNotIn(List values) { + addCriterion("brand not in", values, "brand"); + return (Criteria) this; + } + + public Criteria andBrandBetween(String value1, String value2) { + addCriterion("brand between", value1, value2, "brand"); + return (Criteria) this; + } + + public Criteria andBrandNotBetween(String value1, String value2) { + addCriterion("brand not between", value1, value2, "brand"); + return (Criteria) this; + } + + public Criteria andMnemonicIsNull() { + addCriterion("mnemonic is null"); + return (Criteria) this; + } + + public Criteria andMnemonicIsNotNull() { + addCriterion("mnemonic is not null"); + return (Criteria) this; + } + + public Criteria andMnemonicEqualTo(String value) { + addCriterion("mnemonic =", value, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicNotEqualTo(String value) { + addCriterion("mnemonic <>", value, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicGreaterThan(String value) { + addCriterion("mnemonic >", value, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicGreaterThanOrEqualTo(String value) { + addCriterion("mnemonic >=", value, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicLessThan(String value) { + addCriterion("mnemonic <", value, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicLessThanOrEqualTo(String value) { + addCriterion("mnemonic <=", value, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicLike(String value) { + addCriterion("mnemonic like", value, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicNotLike(String value) { + addCriterion("mnemonic not like", value, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicIn(List values) { + addCriterion("mnemonic in", values, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicNotIn(List values) { + addCriterion("mnemonic not in", values, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicBetween(String value1, String value2) { + addCriterion("mnemonic between", value1, value2, "mnemonic"); + return (Criteria) this; + } + + public Criteria andMnemonicNotBetween(String value1, String value2) { + addCriterion("mnemonic not between", value1, value2, "mnemonic"); + return (Criteria) this; + } + + public Criteria andColorIsNull() { + addCriterion("color is null"); + return (Criteria) this; + } + + public Criteria andColorIsNotNull() { + addCriterion("color is not null"); + return (Criteria) this; + } + + public Criteria andColorEqualTo(String value) { + addCriterion("color =", value, "color"); + return (Criteria) this; + } + + public Criteria andColorNotEqualTo(String value) { + addCriterion("color <>", value, "color"); + return (Criteria) this; + } + + public Criteria andColorGreaterThan(String value) { + addCriterion("color >", value, "color"); + return (Criteria) this; + } + + public Criteria andColorGreaterThanOrEqualTo(String value) { + addCriterion("color >=", value, "color"); + return (Criteria) this; + } + + public Criteria andColorLessThan(String value) { + addCriterion("color <", value, "color"); + return (Criteria) this; + } + + public Criteria andColorLessThanOrEqualTo(String value) { + addCriterion("color <=", value, "color"); + return (Criteria) this; + } + + public Criteria andColorLike(String value) { + addCriterion("color like", value, "color"); + return (Criteria) this; + } + + public Criteria andColorNotLike(String value) { + addCriterion("color not like", value, "color"); + return (Criteria) this; + } + + public Criteria andColorIn(List values) { + addCriterion("color in", values, "color"); + return (Criteria) this; + } + + public Criteria andColorNotIn(List values) { + addCriterion("color not in", values, "color"); + return (Criteria) this; + } + + public Criteria andColorBetween(String value1, String value2) { + addCriterion("color between", value1, value2, "color"); + return (Criteria) this; + } + + public Criteria andColorNotBetween(String value1, String value2) { + addCriterion("color not between", value1, value2, "color"); + return (Criteria) this; + } + + public Criteria andUnitIsNull() { + addCriterion("unit is null"); + return (Criteria) this; + } + + public Criteria andUnitIsNotNull() { + addCriterion("unit is not null"); + return (Criteria) this; + } + + public Criteria andUnitEqualTo(String value) { + addCriterion("unit =", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitNotEqualTo(String value) { + addCriterion("unit <>", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitGreaterThan(String value) { + addCriterion("unit >", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitGreaterThanOrEqualTo(String value) { + addCriterion("unit >=", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitLessThan(String value) { + addCriterion("unit <", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitLessThanOrEqualTo(String value) { + addCriterion("unit <=", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitLike(String value) { + addCriterion("unit like", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitNotLike(String value) { + addCriterion("unit not like", value, "unit"); + return (Criteria) this; + } + + public Criteria andUnitIn(List values) { + addCriterion("unit in", values, "unit"); + return (Criteria) this; + } + + public Criteria andUnitNotIn(List values) { + addCriterion("unit not in", values, "unit"); + return (Criteria) this; + } + + public Criteria andUnitBetween(String value1, String value2) { + addCriterion("unit between", value1, value2, "unit"); + return (Criteria) this; + } + + public Criteria andUnitNotBetween(String value1, String value2) { + addCriterion("unit not between", value1, value2, "unit"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andImgNameIsNull() { + addCriterion("img_name is null"); + return (Criteria) this; + } + + public Criteria andImgNameIsNotNull() { + addCriterion("img_name is not null"); + return (Criteria) this; + } + + public Criteria andImgNameEqualTo(String value) { + addCriterion("img_name =", value, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameNotEqualTo(String value) { + addCriterion("img_name <>", value, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameGreaterThan(String value) { + addCriterion("img_name >", value, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameGreaterThanOrEqualTo(String value) { + addCriterion("img_name >=", value, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameLessThan(String value) { + addCriterion("img_name <", value, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameLessThanOrEqualTo(String value) { + addCriterion("img_name <=", value, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameLike(String value) { + addCriterion("img_name like", value, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameNotLike(String value) { + addCriterion("img_name not like", value, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameIn(List values) { + addCriterion("img_name in", values, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameNotIn(List values) { + addCriterion("img_name not in", values, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameBetween(String value1, String value2) { + addCriterion("img_name between", value1, value2, "imgName"); + return (Criteria) this; + } + + public Criteria andImgNameNotBetween(String value1, String value2) { + addCriterion("img_name not between", value1, value2, "imgName"); + return (Criteria) this; + } + + public Criteria andUnitIdIsNull() { + addCriterion("unit_id is null"); + return (Criteria) this; + } + + public Criteria andUnitIdIsNotNull() { + addCriterion("unit_id is not null"); + return (Criteria) this; + } + + public Criteria andUnitIdEqualTo(Long value) { + addCriterion("unit_id =", value, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdNotEqualTo(Long value) { + addCriterion("unit_id <>", value, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdGreaterThan(Long value) { + addCriterion("unit_id >", value, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdGreaterThanOrEqualTo(Long value) { + addCriterion("unit_id >=", value, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdLessThan(Long value) { + addCriterion("unit_id <", value, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdLessThanOrEqualTo(Long value) { + addCriterion("unit_id <=", value, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdIn(List values) { + addCriterion("unit_id in", values, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdNotIn(List values) { + addCriterion("unit_id not in", values, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdBetween(Long value1, Long value2) { + addCriterion("unit_id between", value1, value2, "unitId"); + return (Criteria) this; + } + + public Criteria andUnitIdNotBetween(Long value1, Long value2) { + addCriterion("unit_id not between", value1, value2, "unitId"); + return (Criteria) this; + } + + public Criteria andExpiryNumIsNull() { + addCriterion("expiry_num is null"); + return (Criteria) this; + } + + public Criteria andExpiryNumIsNotNull() { + addCriterion("expiry_num is not null"); + return (Criteria) this; + } + + public Criteria andExpiryNumEqualTo(Integer value) { + addCriterion("expiry_num =", value, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumNotEqualTo(Integer value) { + addCriterion("expiry_num <>", value, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumGreaterThan(Integer value) { + addCriterion("expiry_num >", value, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumGreaterThanOrEqualTo(Integer value) { + addCriterion("expiry_num >=", value, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumLessThan(Integer value) { + addCriterion("expiry_num <", value, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumLessThanOrEqualTo(Integer value) { + addCriterion("expiry_num <=", value, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumIn(List values) { + addCriterion("expiry_num in", values, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumNotIn(List values) { + addCriterion("expiry_num not in", values, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumBetween(Integer value1, Integer value2) { + addCriterion("expiry_num between", value1, value2, "expiryNum"); + return (Criteria) this; + } + + public Criteria andExpiryNumNotBetween(Integer value1, Integer value2) { + addCriterion("expiry_num not between", value1, value2, "expiryNum"); + return (Criteria) this; + } + + public Criteria andWeightIsNull() { + addCriterion("weight is null"); + return (Criteria) this; + } + + public Criteria andWeightIsNotNull() { + addCriterion("weight is not null"); + return (Criteria) this; + } + + public Criteria andWeightEqualTo(BigDecimal value) { + addCriterion("weight =", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightNotEqualTo(BigDecimal value) { + addCriterion("weight <>", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightGreaterThan(BigDecimal value) { + addCriterion("weight >", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("weight >=", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightLessThan(BigDecimal value) { + addCriterion("weight <", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightLessThanOrEqualTo(BigDecimal value) { + addCriterion("weight <=", value, "weight"); + return (Criteria) this; + } + + public Criteria andWeightIn(List values) { + addCriterion("weight in", values, "weight"); + return (Criteria) this; + } + + public Criteria andWeightNotIn(List values) { + addCriterion("weight not in", values, "weight"); + return (Criteria) this; + } + + public Criteria andWeightBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("weight between", value1, value2, "weight"); + return (Criteria) this; + } + + public Criteria andWeightNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("weight not between", value1, value2, "weight"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andOtherField1IsNull() { + addCriterion("other_field1 is null"); + return (Criteria) this; + } + + public Criteria andOtherField1IsNotNull() { + addCriterion("other_field1 is not null"); + return (Criteria) this; + } + + public Criteria andOtherField1EqualTo(String value) { + addCriterion("other_field1 =", value, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1NotEqualTo(String value) { + addCriterion("other_field1 <>", value, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1GreaterThan(String value) { + addCriterion("other_field1 >", value, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1GreaterThanOrEqualTo(String value) { + addCriterion("other_field1 >=", value, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1LessThan(String value) { + addCriterion("other_field1 <", value, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1LessThanOrEqualTo(String value) { + addCriterion("other_field1 <=", value, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1Like(String value) { + addCriterion("other_field1 like", value, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1NotLike(String value) { + addCriterion("other_field1 not like", value, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1In(List values) { + addCriterion("other_field1 in", values, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1NotIn(List values) { + addCriterion("other_field1 not in", values, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1Between(String value1, String value2) { + addCriterion("other_field1 between", value1, value2, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField1NotBetween(String value1, String value2) { + addCriterion("other_field1 not between", value1, value2, "otherField1"); + return (Criteria) this; + } + + public Criteria andOtherField2IsNull() { + addCriterion("other_field2 is null"); + return (Criteria) this; + } + + public Criteria andOtherField2IsNotNull() { + addCriterion("other_field2 is not null"); + return (Criteria) this; + } + + public Criteria andOtherField2EqualTo(String value) { + addCriterion("other_field2 =", value, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2NotEqualTo(String value) { + addCriterion("other_field2 <>", value, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2GreaterThan(String value) { + addCriterion("other_field2 >", value, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2GreaterThanOrEqualTo(String value) { + addCriterion("other_field2 >=", value, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2LessThan(String value) { + addCriterion("other_field2 <", value, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2LessThanOrEqualTo(String value) { + addCriterion("other_field2 <=", value, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2Like(String value) { + addCriterion("other_field2 like", value, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2NotLike(String value) { + addCriterion("other_field2 not like", value, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2In(List values) { + addCriterion("other_field2 in", values, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2NotIn(List values) { + addCriterion("other_field2 not in", values, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2Between(String value1, String value2) { + addCriterion("other_field2 between", value1, value2, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField2NotBetween(String value1, String value2) { + addCriterion("other_field2 not between", value1, value2, "otherField2"); + return (Criteria) this; + } + + public Criteria andOtherField3IsNull() { + addCriterion("other_field3 is null"); + return (Criteria) this; + } + + public Criteria andOtherField3IsNotNull() { + addCriterion("other_field3 is not null"); + return (Criteria) this; + } + + public Criteria andOtherField3EqualTo(String value) { + addCriterion("other_field3 =", value, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3NotEqualTo(String value) { + addCriterion("other_field3 <>", value, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3GreaterThan(String value) { + addCriterion("other_field3 >", value, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3GreaterThanOrEqualTo(String value) { + addCriterion("other_field3 >=", value, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3LessThan(String value) { + addCriterion("other_field3 <", value, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3LessThanOrEqualTo(String value) { + addCriterion("other_field3 <=", value, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3Like(String value) { + addCriterion("other_field3 like", value, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3NotLike(String value) { + addCriterion("other_field3 not like", value, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3In(List values) { + addCriterion("other_field3 in", values, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3NotIn(List values) { + addCriterion("other_field3 not in", values, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3Between(String value1, String value2) { + addCriterion("other_field3 between", value1, value2, "otherField3"); + return (Criteria) this; + } + + public Criteria andOtherField3NotBetween(String value1, String value2) { + addCriterion("other_field3 not between", value1, value2, "otherField3"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberIsNull() { + addCriterion("enable_serial_number is null"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberIsNotNull() { + addCriterion("enable_serial_number is not null"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberEqualTo(String value) { + addCriterion("enable_serial_number =", value, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberNotEqualTo(String value) { + addCriterion("enable_serial_number <>", value, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberGreaterThan(String value) { + addCriterion("enable_serial_number >", value, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberGreaterThanOrEqualTo(String value) { + addCriterion("enable_serial_number >=", value, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberLessThan(String value) { + addCriterion("enable_serial_number <", value, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberLessThanOrEqualTo(String value) { + addCriterion("enable_serial_number <=", value, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberLike(String value) { + addCriterion("enable_serial_number like", value, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberNotLike(String value) { + addCriterion("enable_serial_number not like", value, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberIn(List values) { + addCriterion("enable_serial_number in", values, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberNotIn(List values) { + addCriterion("enable_serial_number not in", values, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberBetween(String value1, String value2) { + addCriterion("enable_serial_number between", value1, value2, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableSerialNumberNotBetween(String value1, String value2) { + addCriterion("enable_serial_number not between", value1, value2, "enableSerialNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberIsNull() { + addCriterion("enable_batch_number is null"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberIsNotNull() { + addCriterion("enable_batch_number is not null"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberEqualTo(String value) { + addCriterion("enable_batch_number =", value, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberNotEqualTo(String value) { + addCriterion("enable_batch_number <>", value, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberGreaterThan(String value) { + addCriterion("enable_batch_number >", value, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberGreaterThanOrEqualTo(String value) { + addCriterion("enable_batch_number >=", value, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberLessThan(String value) { + addCriterion("enable_batch_number <", value, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberLessThanOrEqualTo(String value) { + addCriterion("enable_batch_number <=", value, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberLike(String value) { + addCriterion("enable_batch_number like", value, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberNotLike(String value) { + addCriterion("enable_batch_number not like", value, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberIn(List values) { + addCriterion("enable_batch_number in", values, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberNotIn(List values) { + addCriterion("enable_batch_number not in", values, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberBetween(String value1, String value2) { + addCriterion("enable_batch_number between", value1, value2, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andEnableBatchNumberNotBetween(String value1, String value2) { + addCriterion("enable_batch_number not between", value1, value2, "enableBatchNumber"); + return (Criteria) this; + } + + public Criteria andPositionIsNull() { + addCriterion("position is null"); + return (Criteria) this; + } + + public Criteria andPositionIsNotNull() { + addCriterion("position is not null"); + return (Criteria) this; + } + + public Criteria andPositionEqualTo(String value) { + addCriterion("position =", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionNotEqualTo(String value) { + addCriterion("position <>", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionGreaterThan(String value) { + addCriterion("position >", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionGreaterThanOrEqualTo(String value) { + addCriterion("position >=", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionLessThan(String value) { + addCriterion("position <", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionLessThanOrEqualTo(String value) { + addCriterion("position <=", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionLike(String value) { + addCriterion("position like", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionNotLike(String value) { + addCriterion("position not like", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionIn(List values) { + addCriterion("position in", values, "position"); + return (Criteria) this; + } + + public Criteria andPositionNotIn(List values) { + addCriterion("position not in", values, "position"); + return (Criteria) this; + } + + public Criteria andPositionBetween(String value1, String value2) { + addCriterion("position between", value1, value2, "position"); + return (Criteria) this; + } + + public Criteria andPositionNotBetween(String value1, String value2) { + addCriterion("position not between", value1, value2, "position"); + return (Criteria) this; + } + + public Criteria andAttributeIsNull() { + addCriterion("attribute is null"); + return (Criteria) this; + } + + public Criteria andAttributeIsNotNull() { + addCriterion("attribute is not null"); + return (Criteria) this; + } + + public Criteria andAttributeEqualTo(String value) { + addCriterion("attribute =", value, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeNotEqualTo(String value) { + addCriterion("attribute <>", value, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeGreaterThan(String value) { + addCriterion("attribute >", value, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeGreaterThanOrEqualTo(String value) { + addCriterion("attribute >=", value, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeLessThan(String value) { + addCriterion("attribute <", value, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeLessThanOrEqualTo(String value) { + addCriterion("attribute <=", value, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeLike(String value) { + addCriterion("attribute like", value, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeNotLike(String value) { + addCriterion("attribute not like", value, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeIn(List values) { + addCriterion("attribute in", values, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeNotIn(List values) { + addCriterion("attribute not in", values, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeBetween(String value1, String value2) { + addCriterion("attribute between", value1, value2, "attribute"); + return (Criteria) this; + } + + public Criteria andAttributeNotBetween(String value1, String value2) { + addCriterion("attribute not between", value1, value2, "attribute"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExtend.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExtend.java new file mode 100644 index 0000000..5cef121 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExtend.java @@ -0,0 +1,166 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +public class MaterialExtend { + private Long id; + + private Long materialId; + + private String barCode; + + private String commodityUnit; + + private String sku; + + private BigDecimal purchaseDecimal; + + private BigDecimal commodityDecimal; + + private BigDecimal wholesaleDecimal; + + private BigDecimal lowDecimal; + + private String defaultFlag; + + private Date createTime; + + private String createSerial; + + private String updateSerial; + + private Long updateTime; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode == null ? null : barCode.trim(); + } + + public String getCommodityUnit() { + return commodityUnit; + } + + public void setCommodityUnit(String commodityUnit) { + this.commodityUnit = commodityUnit == null ? null : commodityUnit.trim(); + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku == null ? null : sku.trim(); + } + + public BigDecimal getPurchaseDecimal() { + return purchaseDecimal; + } + + public void setPurchaseDecimal(BigDecimal purchaseDecimal) { + this.purchaseDecimal = purchaseDecimal; + } + + public BigDecimal getCommodityDecimal() { + return commodityDecimal; + } + + public void setCommodityDecimal(BigDecimal commodityDecimal) { + this.commodityDecimal = commodityDecimal; + } + + public BigDecimal getWholesaleDecimal() { + return wholesaleDecimal; + } + + public void setWholesaleDecimal(BigDecimal wholesaleDecimal) { + this.wholesaleDecimal = wholesaleDecimal; + } + + public BigDecimal getLowDecimal() { + return lowDecimal; + } + + public void setLowDecimal(BigDecimal lowDecimal) { + this.lowDecimal = lowDecimal; + } + + public String getDefaultFlag() { + return defaultFlag; + } + + public void setDefaultFlag(String defaultFlag) { + this.defaultFlag = defaultFlag == null ? null : defaultFlag.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getCreateSerial() { + return createSerial; + } + + public void setCreateSerial(String createSerial) { + this.createSerial = createSerial == null ? null : createSerial.trim(); + } + + public String getUpdateSerial() { + return updateSerial; + } + + public void setUpdateSerial(String updateSerial) { + this.updateSerial = updateSerial == null ? null : updateSerial.trim(); + } + + public Long getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Long updateTime) { + this.updateTime = updateTime; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExtendExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExtendExample.java new file mode 100644 index 0000000..ab22643 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialExtendExample.java @@ -0,0 +1,1231 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class MaterialExtendExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MaterialExtendExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNull() { + addCriterion("material_id is null"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNotNull() { + addCriterion("material_id is not null"); + return (Criteria) this; + } + + public Criteria andMaterialIdEqualTo(Long value) { + addCriterion("material_id =", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotEqualTo(Long value) { + addCriterion("material_id <>", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThan(Long value) { + addCriterion("material_id >", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThanOrEqualTo(Long value) { + addCriterion("material_id >=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThan(Long value) { + addCriterion("material_id <", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThanOrEqualTo(Long value) { + addCriterion("material_id <=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdIn(List values) { + addCriterion("material_id in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotIn(List values) { + addCriterion("material_id not in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdBetween(Long value1, Long value2) { + addCriterion("material_id between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotBetween(Long value1, Long value2) { + addCriterion("material_id not between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andBarCodeIsNull() { + addCriterion("bar_code is null"); + return (Criteria) this; + } + + public Criteria andBarCodeIsNotNull() { + addCriterion("bar_code is not null"); + return (Criteria) this; + } + + public Criteria andBarCodeEqualTo(String value) { + addCriterion("bar_code =", value, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeNotEqualTo(String value) { + addCriterion("bar_code <>", value, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeGreaterThan(String value) { + addCriterion("bar_code >", value, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeGreaterThanOrEqualTo(String value) { + addCriterion("bar_code >=", value, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeLessThan(String value) { + addCriterion("bar_code <", value, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeLessThanOrEqualTo(String value) { + addCriterion("bar_code <=", value, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeLike(String value) { + addCriterion("bar_code like", value, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeNotLike(String value) { + addCriterion("bar_code not like", value, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeIn(List values) { + addCriterion("bar_code in", values, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeNotIn(List values) { + addCriterion("bar_code not in", values, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeBetween(String value1, String value2) { + addCriterion("bar_code between", value1, value2, "barCode"); + return (Criteria) this; + } + + public Criteria andBarCodeNotBetween(String value1, String value2) { + addCriterion("bar_code not between", value1, value2, "barCode"); + return (Criteria) this; + } + + public Criteria andCommodityUnitIsNull() { + addCriterion("commodity_unit is null"); + return (Criteria) this; + } + + public Criteria andCommodityUnitIsNotNull() { + addCriterion("commodity_unit is not null"); + return (Criteria) this; + } + + public Criteria andCommodityUnitEqualTo(String value) { + addCriterion("commodity_unit =", value, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitNotEqualTo(String value) { + addCriterion("commodity_unit <>", value, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitGreaterThan(String value) { + addCriterion("commodity_unit >", value, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitGreaterThanOrEqualTo(String value) { + addCriterion("commodity_unit >=", value, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitLessThan(String value) { + addCriterion("commodity_unit <", value, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitLessThanOrEqualTo(String value) { + addCriterion("commodity_unit <=", value, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitLike(String value) { + addCriterion("commodity_unit like", value, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitNotLike(String value) { + addCriterion("commodity_unit not like", value, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitIn(List values) { + addCriterion("commodity_unit in", values, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitNotIn(List values) { + addCriterion("commodity_unit not in", values, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitBetween(String value1, String value2) { + addCriterion("commodity_unit between", value1, value2, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andCommodityUnitNotBetween(String value1, String value2) { + addCriterion("commodity_unit not between", value1, value2, "commodityUnit"); + return (Criteria) this; + } + + public Criteria andSkuIsNull() { + addCriterion("sku is null"); + return (Criteria) this; + } + + public Criteria andSkuIsNotNull() { + addCriterion("sku is not null"); + return (Criteria) this; + } + + public Criteria andSkuEqualTo(String value) { + addCriterion("sku =", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuNotEqualTo(String value) { + addCriterion("sku <>", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuGreaterThan(String value) { + addCriterion("sku >", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuGreaterThanOrEqualTo(String value) { + addCriterion("sku >=", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuLessThan(String value) { + addCriterion("sku <", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuLessThanOrEqualTo(String value) { + addCriterion("sku <=", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuLike(String value) { + addCriterion("sku like", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuNotLike(String value) { + addCriterion("sku not like", value, "sku"); + return (Criteria) this; + } + + public Criteria andSkuIn(List values) { + addCriterion("sku in", values, "sku"); + return (Criteria) this; + } + + public Criteria andSkuNotIn(List values) { + addCriterion("sku not in", values, "sku"); + return (Criteria) this; + } + + public Criteria andSkuBetween(String value1, String value2) { + addCriterion("sku between", value1, value2, "sku"); + return (Criteria) this; + } + + public Criteria andSkuNotBetween(String value1, String value2) { + addCriterion("sku not between", value1, value2, "sku"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalIsNull() { + addCriterion("purchase_decimal is null"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalIsNotNull() { + addCriterion("purchase_decimal is not null"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalEqualTo(BigDecimal value) { + addCriterion("purchase_decimal =", value, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalNotEqualTo(BigDecimal value) { + addCriterion("purchase_decimal <>", value, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalGreaterThan(BigDecimal value) { + addCriterion("purchase_decimal >", value, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("purchase_decimal >=", value, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalLessThan(BigDecimal value) { + addCriterion("purchase_decimal <", value, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalLessThanOrEqualTo(BigDecimal value) { + addCriterion("purchase_decimal <=", value, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalIn(List values) { + addCriterion("purchase_decimal in", values, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalNotIn(List values) { + addCriterion("purchase_decimal not in", values, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("purchase_decimal between", value1, value2, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andPurchaseDecimalNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("purchase_decimal not between", value1, value2, "purchaseDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalIsNull() { + addCriterion("commodity_decimal is null"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalIsNotNull() { + addCriterion("commodity_decimal is not null"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalEqualTo(BigDecimal value) { + addCriterion("commodity_decimal =", value, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalNotEqualTo(BigDecimal value) { + addCriterion("commodity_decimal <>", value, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalGreaterThan(BigDecimal value) { + addCriterion("commodity_decimal >", value, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("commodity_decimal >=", value, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalLessThan(BigDecimal value) { + addCriterion("commodity_decimal <", value, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalLessThanOrEqualTo(BigDecimal value) { + addCriterion("commodity_decimal <=", value, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalIn(List values) { + addCriterion("commodity_decimal in", values, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalNotIn(List values) { + addCriterion("commodity_decimal not in", values, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("commodity_decimal between", value1, value2, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andCommodityDecimalNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("commodity_decimal not between", value1, value2, "commodityDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalIsNull() { + addCriterion("wholesale_decimal is null"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalIsNotNull() { + addCriterion("wholesale_decimal is not null"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalEqualTo(BigDecimal value) { + addCriterion("wholesale_decimal =", value, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalNotEqualTo(BigDecimal value) { + addCriterion("wholesale_decimal <>", value, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalGreaterThan(BigDecimal value) { + addCriterion("wholesale_decimal >", value, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("wholesale_decimal >=", value, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalLessThan(BigDecimal value) { + addCriterion("wholesale_decimal <", value, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalLessThanOrEqualTo(BigDecimal value) { + addCriterion("wholesale_decimal <=", value, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalIn(List values) { + addCriterion("wholesale_decimal in", values, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalNotIn(List values) { + addCriterion("wholesale_decimal not in", values, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("wholesale_decimal between", value1, value2, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andWholesaleDecimalNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("wholesale_decimal not between", value1, value2, "wholesaleDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalIsNull() { + addCriterion("low_decimal is null"); + return (Criteria) this; + } + + public Criteria andLowDecimalIsNotNull() { + addCriterion("low_decimal is not null"); + return (Criteria) this; + } + + public Criteria andLowDecimalEqualTo(BigDecimal value) { + addCriterion("low_decimal =", value, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalNotEqualTo(BigDecimal value) { + addCriterion("low_decimal <>", value, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalGreaterThan(BigDecimal value) { + addCriterion("low_decimal >", value, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("low_decimal >=", value, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalLessThan(BigDecimal value) { + addCriterion("low_decimal <", value, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalLessThanOrEqualTo(BigDecimal value) { + addCriterion("low_decimal <=", value, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalIn(List values) { + addCriterion("low_decimal in", values, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalNotIn(List values) { + addCriterion("low_decimal not in", values, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("low_decimal between", value1, value2, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andLowDecimalNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("low_decimal not between", value1, value2, "lowDecimal"); + return (Criteria) this; + } + + public Criteria andDefaultFlagIsNull() { + addCriterion("default_flag is null"); + return (Criteria) this; + } + + public Criteria andDefaultFlagIsNotNull() { + addCriterion("default_flag is not null"); + return (Criteria) this; + } + + public Criteria andDefaultFlagEqualTo(String value) { + addCriterion("default_flag =", value, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagNotEqualTo(String value) { + addCriterion("default_flag <>", value, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagGreaterThan(String value) { + addCriterion("default_flag >", value, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagGreaterThanOrEqualTo(String value) { + addCriterion("default_flag >=", value, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagLessThan(String value) { + addCriterion("default_flag <", value, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagLessThanOrEqualTo(String value) { + addCriterion("default_flag <=", value, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagLike(String value) { + addCriterion("default_flag like", value, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagNotLike(String value) { + addCriterion("default_flag not like", value, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagIn(List values) { + addCriterion("default_flag in", values, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagNotIn(List values) { + addCriterion("default_flag not in", values, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagBetween(String value1, String value2) { + addCriterion("default_flag between", value1, value2, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andDefaultFlagNotBetween(String value1, String value2) { + addCriterion("default_flag not between", value1, value2, "defaultFlag"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateSerialIsNull() { + addCriterion("create_serial is null"); + return (Criteria) this; + } + + public Criteria andCreateSerialIsNotNull() { + addCriterion("create_serial is not null"); + return (Criteria) this; + } + + public Criteria andCreateSerialEqualTo(String value) { + addCriterion("create_serial =", value, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialNotEqualTo(String value) { + addCriterion("create_serial <>", value, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialGreaterThan(String value) { + addCriterion("create_serial >", value, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialGreaterThanOrEqualTo(String value) { + addCriterion("create_serial >=", value, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialLessThan(String value) { + addCriterion("create_serial <", value, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialLessThanOrEqualTo(String value) { + addCriterion("create_serial <=", value, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialLike(String value) { + addCriterion("create_serial like", value, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialNotLike(String value) { + addCriterion("create_serial not like", value, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialIn(List values) { + addCriterion("create_serial in", values, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialNotIn(List values) { + addCriterion("create_serial not in", values, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialBetween(String value1, String value2) { + addCriterion("create_serial between", value1, value2, "createSerial"); + return (Criteria) this; + } + + public Criteria andCreateSerialNotBetween(String value1, String value2) { + addCriterion("create_serial not between", value1, value2, "createSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialIsNull() { + addCriterion("update_serial is null"); + return (Criteria) this; + } + + public Criteria andUpdateSerialIsNotNull() { + addCriterion("update_serial is not null"); + return (Criteria) this; + } + + public Criteria andUpdateSerialEqualTo(String value) { + addCriterion("update_serial =", value, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialNotEqualTo(String value) { + addCriterion("update_serial <>", value, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialGreaterThan(String value) { + addCriterion("update_serial >", value, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialGreaterThanOrEqualTo(String value) { + addCriterion("update_serial >=", value, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialLessThan(String value) { + addCriterion("update_serial <", value, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialLessThanOrEqualTo(String value) { + addCriterion("update_serial <=", value, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialLike(String value) { + addCriterion("update_serial like", value, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialNotLike(String value) { + addCriterion("update_serial not like", value, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialIn(List values) { + addCriterion("update_serial in", values, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialNotIn(List values) { + addCriterion("update_serial not in", values, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialBetween(String value1, String value2) { + addCriterion("update_serial between", value1, value2, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateSerialNotBetween(String value1, String value2) { + addCriterion("update_serial not between", value1, value2, "updateSerial"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Long value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Long value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Long value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Long value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Long value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Long value1, Long value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Long value1, Long value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_Flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_Flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_Flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_Flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_Flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_Flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_Flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_Flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_Flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_Flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_Flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_Flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_Flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_Flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStock.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStock.java new file mode 100644 index 0000000..c19ff7b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStock.java @@ -0,0 +1,85 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class MaterialInitialStock { + private Long id; + + private Long materialId; + + private Long depotId; + + private BigDecimal number; + + private BigDecimal lowSafeStock; + + private BigDecimal highSafeStock; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public BigDecimal getNumber() { + return number; + } + + public void setNumber(BigDecimal number) { + this.number = number; + } + + public BigDecimal getLowSafeStock() { + return lowSafeStock; + } + + public void setLowSafeStock(BigDecimal lowSafeStock) { + this.lowSafeStock = lowSafeStock; + } + + public BigDecimal getHighSafeStock() { + return highSafeStock; + } + + public void setHighSafeStock(BigDecimal highSafeStock) { + this.highSafeStock = highSafeStock; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStockExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStockExample.java new file mode 100644 index 0000000..cdadf7e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStockExample.java @@ -0,0 +1,690 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class MaterialInitialStockExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MaterialInitialStockExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNull() { + addCriterion("material_id is null"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNotNull() { + addCriterion("material_id is not null"); + return (Criteria) this; + } + + public Criteria andMaterialIdEqualTo(Long value) { + addCriterion("material_id =", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotEqualTo(Long value) { + addCriterion("material_id <>", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThan(Long value) { + addCriterion("material_id >", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThanOrEqualTo(Long value) { + addCriterion("material_id >=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThan(Long value) { + addCriterion("material_id <", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThanOrEqualTo(Long value) { + addCriterion("material_id <=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdIn(List values) { + addCriterion("material_id in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotIn(List values) { + addCriterion("material_id not in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdBetween(Long value1, Long value2) { + addCriterion("material_id between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotBetween(Long value1, Long value2) { + addCriterion("material_id not between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNull() { + addCriterion("depot_id is null"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNotNull() { + addCriterion("depot_id is not null"); + return (Criteria) this; + } + + public Criteria andDepotIdEqualTo(Long value) { + addCriterion("depot_id =", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotEqualTo(Long value) { + addCriterion("depot_id <>", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThan(Long value) { + addCriterion("depot_id >", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThanOrEqualTo(Long value) { + addCriterion("depot_id >=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThan(Long value) { + addCriterion("depot_id <", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThanOrEqualTo(Long value) { + addCriterion("depot_id <=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdIn(List values) { + addCriterion("depot_id in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotIn(List values) { + addCriterion("depot_id not in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdBetween(Long value1, Long value2) { + addCriterion("depot_id between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotBetween(Long value1, Long value2) { + addCriterion("depot_id not between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andNumberIsNull() { + addCriterion("number is null"); + return (Criteria) this; + } + + public Criteria andNumberIsNotNull() { + addCriterion("number is not null"); + return (Criteria) this; + } + + public Criteria andNumberEqualTo(BigDecimal value) { + addCriterion("number =", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotEqualTo(BigDecimal value) { + addCriterion("number <>", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberGreaterThan(BigDecimal value) { + addCriterion("number >", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("number >=", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberLessThan(BigDecimal value) { + addCriterion("number <", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberLessThanOrEqualTo(BigDecimal value) { + addCriterion("number <=", value, "number"); + return (Criteria) this; + } + + public Criteria andNumberIn(List values) { + addCriterion("number in", values, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotIn(List values) { + addCriterion("number not in", values, "number"); + return (Criteria) this; + } + + public Criteria andNumberBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("number between", value1, value2, "number"); + return (Criteria) this; + } + + public Criteria andNumberNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("number not between", value1, value2, "number"); + return (Criteria) this; + } + + public Criteria andLowSafeStockIsNull() { + addCriterion("low_safe_stock is null"); + return (Criteria) this; + } + + public Criteria andLowSafeStockIsNotNull() { + addCriterion("low_safe_stock is not null"); + return (Criteria) this; + } + + public Criteria andLowSafeStockEqualTo(BigDecimal value) { + addCriterion("low_safe_stock =", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockNotEqualTo(BigDecimal value) { + addCriterion("low_safe_stock <>", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockGreaterThan(BigDecimal value) { + addCriterion("low_safe_stock >", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("low_safe_stock >=", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockLessThan(BigDecimal value) { + addCriterion("low_safe_stock <", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockLessThanOrEqualTo(BigDecimal value) { + addCriterion("low_safe_stock <=", value, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockIn(List values) { + addCriterion("low_safe_stock in", values, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockNotIn(List values) { + addCriterion("low_safe_stock not in", values, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("low_safe_stock between", value1, value2, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andLowSafeStockNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("low_safe_stock not between", value1, value2, "lowSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockIsNull() { + addCriterion("high_safe_stock is null"); + return (Criteria) this; + } + + public Criteria andHighSafeStockIsNotNull() { + addCriterion("high_safe_stock is not null"); + return (Criteria) this; + } + + public Criteria andHighSafeStockEqualTo(BigDecimal value) { + addCriterion("high_safe_stock =", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockNotEqualTo(BigDecimal value) { + addCriterion("high_safe_stock <>", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockGreaterThan(BigDecimal value) { + addCriterion("high_safe_stock >", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("high_safe_stock >=", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockLessThan(BigDecimal value) { + addCriterion("high_safe_stock <", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockLessThanOrEqualTo(BigDecimal value) { + addCriterion("high_safe_stock <=", value, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockIn(List values) { + addCriterion("high_safe_stock in", values, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockNotIn(List values) { + addCriterion("high_safe_stock not in", values, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("high_safe_stock between", value1, value2, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andHighSafeStockNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("high_safe_stock not between", value1, value2, "highSafeStock"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStockWithMaterial.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStockWithMaterial.java new file mode 100644 index 0000000..6c0a2fb --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialInitialStockWithMaterial.java @@ -0,0 +1,26 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class MaterialInitialStockWithMaterial { + + private Long materialId; + + private BigDecimal number; + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public BigDecimal getNumber() { + return number; + } + + public void setNumber(BigDecimal number) { + this.number = number; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialProperty.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialProperty.java new file mode 100644 index 0000000..65c88c2 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialProperty.java @@ -0,0 +1,73 @@ +package com.reallin.smt.datasource.entities; + +public class MaterialProperty { + private Long id; + + private String nativeName; + + private Boolean enabled; + + private String sort; + + private String anotherName; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getNativeName() { + return nativeName; + } + + public void setNativeName(String nativeName) { + this.nativeName = nativeName == null ? null : nativeName.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public String getAnotherName() { + return anotherName; + } + + public void setAnotherName(String anotherName) { + this.anotherName = anotherName == null ? null : anotherName.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialPropertyExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialPropertyExample.java new file mode 100644 index 0000000..5c4e82f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialPropertyExample.java @@ -0,0 +1,659 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class MaterialPropertyExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MaterialPropertyExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNativeNameIsNull() { + addCriterion("native_name is null"); + return (Criteria) this; + } + + public Criteria andNativeNameIsNotNull() { + addCriterion("native_name is not null"); + return (Criteria) this; + } + + public Criteria andNativeNameEqualTo(String value) { + addCriterion("native_name =", value, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameNotEqualTo(String value) { + addCriterion("native_name <>", value, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameGreaterThan(String value) { + addCriterion("native_name >", value, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameGreaterThanOrEqualTo(String value) { + addCriterion("native_name >=", value, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameLessThan(String value) { + addCriterion("native_name <", value, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameLessThanOrEqualTo(String value) { + addCriterion("native_name <=", value, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameLike(String value) { + addCriterion("native_name like", value, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameNotLike(String value) { + addCriterion("native_name not like", value, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameIn(List values) { + addCriterion("native_name in", values, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameNotIn(List values) { + addCriterion("native_name not in", values, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameBetween(String value1, String value2) { + addCriterion("native_name between", value1, value2, "nativeName"); + return (Criteria) this; + } + + public Criteria andNativeNameNotBetween(String value1, String value2) { + addCriterion("native_name not between", value1, value2, "nativeName"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andAnotherNameIsNull() { + addCriterion("another_name is null"); + return (Criteria) this; + } + + public Criteria andAnotherNameIsNotNull() { + addCriterion("another_name is not null"); + return (Criteria) this; + } + + public Criteria andAnotherNameEqualTo(String value) { + addCriterion("another_name =", value, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameNotEqualTo(String value) { + addCriterion("another_name <>", value, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameGreaterThan(String value) { + addCriterion("another_name >", value, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameGreaterThanOrEqualTo(String value) { + addCriterion("another_name >=", value, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameLessThan(String value) { + addCriterion("another_name <", value, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameLessThanOrEqualTo(String value) { + addCriterion("another_name <=", value, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameLike(String value) { + addCriterion("another_name like", value, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameNotLike(String value) { + addCriterion("another_name not like", value, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameIn(List values) { + addCriterion("another_name in", values, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameNotIn(List values) { + addCriterion("another_name not in", values, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameBetween(String value1, String value2) { + addCriterion("another_name between", value1, value2, "anotherName"); + return (Criteria) this; + } + + public Criteria andAnotherNameNotBetween(String value1, String value2) { + addCriterion("another_name not between", value1, value2, "anotherName"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialVo4Unit.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialVo4Unit.java new file mode 100644 index 0000000..7c6f48e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialVo4Unit.java @@ -0,0 +1,292 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class MaterialVo4Unit extends Material{ + + private String unitName; + + private BigDecimal ratio; + + private String categoryName; + + private String materialOther; + + private BigDecimal stock; + + private BigDecimal purchaseDecimal; + + private BigDecimal commodityDecimal; + + private BigDecimal wholesaleDecimal; + + private BigDecimal lowDecimal; + + private BigDecimal billPrice; + + private String mBarCode; + + private String commodityUnit; + + private Long meId; + + private BigDecimal initialStock; + + private BigDecimal currentUnitPrice; + + private BigDecimal currentStock; + + private BigDecimal currentStockPrice; + + private BigDecimal currentStockMovePrice; + + private BigDecimal currentWeight; + + private String sku; + + private Long depotId; + + /** + * 换算为大单位的库存 + */ + private String bigUnitStock; + + /** + * 换算为大单位的初始库存 + */ + private String bigUnitInitialStock; + + private String imgSmall; + + private String imgLarge; + + private BigDecimal taxRate; + + private BigDecimal taxMoney; + + private BigDecimal taxLastMoney; + + public String getUnitName() { + return unitName; + } + + public void setUnitName(String unitName) { + this.unitName = unitName; + } + + public BigDecimal getRatio() { + return ratio; + } + + public void setRatio(BigDecimal ratio) { + this.ratio = ratio; + } + + public String getCategoryName() { + return categoryName; + } + + public void setCategoryName(String categoryName) { + this.categoryName = categoryName; + } + + public String getMaterialOther() { + return materialOther; + } + + public void setMaterialOther(String materialOther) { + this.materialOther = materialOther; + } + + public BigDecimal getStock() { + return stock; + } + + public void setStock(BigDecimal stock) { + this.stock = stock; + } + + public BigDecimal getPurchaseDecimal() { + return purchaseDecimal; + } + + public void setPurchaseDecimal(BigDecimal purchaseDecimal) { + this.purchaseDecimal = purchaseDecimal; + } + + public BigDecimal getCommodityDecimal() { + return commodityDecimal; + } + + public void setCommodityDecimal(BigDecimal commodityDecimal) { + this.commodityDecimal = commodityDecimal; + } + + public BigDecimal getWholesaleDecimal() { + return wholesaleDecimal; + } + + public void setWholesaleDecimal(BigDecimal wholesaleDecimal) { + this.wholesaleDecimal = wholesaleDecimal; + } + + public BigDecimal getLowDecimal() { + return lowDecimal; + } + + public void setLowDecimal(BigDecimal lowDecimal) { + this.lowDecimal = lowDecimal; + } + + public BigDecimal getBillPrice() { + return billPrice; + } + + public void setBillPrice(BigDecimal billPrice) { + this.billPrice = billPrice; + } + + public String getmBarCode() { + return mBarCode; + } + + public void setmBarCode(String mBarCode) { + this.mBarCode = mBarCode; + } + + public String getCommodityUnit() { + return commodityUnit; + } + + public void setCommodityUnit(String commodityUnit) { + this.commodityUnit = commodityUnit; + } + + public Long getMeId() { + return meId; + } + + public void setMeId(Long meId) { + this.meId = meId; + } + + public BigDecimal getInitialStock() { + return initialStock; + } + + public void setInitialStock(BigDecimal initialStock) { + this.initialStock = initialStock; + } + + public BigDecimal getCurrentUnitPrice() { + return currentUnitPrice; + } + + public void setCurrentUnitPrice(BigDecimal currentUnitPrice) { + this.currentUnitPrice = currentUnitPrice; + } + + public BigDecimal getCurrentStock() { + return currentStock; + } + + public void setCurrentStock(BigDecimal currentStock) { + this.currentStock = currentStock; + } + + public BigDecimal getCurrentStockPrice() { + return currentStockPrice; + } + + public void setCurrentStockPrice(BigDecimal currentStockPrice) { + this.currentStockPrice = currentStockPrice; + } + + public BigDecimal getCurrentStockMovePrice() { + return currentStockMovePrice; + } + + public void setCurrentStockMovePrice(BigDecimal currentStockMovePrice) { + this.currentStockMovePrice = currentStockMovePrice; + } + + public BigDecimal getCurrentWeight() { + return currentWeight; + } + + public void setCurrentWeight(BigDecimal currentWeight) { + this.currentWeight = currentWeight; + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public String getBigUnitStock() { + return bigUnitStock; + } + + public void setBigUnitStock(String bigUnitStock) { + this.bigUnitStock = bigUnitStock; + } + + public String getImgSmall() { + return imgSmall; + } + + public void setImgSmall(String imgSmall) { + this.imgSmall = imgSmall; + } + + public String getImgLarge() { + return imgLarge; + } + + public void setImgLarge(String imgLarge) { + this.imgLarge = imgLarge; + } + + public String getBigUnitInitialStock() { + return bigUnitInitialStock; + } + + public void setBigUnitInitialStock(String bigUnitInitialStock) { + this.bigUnitInitialStock = bigUnitInitialStock; + } + + public BigDecimal getTaxRate() { + return taxRate; + } + + public void setTaxRate(BigDecimal taxRate) { + this.taxRate = taxRate; + } + + public BigDecimal getTaxLastMoney() { + return taxLastMoney; + } + + public void setTaxLastMoney(BigDecimal taxLastMoney) { + this.taxLastMoney = taxLastMoney; + } + + public BigDecimal getTaxMoney() { + return taxMoney; + } + + public void setTaxMoney(BigDecimal taxMoney) { + this.taxMoney = taxMoney; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialWithInitStock.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialWithInitStock.java new file mode 100644 index 0000000..741e481 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MaterialWithInitStock.java @@ -0,0 +1,29 @@ +package com.reallin.smt.datasource.entities; + +import com.alibaba.fastjson.JSONObject; + +import java.math.BigDecimal; +import java.util.Map; + +public class MaterialWithInitStock extends Material { + + private Map stockMap; + + private JSONObject materialExObj; + + public Map getStockMap() { + return stockMap; + } + + public void setStockMap(Map stockMap) { + this.stockMap = stockMap; + } + + public JSONObject getMaterialExObj() { + return materialExObj; + } + + public void setMaterialExObj(JSONObject materialExObj) { + this.materialExObj = materialExObj; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Msg.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Msg.java new file mode 100644 index 0000000..5ac5af5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Msg.java @@ -0,0 +1,95 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +public class Msg { + private Long id; + + private String msgTitle; + + private String msgContent; + + private Date createTime; + + private String type; + + private Long userId; + + private String status; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getMsgTitle() { + return msgTitle; + } + + public void setMsgTitle(String msgTitle) { + this.msgTitle = msgTitle == null ? null : msgTitle.trim(); + } + + public String getMsgContent() { + return msgContent; + } + + public void setMsgContent(String msgContent) { + this.msgContent = msgContent == null ? null : msgContent.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MsgEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MsgEx.java new file mode 100644 index 0000000..69acd91 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MsgEx.java @@ -0,0 +1,14 @@ +package com.reallin.smt.datasource.entities; + +public class MsgEx extends Msg{ + + private String createTimeStr; + + public String getCreateTimeStr() { + return createTimeStr; + } + + public void setCreateTimeStr(String createTimeStr) { + this.createTimeStr = createTimeStr; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MsgExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MsgExample.java new file mode 100644 index 0000000..80e2b45 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/MsgExample.java @@ -0,0 +1,790 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class MsgExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public MsgExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andMsgTitleIsNull() { + addCriterion("msg_title is null"); + return (Criteria) this; + } + + public Criteria andMsgTitleIsNotNull() { + addCriterion("msg_title is not null"); + return (Criteria) this; + } + + public Criteria andMsgTitleEqualTo(String value) { + addCriterion("msg_title =", value, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleNotEqualTo(String value) { + addCriterion("msg_title <>", value, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleGreaterThan(String value) { + addCriterion("msg_title >", value, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleGreaterThanOrEqualTo(String value) { + addCriterion("msg_title >=", value, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleLessThan(String value) { + addCriterion("msg_title <", value, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleLessThanOrEqualTo(String value) { + addCriterion("msg_title <=", value, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleLike(String value) { + addCriterion("msg_title like", value, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleNotLike(String value) { + addCriterion("msg_title not like", value, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleIn(List values) { + addCriterion("msg_title in", values, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleNotIn(List values) { + addCriterion("msg_title not in", values, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleBetween(String value1, String value2) { + addCriterion("msg_title between", value1, value2, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgTitleNotBetween(String value1, String value2) { + addCriterion("msg_title not between", value1, value2, "msgTitle"); + return (Criteria) this; + } + + public Criteria andMsgContentIsNull() { + addCriterion("msg_content is null"); + return (Criteria) this; + } + + public Criteria andMsgContentIsNotNull() { + addCriterion("msg_content is not null"); + return (Criteria) this; + } + + public Criteria andMsgContentEqualTo(String value) { + addCriterion("msg_content =", value, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentNotEqualTo(String value) { + addCriterion("msg_content <>", value, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentGreaterThan(String value) { + addCriterion("msg_content >", value, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentGreaterThanOrEqualTo(String value) { + addCriterion("msg_content >=", value, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentLessThan(String value) { + addCriterion("msg_content <", value, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentLessThanOrEqualTo(String value) { + addCriterion("msg_content <=", value, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentLike(String value) { + addCriterion("msg_content like", value, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentNotLike(String value) { + addCriterion("msg_content not like", value, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentIn(List values) { + addCriterion("msg_content in", values, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentNotIn(List values) { + addCriterion("msg_content not in", values, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentBetween(String value1, String value2) { + addCriterion("msg_content between", value1, value2, "msgContent"); + return (Criteria) this; + } + + public Criteria andMsgContentNotBetween(String value1, String value2) { + addCriterion("msg_content not between", value1, value2, "msgContent"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andUserIdIsNull() { + addCriterion("user_id is null"); + return (Criteria) this; + } + + public Criteria andUserIdIsNotNull() { + addCriterion("user_id is not null"); + return (Criteria) this; + } + + public Criteria andUserIdEqualTo(Long value) { + addCriterion("user_id =", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotEqualTo(Long value) { + addCriterion("user_id <>", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThan(Long value) { + addCriterion("user_id >", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThanOrEqualTo(Long value) { + addCriterion("user_id >=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThan(Long value) { + addCriterion("user_id <", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThanOrEqualTo(Long value) { + addCriterion("user_id <=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdIn(List values) { + addCriterion("user_id in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotIn(List values) { + addCriterion("user_id not in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdBetween(Long value1, Long value2) { + addCriterion("user_id between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotBetween(Long value1, Long value2) { + addCriterion("user_id not between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(String value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(String value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(String value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(String value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(String value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(String value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLike(String value) { + addCriterion("status like", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotLike(String value) { + addCriterion("status not like", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(String value1, String value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(String value1, String value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_Flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_Flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_Flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_Flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_Flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_Flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_Flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_Flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_Flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_Flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_Flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_Flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_Flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_Flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRel.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRel.java new file mode 100644 index 0000000..ccdb724 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRel.java @@ -0,0 +1,325 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +public class OrgaUserRel { + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.id + * + * @mbggenerated + */ + private Long id; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.orga_id + * + * @mbggenerated + */ + private Long orgaId; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.user_id + * + * @mbggenerated + */ + private Long userId; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.user_blng_orga_dspl_seq + * + * @mbggenerated + */ + private String userBlngOrgaDsplSeq; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.delete_flag + * + * @mbggenerated + */ + private String deleteFlag; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.create_time + * + * @mbggenerated + */ + private Date createTime; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.creator + * + * @mbggenerated + */ + private Long creator; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.update_time + * + * @mbggenerated + */ + private Date updateTime; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.updater + * + * @mbggenerated + */ + private Long updater; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database column tbl_orga_user_rel.tenant_id + * + * @mbggenerated + */ + private Long tenantId; + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.id + * + * @return the value of tbl_orga_user_rel.id + * + * @mbggenerated + */ + public Long getId() { + return id; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.id + * + * @param id the value for tbl_orga_user_rel.id + * + * @mbggenerated + */ + public void setId(Long id) { + this.id = id; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.orga_id + * + * @return the value of tbl_orga_user_rel.orga_id + * + * @mbggenerated + */ + public Long getOrgaId() { + return orgaId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.orga_id + * + * @param orgaId the value for tbl_orga_user_rel.orga_id + * + * @mbggenerated + */ + public void setOrgaId(Long orgaId) { + this.orgaId = orgaId; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.user_id + * + * @return the value of tbl_orga_user_rel.user_id + * + * @mbggenerated + */ + public Long getUserId() { + return userId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.user_id + * + * @param userId the value for tbl_orga_user_rel.user_id + * + * @mbggenerated + */ + public void setUserId(Long userId) { + this.userId = userId; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.user_blng_orga_dspl_seq + * + * @return the value of tbl_orga_user_rel.user_blng_orga_dspl_seq + * + * @mbggenerated + */ + public String getUserBlngOrgaDsplSeq() { + return userBlngOrgaDsplSeq; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.user_blng_orga_dspl_seq + * + * @param userBlngOrgaDsplSeq the value for tbl_orga_user_rel.user_blng_orga_dspl_seq + * + * @mbggenerated + */ + public void setUserBlngOrgaDsplSeq(String userBlngOrgaDsplSeq) { + this.userBlngOrgaDsplSeq = userBlngOrgaDsplSeq == null ? null : userBlngOrgaDsplSeq.trim(); + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.delete_flag + * + * @return the value of tbl_orga_user_rel.delete_flag + * + * @mbggenerated + */ + public String getDeleteFlag() { + return deleteFlag; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.delete_flag + * + * @param deleteFlag the value for tbl_orga_user_rel.delete_flag + * + * @mbggenerated + */ + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.create_time + * + * @return the value of tbl_orga_user_rel.create_time + * + * @mbggenerated + */ + public Date getCreateTime() { + return createTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.create_time + * + * @param createTime the value for tbl_orga_user_rel.create_time + * + * @mbggenerated + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.creator + * + * @return the value of tbl_orga_user_rel.creator + * + * @mbggenerated + */ + public Long getCreator() { + return creator; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.creator + * + * @param creator the value for tbl_orga_user_rel.creator + * + * @mbggenerated + */ + public void setCreator(Long creator) { + this.creator = creator; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.update_time + * + * @return the value of tbl_orga_user_rel.update_time + * + * @mbggenerated + */ + public Date getUpdateTime() { + return updateTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.update_time + * + * @param updateTime the value for tbl_orga_user_rel.update_time + * + * @mbggenerated + */ + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.updater + * + * @return the value of tbl_orga_user_rel.updater + * + * @mbggenerated + */ + public Long getUpdater() { + return updater; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.updater + * + * @param updater the value for tbl_orga_user_rel.updater + * + * @mbggenerated + */ + public void setUpdater(Long updater) { + this.updater = updater; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column tbl_orga_user_rel.tenant_id + * + * @return the value of tbl_orga_user_rel.tenant_id + * + * @mbggenerated + */ + public Long getTenantId() { + return tenantId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column tbl_orga_user_rel.tenant_id + * + * @param tenantId the value for tbl_orga_user_rel.tenant_id + * + * @mbggenerated + */ + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRelEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRelEx.java new file mode 100644 index 0000000..02be55f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRelEx.java @@ -0,0 +1,10 @@ +package com.reallin.smt.datasource.entities; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/3/12 10:09 + */ +public class OrgaUserRelEx extends OrgaUserRel { +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRelExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRelExample.java new file mode 100644 index 0000000..8079835 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrgaUserRelExample.java @@ -0,0 +1,923 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class OrgaUserRelExample { + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + protected String orderByClause; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + protected boolean distinct; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + protected List oredCriteria; + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public OrgaUserRelExample() { + oredCriteria = new ArrayList(); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public String getOrderByClause() { + return orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public boolean isDistinct() { + return distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public List getOredCriteria() { + return oredCriteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andOrgaIdIsNull() { + addCriterion("orga_id is null"); + return (Criteria) this; + } + + public Criteria andOrgaIdIsNotNull() { + addCriterion("orga_id is not null"); + return (Criteria) this; + } + + public Criteria andOrgaIdEqualTo(Long value) { + addCriterion("orga_id =", value, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdNotEqualTo(Long value) { + addCriterion("orga_id <>", value, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdGreaterThan(Long value) { + addCriterion("orga_id >", value, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdGreaterThanOrEqualTo(Long value) { + addCriterion("orga_id >=", value, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdLessThan(Long value) { + addCriterion("orga_id <", value, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdLessThanOrEqualTo(Long value) { + addCriterion("orga_id <=", value, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdIn(List values) { + addCriterion("orga_id in", values, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdNotIn(List values) { + addCriterion("orga_id not in", values, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdBetween(Long value1, Long value2) { + addCriterion("orga_id between", value1, value2, "orgaId"); + return (Criteria) this; + } + + public Criteria andOrgaIdNotBetween(Long value1, Long value2) { + addCriterion("orga_id not between", value1, value2, "orgaId"); + return (Criteria) this; + } + + public Criteria andUserIdIsNull() { + addCriterion("user_id is null"); + return (Criteria) this; + } + + public Criteria andUserIdIsNotNull() { + addCriterion("user_id is not null"); + return (Criteria) this; + } + + public Criteria andUserIdEqualTo(Long value) { + addCriterion("user_id =", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotEqualTo(Long value) { + addCriterion("user_id <>", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThan(Long value) { + addCriterion("user_id >", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThanOrEqualTo(Long value) { + addCriterion("user_id >=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThan(Long value) { + addCriterion("user_id <", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThanOrEqualTo(Long value) { + addCriterion("user_id <=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdIn(List values) { + addCriterion("user_id in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotIn(List values) { + addCriterion("user_id not in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdBetween(Long value1, Long value2) { + addCriterion("user_id between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotBetween(Long value1, Long value2) { + addCriterion("user_id not between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqIsNull() { + addCriterion("user_blng_orga_dspl_seq is null"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqIsNotNull() { + addCriterion("user_blng_orga_dspl_seq is not null"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqEqualTo(String value) { + addCriterion("user_blng_orga_dspl_seq =", value, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqNotEqualTo(String value) { + addCriterion("user_blng_orga_dspl_seq <>", value, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqGreaterThan(String value) { + addCriterion("user_blng_orga_dspl_seq >", value, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqGreaterThanOrEqualTo(String value) { + addCriterion("user_blng_orga_dspl_seq >=", value, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqLessThan(String value) { + addCriterion("user_blng_orga_dspl_seq <", value, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqLessThanOrEqualTo(String value) { + addCriterion("user_blng_orga_dspl_seq <=", value, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqLike(String value) { + addCriterion("user_blng_orga_dspl_seq like", value, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqNotLike(String value) { + addCriterion("user_blng_orga_dspl_seq not like", value, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqIn(List values) { + addCriterion("user_blng_orga_dspl_seq in", values, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqNotIn(List values) { + addCriterion("user_blng_orga_dspl_seq not in", values, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqBetween(String value1, String value2) { + addCriterion("user_blng_orga_dspl_seq between", value1, value2, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andUserBlngOrgaDsplSeqNotBetween(String value1, String value2) { + addCriterion("user_blng_orga_dspl_seq not between", value1, value2, "userBlngOrgaDsplSeq"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreatorIsNull() { + addCriterion("creator is null"); + return (Criteria) this; + } + + public Criteria andCreatorIsNotNull() { + addCriterion("creator is not null"); + return (Criteria) this; + } + + public Criteria andCreatorEqualTo(Long value) { + addCriterion("creator =", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotEqualTo(Long value) { + addCriterion("creator <>", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThan(Long value) { + addCriterion("creator >", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThanOrEqualTo(Long value) { + addCriterion("creator >=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThan(Long value) { + addCriterion("creator <", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThanOrEqualTo(Long value) { + addCriterion("creator <=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorIn(List values) { + addCriterion("creator in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotIn(List values) { + addCriterion("creator not in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorBetween(Long value1, Long value2) { + addCriterion("creator between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotBetween(Long value1, Long value2) { + addCriterion("creator not between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Date value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Date value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Date value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Date value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Date value1, Date value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdaterIsNull() { + addCriterion("updater is null"); + return (Criteria) this; + } + + public Criteria andUpdaterIsNotNull() { + addCriterion("updater is not null"); + return (Criteria) this; + } + + public Criteria andUpdaterEqualTo(Long value) { + addCriterion("updater =", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterNotEqualTo(Long value) { + addCriterion("updater <>", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterGreaterThan(Long value) { + addCriterion("updater >", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterGreaterThanOrEqualTo(Long value) { + addCriterion("updater >=", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterLessThan(Long value) { + addCriterion("updater <", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterLessThanOrEqualTo(Long value) { + addCriterion("updater <=", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterIn(List values) { + addCriterion("updater in", values, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterNotIn(List values) { + addCriterion("updater not in", values, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterBetween(Long value1, Long value2) { + addCriterion("updater between", value1, value2, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterNotBetween(Long value1, Long value2) { + addCriterion("updater not between", value1, value2, "updater"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated do_not_delete_during_merge + */ + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Organization.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Organization.java new file mode 100644 index 0000000..ccef5d5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Organization.java @@ -0,0 +1,105 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +public class Organization { + private Long id; + + private String orgNo; + + private String orgAbr; + + private Long parentId; + + private String sort; + + private String remark; + + private Date createTime; + + private Date updateTime; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getOrgNo() { + return orgNo; + } + + public void setOrgNo(String orgNo) { + this.orgNo = orgNo == null ? null : orgNo.trim(); + } + + public String getOrgAbr() { + return orgAbr; + } + + public void setOrgAbr(String orgAbr) { + this.orgAbr = orgAbr == null ? null : orgAbr.trim(); + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrganizationExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrganizationExample.java new file mode 100644 index 0000000..8c29f8e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/OrganizationExample.java @@ -0,0 +1,850 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class OrganizationExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public OrganizationExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andOrgNoIsNull() { + addCriterion("org_no is null"); + return (Criteria) this; + } + + public Criteria andOrgNoIsNotNull() { + addCriterion("org_no is not null"); + return (Criteria) this; + } + + public Criteria andOrgNoEqualTo(String value) { + addCriterion("org_no =", value, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoNotEqualTo(String value) { + addCriterion("org_no <>", value, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoGreaterThan(String value) { + addCriterion("org_no >", value, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoGreaterThanOrEqualTo(String value) { + addCriterion("org_no >=", value, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoLessThan(String value) { + addCriterion("org_no <", value, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoLessThanOrEqualTo(String value) { + addCriterion("org_no <=", value, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoLike(String value) { + addCriterion("org_no like", value, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoNotLike(String value) { + addCriterion("org_no not like", value, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoIn(List values) { + addCriterion("org_no in", values, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoNotIn(List values) { + addCriterion("org_no not in", values, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoBetween(String value1, String value2) { + addCriterion("org_no between", value1, value2, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgNoNotBetween(String value1, String value2) { + addCriterion("org_no not between", value1, value2, "orgNo"); + return (Criteria) this; + } + + public Criteria andOrgAbrIsNull() { + addCriterion("org_abr is null"); + return (Criteria) this; + } + + public Criteria andOrgAbrIsNotNull() { + addCriterion("org_abr is not null"); + return (Criteria) this; + } + + public Criteria andOrgAbrEqualTo(String value) { + addCriterion("org_abr =", value, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrNotEqualTo(String value) { + addCriterion("org_abr <>", value, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrGreaterThan(String value) { + addCriterion("org_abr >", value, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrGreaterThanOrEqualTo(String value) { + addCriterion("org_abr >=", value, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrLessThan(String value) { + addCriterion("org_abr <", value, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrLessThanOrEqualTo(String value) { + addCriterion("org_abr <=", value, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrLike(String value) { + addCriterion("org_abr like", value, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrNotLike(String value) { + addCriterion("org_abr not like", value, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrIn(List values) { + addCriterion("org_abr in", values, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrNotIn(List values) { + addCriterion("org_abr not in", values, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrBetween(String value1, String value2) { + addCriterion("org_abr between", value1, value2, "orgAbr"); + return (Criteria) this; + } + + public Criteria andOrgAbrNotBetween(String value1, String value2) { + addCriterion("org_abr not between", value1, value2, "orgAbr"); + return (Criteria) this; + } + + public Criteria andParentIdIsNull() { + addCriterion("parent_id is null"); + return (Criteria) this; + } + + public Criteria andParentIdIsNotNull() { + addCriterion("parent_id is not null"); + return (Criteria) this; + } + + public Criteria andParentIdEqualTo(Long value) { + addCriterion("parent_id =", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotEqualTo(Long value) { + addCriterion("parent_id <>", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThan(Long value) { + addCriterion("parent_id >", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThanOrEqualTo(Long value) { + addCriterion("parent_id >=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThan(Long value) { + addCriterion("parent_id <", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThanOrEqualTo(Long value) { + addCriterion("parent_id <=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdIn(List values) { + addCriterion("parent_id in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotIn(List values) { + addCriterion("parent_id not in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdBetween(Long value1, Long value2) { + addCriterion("parent_id between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotBetween(Long value1, Long value2) { + addCriterion("parent_id not between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Date value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Date value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Date value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Date value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Date value1, Date value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PackBom.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PackBom.java new file mode 100644 index 0000000..c3f58b3 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PackBom.java @@ -0,0 +1,179 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 生产方案主表 + */ +public class PackBom { + private Long id; + + private String bomNumber; + + private String bomName; + + private Long productMaterialId; + + private Long productMaterialExtendId; + + private String productSku; + + private Long outputMaterialId; + + private Long outputMaterialExtendId; + + private String outputSku; + + private BigDecimal outputNumber; + + private String version; + + private Boolean enabled; + + private String remark; + + private Date createTime; + + private Long creator; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getBomNumber() { + return bomNumber; + } + + public void setBomNumber(String bomNumber) { + this.bomNumber = bomNumber == null ? null : bomNumber.trim(); + } + + public String getBomName() { + return bomName; + } + + public void setBomName(String bomName) { + this.bomName = bomName == null ? null : bomName.trim(); + } + + public Long getProductMaterialId() { + return productMaterialId; + } + + public void setProductMaterialId(Long productMaterialId) { + this.productMaterialId = productMaterialId; + } + + public Long getProductMaterialExtendId() { + return productMaterialExtendId; + } + + public void setProductMaterialExtendId(Long productMaterialExtendId) { + this.productMaterialExtendId = productMaterialExtendId; + } + + public String getProductSku() { + return productSku; + } + + public void setProductSku(String productSku) { + this.productSku = productSku == null ? null : productSku.trim(); + } + + public Long getOutputMaterialId() { + return outputMaterialId; + } + + public void setOutputMaterialId(Long outputMaterialId) { + this.outputMaterialId = outputMaterialId; + } + + public Long getOutputMaterialExtendId() { + return outputMaterialExtendId; + } + + public void setOutputMaterialExtendId(Long outputMaterialExtendId) { + this.outputMaterialExtendId = outputMaterialExtendId; + } + + public String getOutputSku() { + return outputSku; + } + + public void setOutputSku(String outputSku) { + this.outputSku = outputSku == null ? null : outputSku.trim(); + } + + public BigDecimal getOutputNumber() { + return outputNumber; + } + + public void setOutputNumber(BigDecimal outputNumber) { + this.outputNumber = outputNumber; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version == null ? null : version.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PackBomItem.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PackBomItem.java new file mode 100644 index 0000000..eefa471 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PackBomItem.java @@ -0,0 +1,108 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +/** + * 生产方案组成物料明细表 + */ +public class PackBomItem { + private Long id; + + private Long bomId; + + private Long materialId; + + private Long materialExtendId; + + private String materialSku; + + private String unit; + + private BigDecimal quantity; + + private String remark; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getBomId() { + return bomId; + } + + public void setBomId(Long bomId) { + this.bomId = bomId; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getMaterialExtendId() { + return materialExtendId; + } + + public void setMaterialExtendId(Long materialExtendId) { + this.materialExtendId = materialExtendId; + } + + public String getMaterialSku() { + return materialSku; + } + + public void setMaterialSku(String materialSku) { + this.materialSku = materialSku == null ? null : materialSku.trim(); + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit == null ? null : unit.trim(); + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Person.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Person.java new file mode 100644 index 0000000..562352a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Person.java @@ -0,0 +1,73 @@ +package com.reallin.smt.datasource.entities; + +public class Person { + private Long id; + + private String type; + + private String name; + + private Boolean enabled; + + private String sort; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PersonExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PersonExample.java new file mode 100644 index 0000000..82b0f89 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PersonExample.java @@ -0,0 +1,659 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class PersonExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public PersonExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PlatformConfig.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PlatformConfig.java new file mode 100644 index 0000000..11f7452 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PlatformConfig.java @@ -0,0 +1,43 @@ +package com.reallin.smt.datasource.entities; + +public class PlatformConfig { + private Long id; + + private String platformKey; + + private String platformKeyInfo; + + private String platformValue; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getPlatformKey() { + return platformKey; + } + + public void setPlatformKey(String platformKey) { + this.platformKey = platformKey == null ? null : platformKey.trim(); + } + + public String getPlatformKeyInfo() { + return platformKeyInfo; + } + + public void setPlatformKeyInfo(String platformKeyInfo) { + this.platformKeyInfo = platformKeyInfo == null ? null : platformKeyInfo.trim(); + } + + public String getPlatformValue() { + return platformValue; + } + + public void setPlatformValue(String platformValue) { + this.platformValue = platformValue == null ? null : platformValue.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PlatformConfigExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PlatformConfigExample.java new file mode 100644 index 0000000..81e8897 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/PlatformConfigExample.java @@ -0,0 +1,469 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class PlatformConfigExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public PlatformConfigExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andPlatformKeyIsNull() { + addCriterion("platform_key is null"); + return (Criteria) this; + } + + public Criteria andPlatformKeyIsNotNull() { + addCriterion("platform_key is not null"); + return (Criteria) this; + } + + public Criteria andPlatformKeyEqualTo(String value) { + addCriterion("platform_key =", value, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyNotEqualTo(String value) { + addCriterion("platform_key <>", value, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyGreaterThan(String value) { + addCriterion("platform_key >", value, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyGreaterThanOrEqualTo(String value) { + addCriterion("platform_key >=", value, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyLessThan(String value) { + addCriterion("platform_key <", value, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyLessThanOrEqualTo(String value) { + addCriterion("platform_key <=", value, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyLike(String value) { + addCriterion("platform_key like", value, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyNotLike(String value) { + addCriterion("platform_key not like", value, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyIn(List values) { + addCriterion("platform_key in", values, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyNotIn(List values) { + addCriterion("platform_key not in", values, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyBetween(String value1, String value2) { + addCriterion("platform_key between", value1, value2, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyNotBetween(String value1, String value2) { + addCriterion("platform_key not between", value1, value2, "platformKey"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoIsNull() { + addCriterion("platform_key_info is null"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoIsNotNull() { + addCriterion("platform_key_info is not null"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoEqualTo(String value) { + addCriterion("platform_key_info =", value, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoNotEqualTo(String value) { + addCriterion("platform_key_info <>", value, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoGreaterThan(String value) { + addCriterion("platform_key_info >", value, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoGreaterThanOrEqualTo(String value) { + addCriterion("platform_key_info >=", value, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoLessThan(String value) { + addCriterion("platform_key_info <", value, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoLessThanOrEqualTo(String value) { + addCriterion("platform_key_info <=", value, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoLike(String value) { + addCriterion("platform_key_info like", value, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoNotLike(String value) { + addCriterion("platform_key_info not like", value, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoIn(List values) { + addCriterion("platform_key_info in", values, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoNotIn(List values) { + addCriterion("platform_key_info not in", values, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoBetween(String value1, String value2) { + addCriterion("platform_key_info between", value1, value2, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformKeyInfoNotBetween(String value1, String value2) { + addCriterion("platform_key_info not between", value1, value2, "platformKeyInfo"); + return (Criteria) this; + } + + public Criteria andPlatformValueIsNull() { + addCriterion("platform_value is null"); + return (Criteria) this; + } + + public Criteria andPlatformValueIsNotNull() { + addCriterion("platform_value is not null"); + return (Criteria) this; + } + + public Criteria andPlatformValueEqualTo(String value) { + addCriterion("platform_value =", value, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueNotEqualTo(String value) { + addCriterion("platform_value <>", value, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueGreaterThan(String value) { + addCriterion("platform_value >", value, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueGreaterThanOrEqualTo(String value) { + addCriterion("platform_value >=", value, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueLessThan(String value) { + addCriterion("platform_value <", value, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueLessThanOrEqualTo(String value) { + addCriterion("platform_value <=", value, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueLike(String value) { + addCriterion("platform_value like", value, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueNotLike(String value) { + addCriterion("platform_value not like", value, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueIn(List values) { + addCriterion("platform_value in", values, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueNotIn(List values) { + addCriterion("platform_value not in", values, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueBetween(String value1, String value2) { + addCriterion("platform_value between", value1, value2, "platformValue"); + return (Criteria) this; + } + + public Criteria andPlatformValueNotBetween(String value1, String value2) { + addCriterion("platform_value not between", value1, value2, "platformValue"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionOrder.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionOrder.java new file mode 100644 index 0000000..dbd34a6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionOrder.java @@ -0,0 +1,319 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 生产工单主表 + */ +public class ProductionOrder { + private Long id; + + private String orderNumber; + + private String sourceType; + + private Long sourceId; + + private String sourceNumber; + + private Long productMaterialId; + + private Long productMaterialExtendId; + + private String productSku; + + private Long bomId; + + private Long outputMaterialId; + + private Long outputMaterialExtendId; + + private String outputSku; + + private BigDecimal orderQuantity; + + private BigDecimal outputQuantity; + + private BigDecimal finishedQuantity; + + private Date planStartDate; + + private Date planEndDate; + + private Date actualStartDate; + + private Date actualEndDate; + + private String priority; + + private String status; + + private Long auditBy; + + private Date auditTime; + + private Long releaseBy; + + private Date releaseTime; + + private String closeReason; + + private String remark; + + private Date createTime; + + private Long creator; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber == null ? null : orderNumber.trim(); + } + + public String getSourceType() { + return sourceType; + } + + public void setSourceType(String sourceType) { + this.sourceType = sourceType == null ? null : sourceType.trim(); + } + + public Long getSourceId() { + return sourceId; + } + + public void setSourceId(Long sourceId) { + this.sourceId = sourceId; + } + + public String getSourceNumber() { + return sourceNumber; + } + + public void setSourceNumber(String sourceNumber) { + this.sourceNumber = sourceNumber == null ? null : sourceNumber.trim(); + } + + public Long getProductMaterialId() { + return productMaterialId; + } + + public void setProductMaterialId(Long productMaterialId) { + this.productMaterialId = productMaterialId; + } + + public Long getProductMaterialExtendId() { + return productMaterialExtendId; + } + + public void setProductMaterialExtendId(Long productMaterialExtendId) { + this.productMaterialExtendId = productMaterialExtendId; + } + + public String getProductSku() { + return productSku; + } + + public void setProductSku(String productSku) { + this.productSku = productSku == null ? null : productSku.trim(); + } + + public Long getBomId() { + return bomId; + } + + public void setBomId(Long bomId) { + this.bomId = bomId; + } + + public Long getOutputMaterialId() { + return outputMaterialId; + } + + public void setOutputMaterialId(Long outputMaterialId) { + this.outputMaterialId = outputMaterialId; + } + + public Long getOutputMaterialExtendId() { + return outputMaterialExtendId; + } + + public void setOutputMaterialExtendId(Long outputMaterialExtendId) { + this.outputMaterialExtendId = outputMaterialExtendId; + } + + public String getOutputSku() { + return outputSku; + } + + public void setOutputSku(String outputSku) { + this.outputSku = outputSku == null ? null : outputSku.trim(); + } + + public BigDecimal getOrderQuantity() { + return orderQuantity; + } + + public void setOrderQuantity(BigDecimal orderQuantity) { + this.orderQuantity = orderQuantity; + } + + public BigDecimal getOutputQuantity() { + return outputQuantity; + } + + public void setOutputQuantity(BigDecimal outputQuantity) { + this.outputQuantity = outputQuantity; + } + + public BigDecimal getFinishedQuantity() { + return finishedQuantity; + } + + public void setFinishedQuantity(BigDecimal finishedQuantity) { + this.finishedQuantity = finishedQuantity; + } + + public Date getPlanStartDate() { + return planStartDate; + } + + public void setPlanStartDate(Date planStartDate) { + this.planStartDate = planStartDate; + } + + public Date getPlanEndDate() { + return planEndDate; + } + + public void setPlanEndDate(Date planEndDate) { + this.planEndDate = planEndDate; + } + + public Date getActualStartDate() { + return actualStartDate; + } + + public void setActualStartDate(Date actualStartDate) { + this.actualStartDate = actualStartDate; + } + + public Date getActualEndDate() { + return actualEndDate; + } + + public void setActualEndDate(Date actualEndDate) { + this.actualEndDate = actualEndDate; + } + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority == null ? null : priority.trim(); + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public Long getAuditBy() { + return auditBy; + } + + public void setAuditBy(Long auditBy) { + this.auditBy = auditBy; + } + + public Date getAuditTime() { + return auditTime; + } + + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; + } + + public Long getReleaseBy() { + return releaseBy; + } + + public void setReleaseBy(Long releaseBy) { + this.releaseBy = releaseBy; + } + + public Date getReleaseTime() { + return releaseTime; + } + + public void setReleaseTime(Date releaseTime) { + this.releaseTime = releaseTime; + } + + public String getCloseReason() { + return closeReason; + } + + public void setCloseReason(String closeReason) { + this.closeReason = closeReason == null ? null : closeReason.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionOrderLog.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionOrderLog.java new file mode 100644 index 0000000..e85da2c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionOrderLog.java @@ -0,0 +1,99 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +/** + * 工单操作日志表 + */ +public class ProductionOrderLog { + private Long id; + + private Long orderId; + + private String orderNumber; + + private String operationType; + + private String operationDesc; + + private Long operator; + + private Date createTime; + + private Long tenantId; + + /** 操作人姓名(非数据库字段,运行时填充) */ + private transient String operatorName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getOrderId() { + return orderId; + } + + public void setOrderId(Long orderId) { + this.orderId = orderId; + } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber == null ? null : orderNumber.trim(); + } + + public String getOperationType() { + return operationType; + } + + public void setOperationType(String operationType) { + this.operationType = operationType == null ? null : operationType.trim(); + } + + public String getOperationDesc() { + return operationDesc; + } + + public void setOperationDesc(String operationDesc) { + this.operationDesc = operationDesc == null ? null : operationDesc.trim(); + } + + public Long getOperator() { + return operator; + } + + public void setOperator(Long operator) { + this.operator = operator; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getOperatorName() { + return operatorName; + } + + public void setOperatorName(String operatorName) { + this.operatorName = operatorName; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionReport.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionReport.java new file mode 100644 index 0000000..aa960c6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionReport.java @@ -0,0 +1,199 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 完工报告主表 + */ +public class ProductionReport { + private Long id; + + private String reportNumber; + + private Long orderId; + + private String orderNumber; + + private BigDecimal finishedQuantity; + + private BigDecimal defectQuantity; + + private String qualifiedFlag; + + private Long depotId; + + private String inNumber; + + private String auditStatus; + + private Long auditBy; + + private Date auditTime; + + private Long reportBy; + + private Date reportDate; + + private String remark; + + private Date createTime; + + private Long creator; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getReportNumber() { + return reportNumber; + } + + public void setReportNumber(String reportNumber) { + this.reportNumber = reportNumber == null ? null : reportNumber.trim(); + } + + public Long getOrderId() { + return orderId; + } + + public void setOrderId(Long orderId) { + this.orderId = orderId; + } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber == null ? null : orderNumber.trim(); + } + + public BigDecimal getFinishedQuantity() { + return finishedQuantity; + } + + public void setFinishedQuantity(BigDecimal finishedQuantity) { + this.finishedQuantity = finishedQuantity; + } + + public BigDecimal getDefectQuantity() { + return defectQuantity; + } + + public void setDefectQuantity(BigDecimal defectQuantity) { + this.defectQuantity = defectQuantity; + } + + public String getQualifiedFlag() { + return qualifiedFlag; + } + + public void setQualifiedFlag(String qualifiedFlag) { + this.qualifiedFlag = qualifiedFlag == null ? null : qualifiedFlag.trim(); + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public String getInNumber() { + return inNumber; + } + + public void setInNumber(String inNumber) { + this.inNumber = inNumber == null ? null : inNumber.trim(); + } + + public String getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(String auditStatus) { + this.auditStatus = auditStatus == null ? null : auditStatus.trim(); + } + + public Long getAuditBy() { + return auditBy; + } + + public void setAuditBy(Long auditBy) { + this.auditBy = auditBy; + } + + public Date getAuditTime() { + return auditTime; + } + + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; + } + + public Long getReportBy() { + return reportBy; + } + + public void setReportBy(Long reportBy) { + this.reportBy = reportBy; + } + + public Date getReportDate() { + return reportDate; + } + + public void setReportDate(Date reportDate) { + this.reportDate = reportDate; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionReportItem.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionReportItem.java new file mode 100644 index 0000000..238795f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionReportItem.java @@ -0,0 +1,108 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +/** + * 完工报告物料消耗明细表 + */ +public class ProductionReportItem { + private Long id; + + private Long reportId; + + private Long materialId; + + private Long materialExtendId; + + private String materialSku; + + private String unit; + + private BigDecimal consumptionQuantity; + + private String remark; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getReportId() { + return reportId; + } + + public void setReportId(Long reportId) { + this.reportId = reportId; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getMaterialExtendId() { + return materialExtendId; + } + + public void setMaterialExtendId(Long materialExtendId) { + this.materialExtendId = materialExtendId; + } + + public String getMaterialSku() { + return materialSku; + } + + public void setMaterialSku(String materialSku) { + this.materialSku = materialSku == null ? null : materialSku.trim(); + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit == null ? null : unit.trim(); + } + + public BigDecimal getConsumptionQuantity() { + return consumptionQuantity; + } + + public void setConsumptionQuantity(BigDecimal consumptionQuantity) { + this.consumptionQuantity = consumptionQuantity; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionRequisition.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionRequisition.java new file mode 100644 index 0000000..d7a3b4b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionRequisition.java @@ -0,0 +1,138 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +/** + * 生产领料单主表 + */ +public class ProductionRequisition { + private Long id; + + private String requisitionNumber; + + private Long orderId; + + private String orderNumber; + + private Long depotId; + + private String status; + + private Long confirmBy; + + private Date confirmTime; + + private String remark; + + private Date createTime; + + private Long creator; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getRequisitionNumber() { + return requisitionNumber; + } + + public void setRequisitionNumber(String requisitionNumber) { + this.requisitionNumber = requisitionNumber == null ? null : requisitionNumber.trim(); + } + + public Long getOrderId() { + return orderId; + } + + public void setOrderId(Long orderId) { + this.orderId = orderId; + } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber == null ? null : orderNumber.trim(); + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public Long getConfirmBy() { + return confirmBy; + } + + public void setConfirmBy(Long confirmBy) { + this.confirmBy = confirmBy; + } + + public Date getConfirmTime() { + return confirmTime; + } + + public void setConfirmTime(Date confirmTime) { + this.confirmTime = confirmTime; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionRequisitionItem.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionRequisitionItem.java new file mode 100644 index 0000000..2a9a8b7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/ProductionRequisitionItem.java @@ -0,0 +1,138 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +/** + * 生产领料单明细表 + */ +public class ProductionRequisitionItem { + private Long id; + + private Long requisitionId; + + private Long depotId; + + private Long materialId; + + private Long materialExtendId; + + private String materialSku; + + private String unit; + + private BigDecimal requiredQuantity; + + private BigDecimal issuedQuantity; + + private BigDecimal unitPrice; + + private String remark; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getRequisitionId() { + return requisitionId; + } + + public void setRequisitionId(Long requisitionId) { + this.requisitionId = requisitionId; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getMaterialExtendId() { + return materialExtendId; + } + + public void setMaterialExtendId(Long materialExtendId) { + this.materialExtendId = materialExtendId; + } + + public String getMaterialSku() { + return materialSku; + } + + public void setMaterialSku(String materialSku) { + this.materialSku = materialSku == null ? null : materialSku.trim(); + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit == null ? null : unit.trim(); + } + + public BigDecimal getRequiredQuantity() { + return requiredQuantity; + } + + public void setRequiredQuantity(BigDecimal requiredQuantity) { + this.requiredQuantity = requiredQuantity; + } + + public BigDecimal getIssuedQuantity() { + return issuedQuantity; + } + + public void setIssuedQuantity(BigDecimal issuedQuantity) { + this.issuedQuantity = issuedQuantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Role.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Role.java new file mode 100644 index 0000000..eb6c9da --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Role.java @@ -0,0 +1,103 @@ +package com.reallin.smt.datasource.entities; + +public class Role { + private Long id; + + private String name; + + private String type; + + private String priceLimit; + + private String value; + + private String description; + + private Boolean enabled; + + private String sort; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public String getPriceLimit() { + return priceLimit; + } + + public void setPriceLimit(String priceLimit) { + this.priceLimit = priceLimit == null ? null : priceLimit.trim(); + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value == null ? null : value.trim(); + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description == null ? null : description.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/RoleEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/RoleEx.java new file mode 100644 index 0000000..f739551 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/RoleEx.java @@ -0,0 +1,14 @@ +package com.reallin.smt.datasource.entities; + +public class RoleEx extends Role{ + + private String priceLimitStr; + + public String getPriceLimitStr() { + return priceLimitStr; + } + + public void setPriceLimitStr(String priceLimitStr) { + this.priceLimitStr = priceLimitStr; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/RoleExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/RoleExample.java new file mode 100644 index 0000000..9c15720 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/RoleExample.java @@ -0,0 +1,869 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class RoleExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public RoleExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andPriceLimitIsNull() { + addCriterion("price_limit is null"); + return (Criteria) this; + } + + public Criteria andPriceLimitIsNotNull() { + addCriterion("price_limit is not null"); + return (Criteria) this; + } + + public Criteria andPriceLimitEqualTo(String value) { + addCriterion("price_limit =", value, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitNotEqualTo(String value) { + addCriterion("price_limit <>", value, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitGreaterThan(String value) { + addCriterion("price_limit >", value, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitGreaterThanOrEqualTo(String value) { + addCriterion("price_limit >=", value, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitLessThan(String value) { + addCriterion("price_limit <", value, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitLessThanOrEqualTo(String value) { + addCriterion("price_limit <=", value, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitLike(String value) { + addCriterion("price_limit like", value, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitNotLike(String value) { + addCriterion("price_limit not like", value, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitIn(List values) { + addCriterion("price_limit in", values, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitNotIn(List values) { + addCriterion("price_limit not in", values, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitBetween(String value1, String value2) { + addCriterion("price_limit between", value1, value2, "priceLimit"); + return (Criteria) this; + } + + public Criteria andPriceLimitNotBetween(String value1, String value2) { + addCriterion("price_limit not between", value1, value2, "priceLimit"); + return (Criteria) this; + } + + public Criteria andValueIsNull() { + addCriterion("value is null"); + return (Criteria) this; + } + + public Criteria andValueIsNotNull() { + addCriterion("value is not null"); + return (Criteria) this; + } + + public Criteria andValueEqualTo(String value) { + addCriterion("value =", value, "value"); + return (Criteria) this; + } + + public Criteria andValueNotEqualTo(String value) { + addCriterion("value <>", value, "value"); + return (Criteria) this; + } + + public Criteria andValueGreaterThan(String value) { + addCriterion("value >", value, "value"); + return (Criteria) this; + } + + public Criteria andValueGreaterThanOrEqualTo(String value) { + addCriterion("value >=", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLessThan(String value) { + addCriterion("value <", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLessThanOrEqualTo(String value) { + addCriterion("value <=", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLike(String value) { + addCriterion("value like", value, "value"); + return (Criteria) this; + } + + public Criteria andValueNotLike(String value) { + addCriterion("value not like", value, "value"); + return (Criteria) this; + } + + public Criteria andValueIn(List values) { + addCriterion("value in", values, "value"); + return (Criteria) this; + } + + public Criteria andValueNotIn(List values) { + addCriterion("value not in", values, "value"); + return (Criteria) this; + } + + public Criteria andValueBetween(String value1, String value2) { + addCriterion("value between", value1, value2, "value"); + return (Criteria) this; + } + + public Criteria andValueNotBetween(String value1, String value2) { + addCriterion("value not between", value1, value2, "value"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SaleShipment.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SaleShipment.java new file mode 100644 index 0000000..5289419 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SaleShipment.java @@ -0,0 +1,270 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +/** + * 销售/零售发货通知、发货单主表 + */ +public class SaleShipment { + private Long id; + private String shipmentNumber; + private String sourceType; + private Long deliveryPlanId; + private String deliveryPlanNumber; + private Long saleOutId; + private String saleOutNumber; + private String saleOrderNumber; + private Long customerId; + private String status; + private Date plannedShipTime; + private String logisticsCompany; + private String logisticsNo; + private String receiver; + private String receiverPhone; + private String receiverAddress; + private String noticeRemark; + private Long approveBy; + private Date approveTime; + private String approveRemark; + private Long shipBy; + private Date shipTime; + private Long confirmBy; + private Date confirmTime; + private String differenceRemark; + private Date createTime; + private Long creator; + private Long tenantId; + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getShipmentNumber() { + return shipmentNumber; + } + + public void setShipmentNumber(String shipmentNumber) { + this.shipmentNumber = shipmentNumber == null ? null : shipmentNumber.trim(); + } + + public String getSourceType() { + return sourceType; + } + + public void setSourceType(String sourceType) { + this.sourceType = sourceType == null ? null : sourceType.trim(); + } + + public Long getDeliveryPlanId() { + return deliveryPlanId; + } + + public void setDeliveryPlanId(Long deliveryPlanId) { + this.deliveryPlanId = deliveryPlanId; + } + + public String getDeliveryPlanNumber() { + return deliveryPlanNumber; + } + + public void setDeliveryPlanNumber(String deliveryPlanNumber) { + this.deliveryPlanNumber = deliveryPlanNumber == null ? null : deliveryPlanNumber.trim(); + } + + public Long getSaleOutId() { + return saleOutId; + } + + public void setSaleOutId(Long saleOutId) { + this.saleOutId = saleOutId; + } + + public String getSaleOutNumber() { + return saleOutNumber; + } + + public void setSaleOutNumber(String saleOutNumber) { + this.saleOutNumber = saleOutNumber == null ? null : saleOutNumber.trim(); + } + + public String getSaleOrderNumber() { + return saleOrderNumber; + } + + public void setSaleOrderNumber(String saleOrderNumber) { + this.saleOrderNumber = saleOrderNumber == null ? null : saleOrderNumber.trim(); + } + + public Long getCustomerId() { + return customerId; + } + + public void setCustomerId(Long customerId) { + this.customerId = customerId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status == null ? null : status.trim(); + } + + public Date getPlannedShipTime() { + return plannedShipTime; + } + + public void setPlannedShipTime(Date plannedShipTime) { + this.plannedShipTime = plannedShipTime; + } + + public String getLogisticsCompany() { + return logisticsCompany; + } + + public void setLogisticsCompany(String logisticsCompany) { + this.logisticsCompany = logisticsCompany == null ? null : logisticsCompany.trim(); + } + + public String getLogisticsNo() { + return logisticsNo; + } + + public void setLogisticsNo(String logisticsNo) { + this.logisticsNo = logisticsNo == null ? null : logisticsNo.trim(); + } + + public String getReceiver() { + return receiver; + } + + public void setReceiver(String receiver) { + this.receiver = receiver == null ? null : receiver.trim(); + } + + public String getReceiverPhone() { + return receiverPhone; + } + + public void setReceiverPhone(String receiverPhone) { + this.receiverPhone = receiverPhone == null ? null : receiverPhone.trim(); + } + + public String getReceiverAddress() { + return receiverAddress; + } + + public void setReceiverAddress(String receiverAddress) { + this.receiverAddress = receiverAddress == null ? null : receiverAddress.trim(); + } + + public String getNoticeRemark() { + return noticeRemark; + } + + public void setNoticeRemark(String noticeRemark) { + this.noticeRemark = noticeRemark == null ? null : noticeRemark.trim(); + } + + public Long getApproveBy() { + return approveBy; + } + + public void setApproveBy(Long approveBy) { + this.approveBy = approveBy; + } + + public Date getApproveTime() { + return approveTime; + } + + public void setApproveTime(Date approveTime) { + this.approveTime = approveTime; + } + + public String getApproveRemark() { + return approveRemark; + } + + public void setApproveRemark(String approveRemark) { + this.approveRemark = approveRemark == null ? null : approveRemark.trim(); + } + + public Long getShipBy() { + return shipBy; + } + + public void setShipBy(Long shipBy) { + this.shipBy = shipBy; + } + + public Date getShipTime() { + return shipTime; + } + + public void setShipTime(Date shipTime) { + this.shipTime = shipTime; + } + + public Long getConfirmBy() { + return confirmBy; + } + + public void setConfirmBy(Long confirmBy) { + this.confirmBy = confirmBy; + } + + public Date getConfirmTime() { + return confirmTime; + } + + public void setConfirmTime(Date confirmTime) { + this.confirmTime = confirmTime; + } + + public String getDifferenceRemark() { + return differenceRemark; + } + + public void setDifferenceRemark(String differenceRemark) { + this.differenceRemark = differenceRemark == null ? null : differenceRemark.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SaleShipmentItem.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SaleShipmentItem.java new file mode 100644 index 0000000..277f18d --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SaleShipmentItem.java @@ -0,0 +1,198 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +/** + * 销售/零售发货明细 + */ +public class SaleShipmentItem { + private Long id; + private Long shipmentId; + private Long deliveryPlanItemId; + private Long saleOutItemId; + private Long materialId; + private Long materialExtendId; + private String barCode; + private String materialName; + private String standard; + private String model; + private String unit; + private String batchNumber; + private String snList; + private BigDecimal planQuantity; + private BigDecimal actualQuantity; + private BigDecimal shippedQuantity; + private BigDecimal differenceQuantity; + private Long depotId; + private String remark; + private Long tenantId; + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getShipmentId() { + return shipmentId; + } + + public void setShipmentId(Long shipmentId) { + this.shipmentId = shipmentId; + } + + public Long getDeliveryPlanItemId() { + return deliveryPlanItemId; + } + + public void setDeliveryPlanItemId(Long deliveryPlanItemId) { + this.deliveryPlanItemId = deliveryPlanItemId; + } + + public Long getSaleOutItemId() { + return saleOutItemId; + } + + public void setSaleOutItemId(Long saleOutItemId) { + this.saleOutItemId = saleOutItemId; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getMaterialExtendId() { + return materialExtendId; + } + + public void setMaterialExtendId(Long materialExtendId) { + this.materialExtendId = materialExtendId; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode == null ? null : barCode.trim(); + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName == null ? null : materialName.trim(); + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard == null ? null : standard.trim(); + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model == null ? null : model.trim(); + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit == null ? null : unit.trim(); + } + + public String getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(String batchNumber) { + this.batchNumber = batchNumber == null ? null : batchNumber.trim(); + } + + public String getSnList() { + return snList; + } + + public void setSnList(String snList) { + this.snList = snList == null ? null : snList.trim(); + } + + public BigDecimal getPlanQuantity() { + return planQuantity; + } + + public void setPlanQuantity(BigDecimal planQuantity) { + this.planQuantity = planQuantity; + } + + public BigDecimal getActualQuantity() { + return actualQuantity; + } + + public void setActualQuantity(BigDecimal actualQuantity) { + this.actualQuantity = actualQuantity; + } + + public BigDecimal getShippedQuantity() { + return shippedQuantity; + } + + public void setShippedQuantity(BigDecimal shippedQuantity) { + this.shippedQuantity = shippedQuantity; + } + + public BigDecimal getDifferenceQuantity() { + return differenceQuantity; + } + + public void setDifferenceQuantity(BigDecimal differenceQuantity) { + this.differenceQuantity = differenceQuantity; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumber.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumber.java new file mode 100644 index 0000000..37e81d1 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumber.java @@ -0,0 +1,156 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.Date; + +public class SerialNumber { + private Long id; + + private Long materialId; + + private Long depotId; + + private String serialNumber; + + private String isSell; + + private BigDecimal inPrice; + + private String remark; + + private String deleteFlag; + + private Date createTime; + + private Long creator; + + private Date updateTime; + + private Long updater; + + private String inBillNo; + + private String outBillNo; + + private Long tenantId; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } + + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber == null ? null : serialNumber.trim(); + } + + public String getIsSell() { + return isSell; + } + + public void setIsSell(String isSell) { + this.isSell = isSell == null ? null : isSell.trim(); + } + + public BigDecimal getInPrice() { + return inPrice; + } + + public void setInPrice(BigDecimal inPrice) { + this.inPrice = inPrice; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public Long getUpdater() { + return updater; + } + + public void setUpdater(Long updater) { + this.updater = updater; + } + + public String getInBillNo() { + return inBillNo; + } + + public void setInBillNo(String inBillNo) { + this.inBillNo = inBillNo == null ? null : inBillNo.trim(); + } + + public String getOutBillNo() { + return outBillNo; + } + + public void setOutBillNo(String outBillNo) { + this.outBillNo = outBillNo == null ? null : outBillNo.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumberEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumberEx.java new file mode 100644 index 0000000..76e267a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumberEx.java @@ -0,0 +1,110 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/1/21 17:32 + */ +public class SerialNumberEx extends SerialNumber{ + /** + * 商品条码 + * */ + private String materialCode; + /** + * 商品名称 + * */ + private String materialName; + /** + * 创建者名称 + * */ + private String creatorName; + /** + * 更新者名称 + * */ + private String updaterName; + /**单据编号*/ + private String depotHeadNumber; + /**单据类型(出库入库)*/ + private String depotHeadType; + + private String depotName; + + private String createTimeStr; + + private String updateTimeStr; + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getUpdaterName() { + return updaterName; + } + + public void setUpdaterName(String updaterName) { + this.updaterName = updaterName; + } + + public String getDepotHeadNumber() { + return depotHeadNumber; + } + + public void setDepotHeadNumber(String depotHeadNumber) { + this.depotHeadNumber = depotHeadNumber; + } + + public String getDepotHeadType() { + return depotHeadType; + } + + public void setDepotHeadType(String depotHeadType) { + this.depotHeadType = depotHeadType; + } + + public String getDepotName() { + return depotName; + } + + public void setDepotName(String depotName) { + this.depotName = depotName; + } + + public String getCreateTimeStr() { + return createTimeStr; + } + + public void setCreateTimeStr(String createTimeStr) { + this.createTimeStr = createTimeStr; + } + + public String getUpdateTimeStr() { + return updateTimeStr; + } + + public void setUpdateTimeStr(String updateTimeStr) { + this.updateTimeStr = updateTimeStr; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumberExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumberExample.java new file mode 100644 index 0000000..f393fb7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SerialNumberExample.java @@ -0,0 +1,1161 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class SerialNumberExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SerialNumberExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNull() { + addCriterion("material_id is null"); + return (Criteria) this; + } + + public Criteria andMaterialIdIsNotNull() { + addCriterion("material_id is not null"); + return (Criteria) this; + } + + public Criteria andMaterialIdEqualTo(Long value) { + addCriterion("material_id =", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotEqualTo(Long value) { + addCriterion("material_id <>", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThan(Long value) { + addCriterion("material_id >", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdGreaterThanOrEqualTo(Long value) { + addCriterion("material_id >=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThan(Long value) { + addCriterion("material_id <", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdLessThanOrEqualTo(Long value) { + addCriterion("material_id <=", value, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdIn(List values) { + addCriterion("material_id in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotIn(List values) { + addCriterion("material_id not in", values, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdBetween(Long value1, Long value2) { + addCriterion("material_id between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andMaterialIdNotBetween(Long value1, Long value2) { + addCriterion("material_id not between", value1, value2, "materialId"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNull() { + addCriterion("depot_id is null"); + return (Criteria) this; + } + + public Criteria andDepotIdIsNotNull() { + addCriterion("depot_id is not null"); + return (Criteria) this; + } + + public Criteria andDepotIdEqualTo(Long value) { + addCriterion("depot_id =", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotEqualTo(Long value) { + addCriterion("depot_id <>", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThan(Long value) { + addCriterion("depot_id >", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdGreaterThanOrEqualTo(Long value) { + addCriterion("depot_id >=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThan(Long value) { + addCriterion("depot_id <", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdLessThanOrEqualTo(Long value) { + addCriterion("depot_id <=", value, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdIn(List values) { + addCriterion("depot_id in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotIn(List values) { + addCriterion("depot_id not in", values, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdBetween(Long value1, Long value2) { + addCriterion("depot_id between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andDepotIdNotBetween(Long value1, Long value2) { + addCriterion("depot_id not between", value1, value2, "depotId"); + return (Criteria) this; + } + + public Criteria andSerialNumberIsNull() { + addCriterion("serial_number is null"); + return (Criteria) this; + } + + public Criteria andSerialNumberIsNotNull() { + addCriterion("serial_number is not null"); + return (Criteria) this; + } + + public Criteria andSerialNumberEqualTo(String value) { + addCriterion("serial_number =", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberNotEqualTo(String value) { + addCriterion("serial_number <>", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberGreaterThan(String value) { + addCriterion("serial_number >", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberGreaterThanOrEqualTo(String value) { + addCriterion("serial_number >=", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberLessThan(String value) { + addCriterion("serial_number <", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberLessThanOrEqualTo(String value) { + addCriterion("serial_number <=", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberLike(String value) { + addCriterion("serial_number like", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberNotLike(String value) { + addCriterion("serial_number not like", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberIn(List values) { + addCriterion("serial_number in", values, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberNotIn(List values) { + addCriterion("serial_number not in", values, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberBetween(String value1, String value2) { + addCriterion("serial_number between", value1, value2, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberNotBetween(String value1, String value2) { + addCriterion("serial_number not between", value1, value2, "serialNumber"); + return (Criteria) this; + } + + public Criteria andIsSellIsNull() { + addCriterion("is_sell is null"); + return (Criteria) this; + } + + public Criteria andIsSellIsNotNull() { + addCriterion("is_sell is not null"); + return (Criteria) this; + } + + public Criteria andIsSellEqualTo(String value) { + addCriterion("is_sell =", value, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellNotEqualTo(String value) { + addCriterion("is_sell <>", value, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellGreaterThan(String value) { + addCriterion("is_sell >", value, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellGreaterThanOrEqualTo(String value) { + addCriterion("is_sell >=", value, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellLessThan(String value) { + addCriterion("is_sell <", value, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellLessThanOrEqualTo(String value) { + addCriterion("is_sell <=", value, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellLike(String value) { + addCriterion("is_sell like", value, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellNotLike(String value) { + addCriterion("is_sell not like", value, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellIn(List values) { + addCriterion("is_sell in", values, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellNotIn(List values) { + addCriterion("is_sell not in", values, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellBetween(String value1, String value2) { + addCriterion("is_sell between", value1, value2, "isSell"); + return (Criteria) this; + } + + public Criteria andIsSellNotBetween(String value1, String value2) { + addCriterion("is_sell not between", value1, value2, "isSell"); + return (Criteria) this; + } + + public Criteria andInPriceIsNull() { + addCriterion("in_price is null"); + return (Criteria) this; + } + + public Criteria andInPriceIsNotNull() { + addCriterion("in_price is not null"); + return (Criteria) this; + } + + public Criteria andInPriceEqualTo(BigDecimal value) { + addCriterion("in_price =", value, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceNotEqualTo(BigDecimal value) { + addCriterion("in_price <>", value, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceGreaterThan(BigDecimal value) { + addCriterion("in_price >", value, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("in_price >=", value, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceLessThan(BigDecimal value) { + addCriterion("in_price <", value, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceLessThanOrEqualTo(BigDecimal value) { + addCriterion("in_price <=", value, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceIn(List values) { + addCriterion("in_price in", values, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceNotIn(List values) { + addCriterion("in_price not in", values, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("in_price between", value1, value2, "inPrice"); + return (Criteria) this; + } + + public Criteria andInPriceNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("in_price not between", value1, value2, "inPrice"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreatorIsNull() { + addCriterion("creator is null"); + return (Criteria) this; + } + + public Criteria andCreatorIsNotNull() { + addCriterion("creator is not null"); + return (Criteria) this; + } + + public Criteria andCreatorEqualTo(Long value) { + addCriterion("creator =", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotEqualTo(Long value) { + addCriterion("creator <>", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThan(Long value) { + addCriterion("creator >", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThanOrEqualTo(Long value) { + addCriterion("creator >=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThan(Long value) { + addCriterion("creator <", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThanOrEqualTo(Long value) { + addCriterion("creator <=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorIn(List values) { + addCriterion("creator in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotIn(List values) { + addCriterion("creator not in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorBetween(Long value1, Long value2) { + addCriterion("creator between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotBetween(Long value1, Long value2) { + addCriterion("creator not between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Date value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Date value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Date value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Date value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Date value1, Date value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdaterIsNull() { + addCriterion("updater is null"); + return (Criteria) this; + } + + public Criteria andUpdaterIsNotNull() { + addCriterion("updater is not null"); + return (Criteria) this; + } + + public Criteria andUpdaterEqualTo(Long value) { + addCriterion("updater =", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterNotEqualTo(Long value) { + addCriterion("updater <>", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterGreaterThan(Long value) { + addCriterion("updater >", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterGreaterThanOrEqualTo(Long value) { + addCriterion("updater >=", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterLessThan(Long value) { + addCriterion("updater <", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterLessThanOrEqualTo(Long value) { + addCriterion("updater <=", value, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterIn(List values) { + addCriterion("updater in", values, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterNotIn(List values) { + addCriterion("updater not in", values, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterBetween(Long value1, Long value2) { + addCriterion("updater between", value1, value2, "updater"); + return (Criteria) this; + } + + public Criteria andUpdaterNotBetween(Long value1, Long value2) { + addCriterion("updater not between", value1, value2, "updater"); + return (Criteria) this; + } + + public Criteria andInBillNoIsNull() { + addCriterion("in_bill_no is null"); + return (Criteria) this; + } + + public Criteria andInBillNoIsNotNull() { + addCriterion("in_bill_no is not null"); + return (Criteria) this; + } + + public Criteria andInBillNoEqualTo(String value) { + addCriterion("in_bill_no =", value, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoNotEqualTo(String value) { + addCriterion("in_bill_no <>", value, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoGreaterThan(String value) { + addCriterion("in_bill_no >", value, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoGreaterThanOrEqualTo(String value) { + addCriterion("in_bill_no >=", value, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoLessThan(String value) { + addCriterion("in_bill_no <", value, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoLessThanOrEqualTo(String value) { + addCriterion("in_bill_no <=", value, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoLike(String value) { + addCriterion("in_bill_no like", value, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoNotLike(String value) { + addCriterion("in_bill_no not like", value, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoIn(List values) { + addCriterion("in_bill_no in", values, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoNotIn(List values) { + addCriterion("in_bill_no not in", values, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoBetween(String value1, String value2) { + addCriterion("in_bill_no between", value1, value2, "inBillNo"); + return (Criteria) this; + } + + public Criteria andInBillNoNotBetween(String value1, String value2) { + addCriterion("in_bill_no not between", value1, value2, "inBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoIsNull() { + addCriterion("out_bill_no is null"); + return (Criteria) this; + } + + public Criteria andOutBillNoIsNotNull() { + addCriterion("out_bill_no is not null"); + return (Criteria) this; + } + + public Criteria andOutBillNoEqualTo(String value) { + addCriterion("out_bill_no =", value, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoNotEqualTo(String value) { + addCriterion("out_bill_no <>", value, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoGreaterThan(String value) { + addCriterion("out_bill_no >", value, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoGreaterThanOrEqualTo(String value) { + addCriterion("out_bill_no >=", value, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoLessThan(String value) { + addCriterion("out_bill_no <", value, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoLessThanOrEqualTo(String value) { + addCriterion("out_bill_no <=", value, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoLike(String value) { + addCriterion("out_bill_no like", value, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoNotLike(String value) { + addCriterion("out_bill_no not like", value, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoIn(List values) { + addCriterion("out_bill_no in", values, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoNotIn(List values) { + addCriterion("out_bill_no not in", values, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoBetween(String value1, String value2) { + addCriterion("out_bill_no between", value1, value2, "outBillNo"); + return (Criteria) this; + } + + public Criteria andOutBillNoNotBetween(String value1, String value2) { + addCriterion("out_bill_no not between", value1, value2, "outBillNo"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Supplier.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Supplier.java new file mode 100644 index 0000000..e140180 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Supplier.java @@ -0,0 +1,265 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class Supplier { + private Long id; + + private String supplier; + + private String contacts; + + private String phoneNum; + + private String email; + + private String description; + + private Byte isystem; + + private String type; + + private Long categoryId; + + private Boolean enabled; + + private BigDecimal advanceIn; + + private BigDecimal beginNeedGet; + + private BigDecimal beginNeedPay; + + private BigDecimal allNeedGet; + + private BigDecimal allNeedPay; + + private String fax; + + private String telephone; + + private String address; + + private String taxNum; + + private String bankName; + + private String accountNumber; + + private BigDecimal taxRate; + + private String sort; + + private Long creator; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getSupplier() { + return supplier; + } + + public void setSupplier(String supplier) { + this.supplier = supplier == null ? null : supplier.trim(); + } + + public String getContacts() { + return contacts; + } + + public void setContacts(String contacts) { + this.contacts = contacts == null ? null : contacts.trim(); + } + + public String getPhoneNum() { + return phoneNum; + } + + public void setPhoneNum(String phoneNum) { + this.phoneNum = phoneNum == null ? null : phoneNum.trim(); + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email == null ? null : email.trim(); + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description == null ? null : description.trim(); + } + + public Byte getIsystem() { + return isystem; + } + + public void setIsystem(Byte isystem) { + this.isystem = isystem; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public Long getCategoryId() { + return categoryId; + } + + public void setCategoryId(Long categoryId) { + this.categoryId = categoryId; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public BigDecimal getAdvanceIn() { + return advanceIn; + } + + public void setAdvanceIn(BigDecimal advanceIn) { + this.advanceIn = advanceIn; + } + + public BigDecimal getBeginNeedGet() { + return beginNeedGet; + } + + public void setBeginNeedGet(BigDecimal beginNeedGet) { + this.beginNeedGet = beginNeedGet; + } + + public BigDecimal getBeginNeedPay() { + return beginNeedPay; + } + + public void setBeginNeedPay(BigDecimal beginNeedPay) { + this.beginNeedPay = beginNeedPay; + } + + public BigDecimal getAllNeedGet() { + return allNeedGet; + } + + public void setAllNeedGet(BigDecimal allNeedGet) { + this.allNeedGet = allNeedGet; + } + + public BigDecimal getAllNeedPay() { + return allNeedPay; + } + + public void setAllNeedPay(BigDecimal allNeedPay) { + this.allNeedPay = allNeedPay; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax == null ? null : fax.trim(); + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone == null ? null : telephone.trim(); + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address == null ? null : address.trim(); + } + + public String getTaxNum() { + return taxNum; + } + + public void setTaxNum(String taxNum) { + this.taxNum = taxNum == null ? null : taxNum.trim(); + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName == null ? null : bankName.trim(); + } + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber == null ? null : accountNumber.trim(); + } + + public BigDecimal getTaxRate() { + return taxRate; + } + + public void setTaxRate(BigDecimal taxRate) { + this.taxRate = taxRate; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort == null ? null : sort.trim(); + } + + public Long getCreator() { + return creator; + } + + public void setCreator(Long creator) { + this.creator = creator; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SupplierExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SupplierExample.java new file mode 100644 index 0000000..8b22847 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SupplierExample.java @@ -0,0 +1,1840 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class SupplierExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SupplierExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andSupplierIsNull() { + addCriterion("supplier is null"); + return (Criteria) this; + } + + public Criteria andSupplierIsNotNull() { + addCriterion("supplier is not null"); + return (Criteria) this; + } + + public Criteria andSupplierEqualTo(String value) { + addCriterion("supplier =", value, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierNotEqualTo(String value) { + addCriterion("supplier <>", value, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierGreaterThan(String value) { + addCriterion("supplier >", value, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierGreaterThanOrEqualTo(String value) { + addCriterion("supplier >=", value, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierLessThan(String value) { + addCriterion("supplier <", value, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierLessThanOrEqualTo(String value) { + addCriterion("supplier <=", value, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierLike(String value) { + addCriterion("supplier like", value, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierNotLike(String value) { + addCriterion("supplier not like", value, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierIn(List values) { + addCriterion("supplier in", values, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierNotIn(List values) { + addCriterion("supplier not in", values, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierBetween(String value1, String value2) { + addCriterion("supplier between", value1, value2, "supplier"); + return (Criteria) this; + } + + public Criteria andSupplierNotBetween(String value1, String value2) { + addCriterion("supplier not between", value1, value2, "supplier"); + return (Criteria) this; + } + + public Criteria andContactsIsNull() { + addCriterion("contacts is null"); + return (Criteria) this; + } + + public Criteria andContactsIsNotNull() { + addCriterion("contacts is not null"); + return (Criteria) this; + } + + public Criteria andContactsEqualTo(String value) { + addCriterion("contacts =", value, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsNotEqualTo(String value) { + addCriterion("contacts <>", value, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsGreaterThan(String value) { + addCriterion("contacts >", value, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsGreaterThanOrEqualTo(String value) { + addCriterion("contacts >=", value, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsLessThan(String value) { + addCriterion("contacts <", value, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsLessThanOrEqualTo(String value) { + addCriterion("contacts <=", value, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsLike(String value) { + addCriterion("contacts like", value, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsNotLike(String value) { + addCriterion("contacts not like", value, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsIn(List values) { + addCriterion("contacts in", values, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsNotIn(List values) { + addCriterion("contacts not in", values, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsBetween(String value1, String value2) { + addCriterion("contacts between", value1, value2, "contacts"); + return (Criteria) this; + } + + public Criteria andContactsNotBetween(String value1, String value2) { + addCriterion("contacts not between", value1, value2, "contacts"); + return (Criteria) this; + } + + public Criteria andPhoneNumIsNull() { + addCriterion("phone_num is null"); + return (Criteria) this; + } + + public Criteria andPhoneNumIsNotNull() { + addCriterion("phone_num is not null"); + return (Criteria) this; + } + + public Criteria andPhoneNumEqualTo(String value) { + addCriterion("phone_num =", value, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumNotEqualTo(String value) { + addCriterion("phone_num <>", value, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumGreaterThan(String value) { + addCriterion("phone_num >", value, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumGreaterThanOrEqualTo(String value) { + addCriterion("phone_num >=", value, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumLessThan(String value) { + addCriterion("phone_num <", value, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumLessThanOrEqualTo(String value) { + addCriterion("phone_num <=", value, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumLike(String value) { + addCriterion("phone_num like", value, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumNotLike(String value) { + addCriterion("phone_num not like", value, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumIn(List values) { + addCriterion("phone_num in", values, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumNotIn(List values) { + addCriterion("phone_num not in", values, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumBetween(String value1, String value2) { + addCriterion("phone_num between", value1, value2, "phoneNum"); + return (Criteria) this; + } + + public Criteria andPhoneNumNotBetween(String value1, String value2) { + addCriterion("phone_num not between", value1, value2, "phoneNum"); + return (Criteria) this; + } + + public Criteria andEmailIsNull() { + addCriterion("email is null"); + return (Criteria) this; + } + + public Criteria andEmailIsNotNull() { + addCriterion("email is not null"); + return (Criteria) this; + } + + public Criteria andEmailEqualTo(String value) { + addCriterion("email =", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailNotEqualTo(String value) { + addCriterion("email <>", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailGreaterThan(String value) { + addCriterion("email >", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailGreaterThanOrEqualTo(String value) { + addCriterion("email >=", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailLessThan(String value) { + addCriterion("email <", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailLessThanOrEqualTo(String value) { + addCriterion("email <=", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailLike(String value) { + addCriterion("email like", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailNotLike(String value) { + addCriterion("email not like", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailIn(List values) { + addCriterion("email in", values, "email"); + return (Criteria) this; + } + + public Criteria andEmailNotIn(List values) { + addCriterion("email not in", values, "email"); + return (Criteria) this; + } + + public Criteria andEmailBetween(String value1, String value2) { + addCriterion("email between", value1, value2, "email"); + return (Criteria) this; + } + + public Criteria andEmailNotBetween(String value1, String value2) { + addCriterion("email not between", value1, value2, "email"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andIsystemIsNull() { + addCriterion("isystem is null"); + return (Criteria) this; + } + + public Criteria andIsystemIsNotNull() { + addCriterion("isystem is not null"); + return (Criteria) this; + } + + public Criteria andIsystemEqualTo(Byte value) { + addCriterion("isystem =", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemNotEqualTo(Byte value) { + addCriterion("isystem <>", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemGreaterThan(Byte value) { + addCriterion("isystem >", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemGreaterThanOrEqualTo(Byte value) { + addCriterion("isystem >=", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemLessThan(Byte value) { + addCriterion("isystem <", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemLessThanOrEqualTo(Byte value) { + addCriterion("isystem <=", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemIn(List values) { + addCriterion("isystem in", values, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemNotIn(List values) { + addCriterion("isystem not in", values, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemBetween(Byte value1, Byte value2) { + addCriterion("isystem between", value1, value2, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemNotBetween(Byte value1, Byte value2) { + addCriterion("isystem not between", value1, value2, "isystem"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andAdvanceInIsNull() { + addCriterion("advance_in is null"); + return (Criteria) this; + } + + public Criteria andAdvanceInIsNotNull() { + addCriterion("advance_in is not null"); + return (Criteria) this; + } + + public Criteria andAdvanceInEqualTo(BigDecimal value) { + addCriterion("advance_in =", value, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInNotEqualTo(BigDecimal value) { + addCriterion("advance_in <>", value, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInGreaterThan(BigDecimal value) { + addCriterion("advance_in >", value, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("advance_in >=", value, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInLessThan(BigDecimal value) { + addCriterion("advance_in <", value, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInLessThanOrEqualTo(BigDecimal value) { + addCriterion("advance_in <=", value, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInIn(List values) { + addCriterion("advance_in in", values, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInNotIn(List values) { + addCriterion("advance_in not in", values, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("advance_in between", value1, value2, "advanceIn"); + return (Criteria) this; + } + + public Criteria andAdvanceInNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("advance_in not between", value1, value2, "advanceIn"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetIsNull() { + addCriterion("begin_need_get is null"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetIsNotNull() { + addCriterion("begin_need_get is not null"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetEqualTo(BigDecimal value) { + addCriterion("begin_need_get =", value, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetNotEqualTo(BigDecimal value) { + addCriterion("begin_need_get <>", value, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetGreaterThan(BigDecimal value) { + addCriterion("begin_need_get >", value, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("begin_need_get >=", value, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetLessThan(BigDecimal value) { + addCriterion("begin_need_get <", value, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetLessThanOrEqualTo(BigDecimal value) { + addCriterion("begin_need_get <=", value, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetIn(List values) { + addCriterion("begin_need_get in", values, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetNotIn(List values) { + addCriterion("begin_need_get not in", values, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("begin_need_get between", value1, value2, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedGetNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("begin_need_get not between", value1, value2, "beginNeedGet"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayIsNull() { + addCriterion("begin_need_pay is null"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayIsNotNull() { + addCriterion("begin_need_pay is not null"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayEqualTo(BigDecimal value) { + addCriterion("begin_need_pay =", value, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayNotEqualTo(BigDecimal value) { + addCriterion("begin_need_pay <>", value, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayGreaterThan(BigDecimal value) { + addCriterion("begin_need_pay >", value, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("begin_need_pay >=", value, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayLessThan(BigDecimal value) { + addCriterion("begin_need_pay <", value, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayLessThanOrEqualTo(BigDecimal value) { + addCriterion("begin_need_pay <=", value, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayIn(List values) { + addCriterion("begin_need_pay in", values, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayNotIn(List values) { + addCriterion("begin_need_pay not in", values, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("begin_need_pay between", value1, value2, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andBeginNeedPayNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("begin_need_pay not between", value1, value2, "beginNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedGetIsNull() { + addCriterion("all_need_get is null"); + return (Criteria) this; + } + + public Criteria andAllNeedGetIsNotNull() { + addCriterion("all_need_get is not null"); + return (Criteria) this; + } + + public Criteria andAllNeedGetEqualTo(BigDecimal value) { + addCriterion("all_need_get =", value, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetNotEqualTo(BigDecimal value) { + addCriterion("all_need_get <>", value, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetGreaterThan(BigDecimal value) { + addCriterion("all_need_get >", value, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("all_need_get >=", value, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetLessThan(BigDecimal value) { + addCriterion("all_need_get <", value, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetLessThanOrEqualTo(BigDecimal value) { + addCriterion("all_need_get <=", value, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetIn(List values) { + addCriterion("all_need_get in", values, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetNotIn(List values) { + addCriterion("all_need_get not in", values, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("all_need_get between", value1, value2, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedGetNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("all_need_get not between", value1, value2, "allNeedGet"); + return (Criteria) this; + } + + public Criteria andAllNeedPayIsNull() { + addCriterion("all_need_pay is null"); + return (Criteria) this; + } + + public Criteria andAllNeedPayIsNotNull() { + addCriterion("all_need_pay is not null"); + return (Criteria) this; + } + + public Criteria andAllNeedPayEqualTo(BigDecimal value) { + addCriterion("all_need_pay =", value, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayNotEqualTo(BigDecimal value) { + addCriterion("all_need_pay <>", value, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayGreaterThan(BigDecimal value) { + addCriterion("all_need_pay >", value, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("all_need_pay >=", value, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayLessThan(BigDecimal value) { + addCriterion("all_need_pay <", value, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayLessThanOrEqualTo(BigDecimal value) { + addCriterion("all_need_pay <=", value, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayIn(List values) { + addCriterion("all_need_pay in", values, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayNotIn(List values) { + addCriterion("all_need_pay not in", values, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("all_need_pay between", value1, value2, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andAllNeedPayNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("all_need_pay not between", value1, value2, "allNeedPay"); + return (Criteria) this; + } + + public Criteria andFaxIsNull() { + addCriterion("fax is null"); + return (Criteria) this; + } + + public Criteria andFaxIsNotNull() { + addCriterion("fax is not null"); + return (Criteria) this; + } + + public Criteria andFaxEqualTo(String value) { + addCriterion("fax =", value, "fax"); + return (Criteria) this; + } + + public Criteria andFaxNotEqualTo(String value) { + addCriterion("fax <>", value, "fax"); + return (Criteria) this; + } + + public Criteria andFaxGreaterThan(String value) { + addCriterion("fax >", value, "fax"); + return (Criteria) this; + } + + public Criteria andFaxGreaterThanOrEqualTo(String value) { + addCriterion("fax >=", value, "fax"); + return (Criteria) this; + } + + public Criteria andFaxLessThan(String value) { + addCriterion("fax <", value, "fax"); + return (Criteria) this; + } + + public Criteria andFaxLessThanOrEqualTo(String value) { + addCriterion("fax <=", value, "fax"); + return (Criteria) this; + } + + public Criteria andFaxLike(String value) { + addCriterion("fax like", value, "fax"); + return (Criteria) this; + } + + public Criteria andFaxNotLike(String value) { + addCriterion("fax not like", value, "fax"); + return (Criteria) this; + } + + public Criteria andFaxIn(List values) { + addCriterion("fax in", values, "fax"); + return (Criteria) this; + } + + public Criteria andFaxNotIn(List values) { + addCriterion("fax not in", values, "fax"); + return (Criteria) this; + } + + public Criteria andFaxBetween(String value1, String value2) { + addCriterion("fax between", value1, value2, "fax"); + return (Criteria) this; + } + + public Criteria andFaxNotBetween(String value1, String value2) { + addCriterion("fax not between", value1, value2, "fax"); + return (Criteria) this; + } + + public Criteria andTelephoneIsNull() { + addCriterion("telephone is null"); + return (Criteria) this; + } + + public Criteria andTelephoneIsNotNull() { + addCriterion("telephone is not null"); + return (Criteria) this; + } + + public Criteria andTelephoneEqualTo(String value) { + addCriterion("telephone =", value, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneNotEqualTo(String value) { + addCriterion("telephone <>", value, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneGreaterThan(String value) { + addCriterion("telephone >", value, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneGreaterThanOrEqualTo(String value) { + addCriterion("telephone >=", value, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneLessThan(String value) { + addCriterion("telephone <", value, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneLessThanOrEqualTo(String value) { + addCriterion("telephone <=", value, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneLike(String value) { + addCriterion("telephone like", value, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneNotLike(String value) { + addCriterion("telephone not like", value, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneIn(List values) { + addCriterion("telephone in", values, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneNotIn(List values) { + addCriterion("telephone not in", values, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneBetween(String value1, String value2) { + addCriterion("telephone between", value1, value2, "telephone"); + return (Criteria) this; + } + + public Criteria andTelephoneNotBetween(String value1, String value2) { + addCriterion("telephone not between", value1, value2, "telephone"); + return (Criteria) this; + } + + public Criteria andAddressIsNull() { + addCriterion("address is null"); + return (Criteria) this; + } + + public Criteria andAddressIsNotNull() { + addCriterion("address is not null"); + return (Criteria) this; + } + + public Criteria andAddressEqualTo(String value) { + addCriterion("address =", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressNotEqualTo(String value) { + addCriterion("address <>", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressGreaterThan(String value) { + addCriterion("address >", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressGreaterThanOrEqualTo(String value) { + addCriterion("address >=", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressLessThan(String value) { + addCriterion("address <", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressLessThanOrEqualTo(String value) { + addCriterion("address <=", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressLike(String value) { + addCriterion("address like", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressNotLike(String value) { + addCriterion("address not like", value, "address"); + return (Criteria) this; + } + + public Criteria andAddressIn(List values) { + addCriterion("address in", values, "address"); + return (Criteria) this; + } + + public Criteria andAddressNotIn(List values) { + addCriterion("address not in", values, "address"); + return (Criteria) this; + } + + public Criteria andAddressBetween(String value1, String value2) { + addCriterion("address between", value1, value2, "address"); + return (Criteria) this; + } + + public Criteria andAddressNotBetween(String value1, String value2) { + addCriterion("address not between", value1, value2, "address"); + return (Criteria) this; + } + + public Criteria andTaxNumIsNull() { + addCriterion("tax_num is null"); + return (Criteria) this; + } + + public Criteria andTaxNumIsNotNull() { + addCriterion("tax_num is not null"); + return (Criteria) this; + } + + public Criteria andTaxNumEqualTo(String value) { + addCriterion("tax_num =", value, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumNotEqualTo(String value) { + addCriterion("tax_num <>", value, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumGreaterThan(String value) { + addCriterion("tax_num >", value, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumGreaterThanOrEqualTo(String value) { + addCriterion("tax_num >=", value, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumLessThan(String value) { + addCriterion("tax_num <", value, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumLessThanOrEqualTo(String value) { + addCriterion("tax_num <=", value, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumLike(String value) { + addCriterion("tax_num like", value, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumNotLike(String value) { + addCriterion("tax_num not like", value, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumIn(List values) { + addCriterion("tax_num in", values, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumNotIn(List values) { + addCriterion("tax_num not in", values, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumBetween(String value1, String value2) { + addCriterion("tax_num between", value1, value2, "taxNum"); + return (Criteria) this; + } + + public Criteria andTaxNumNotBetween(String value1, String value2) { + addCriterion("tax_num not between", value1, value2, "taxNum"); + return (Criteria) this; + } + + public Criteria andBankNameIsNull() { + addCriterion("bank_name is null"); + return (Criteria) this; + } + + public Criteria andBankNameIsNotNull() { + addCriterion("bank_name is not null"); + return (Criteria) this; + } + + public Criteria andBankNameEqualTo(String value) { + addCriterion("bank_name =", value, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameNotEqualTo(String value) { + addCriterion("bank_name <>", value, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameGreaterThan(String value) { + addCriterion("bank_name >", value, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameGreaterThanOrEqualTo(String value) { + addCriterion("bank_name >=", value, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameLessThan(String value) { + addCriterion("bank_name <", value, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameLessThanOrEqualTo(String value) { + addCriterion("bank_name <=", value, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameLike(String value) { + addCriterion("bank_name like", value, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameNotLike(String value) { + addCriterion("bank_name not like", value, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameIn(List values) { + addCriterion("bank_name in", values, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameNotIn(List values) { + addCriterion("bank_name not in", values, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameBetween(String value1, String value2) { + addCriterion("bank_name between", value1, value2, "bankName"); + return (Criteria) this; + } + + public Criteria andBankNameNotBetween(String value1, String value2) { + addCriterion("bank_name not between", value1, value2, "bankName"); + return (Criteria) this; + } + + public Criteria andAccountNumberIsNull() { + addCriterion("account_number is null"); + return (Criteria) this; + } + + public Criteria andAccountNumberIsNotNull() { + addCriterion("account_number is not null"); + return (Criteria) this; + } + + public Criteria andAccountNumberEqualTo(String value) { + addCriterion("account_number =", value, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberNotEqualTo(String value) { + addCriterion("account_number <>", value, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberGreaterThan(String value) { + addCriterion("account_number >", value, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberGreaterThanOrEqualTo(String value) { + addCriterion("account_number >=", value, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberLessThan(String value) { + addCriterion("account_number <", value, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberLessThanOrEqualTo(String value) { + addCriterion("account_number <=", value, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberLike(String value) { + addCriterion("account_number like", value, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberNotLike(String value) { + addCriterion("account_number not like", value, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberIn(List values) { + addCriterion("account_number in", values, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberNotIn(List values) { + addCriterion("account_number not in", values, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberBetween(String value1, String value2) { + addCriterion("account_number between", value1, value2, "accountNumber"); + return (Criteria) this; + } + + public Criteria andAccountNumberNotBetween(String value1, String value2) { + addCriterion("account_number not between", value1, value2, "accountNumber"); + return (Criteria) this; + } + + public Criteria andTaxRateIsNull() { + addCriterion("tax_rate is null"); + return (Criteria) this; + } + + public Criteria andTaxRateIsNotNull() { + addCriterion("tax_rate is not null"); + return (Criteria) this; + } + + public Criteria andTaxRateEqualTo(BigDecimal value) { + addCriterion("tax_rate =", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateNotEqualTo(BigDecimal value) { + addCriterion("tax_rate <>", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateGreaterThan(BigDecimal value) { + addCriterion("tax_rate >", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("tax_rate >=", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateLessThan(BigDecimal value) { + addCriterion("tax_rate <", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateLessThanOrEqualTo(BigDecimal value) { + addCriterion("tax_rate <=", value, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateIn(List values) { + addCriterion("tax_rate in", values, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateNotIn(List values) { + addCriterion("tax_rate not in", values, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_rate between", value1, value2, "taxRate"); + return (Criteria) this; + } + + public Criteria andTaxRateNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("tax_rate not between", value1, value2, "taxRate"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(String value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(String value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(String value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(String value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(String value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(String value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLike(String value) { + addCriterion("sort like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotLike(String value) { + addCriterion("sort not like", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(String value1, String value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(String value1, String value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andCreatorIsNull() { + addCriterion("creator is null"); + return (Criteria) this; + } + + public Criteria andCreatorIsNotNull() { + addCriterion("creator is not null"); + return (Criteria) this; + } + + public Criteria andCreatorEqualTo(Long value) { + addCriterion("creator =", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotEqualTo(Long value) { + addCriterion("creator <>", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThan(Long value) { + addCriterion("creator >", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorGreaterThanOrEqualTo(Long value) { + addCriterion("creator >=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThan(Long value) { + addCriterion("creator <", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorLessThanOrEqualTo(Long value) { + addCriterion("creator <=", value, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorIn(List values) { + addCriterion("creator in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotIn(List values) { + addCriterion("creator not in", values, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorBetween(Long value1, Long value2) { + addCriterion("creator between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andCreatorNotBetween(Long value1, Long value2) { + addCriterion("creator not between", value1, value2, "creator"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysDictData.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysDictData.java new file mode 100644 index 0000000..b51782a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysDictData.java @@ -0,0 +1,150 @@ +package com.reallin.smt.datasource.entities; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +/** + * 字典数据表 sys_dict_data + * + * @author jishenghua + */ +@ApiModel(value = "SysDictData", description = "字典数据表 sys_dict_data") +public class SysDictData extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 字典编码 */ + @ApiModelProperty("字典编码") + private Long dictCode; + + /** 字典排序 */ + @ApiModelProperty("字典排序") + private Long dictSort; + + /** 字典标签 */ + @ApiModelProperty("字典标签") + private String dictLabel; + + /** 字典键值 */ + @ApiModelProperty("字典键值") + private String dictValue; + + /** 字典类型 */ + @ApiModelProperty("字典类型") + private String dictType; + + /** 样式属性(其他样式扩展) */ + @ApiModelProperty("样式属性(其他样式扩展)") + private String cssClass; + + /** 表格字典样式 */ + @ApiModelProperty("表格字典样式") + private String listClass; + + /** 是否默认(Y是 N否) */ + @ApiModelProperty("是否默认(Y是 N否)") + private String isDefault; + + /** 状态(0正常 1停用) */ + @ApiModelProperty("状态(0正常 1停用)") + private String status; + + public Long getDictCode() + { + return dictCode; + } + + public void setDictCode(Long dictCode) + { + this.dictCode = dictCode; + } + + public Long getDictSort() + { + return dictSort; + } + + public void setDictSort(Long dictSort) + { + this.dictSort = dictSort; + } + + @NotBlank(message = "字典标签不能为空") + @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符") + public String getDictLabel() + { + return dictLabel; + } + + public void setDictLabel(String dictLabel) + { + this.dictLabel = dictLabel; + } + + @NotBlank(message = "字典键值不能为空") + @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符") + public String getDictValue() + { + return dictValue; + } + + public void setDictValue(String dictValue) + { + this.dictValue = dictValue; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") + public String getDictType() + { + return dictType; + } + + public void setDictType(String dictType) + { + this.dictType = dictType; + } + + @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") + public String getCssClass() + { + return cssClass; + } + + public void setCssClass(String cssClass) + { + this.cssClass = cssClass; + } + + public String getListClass() + { + return listClass; + } + + public void setListClass(String listClass) + { + this.listClass = listClass; + } + + public String getIsDefault() + { + return isDefault; + } + + public void setIsDefault(String isDefault) + { + this.isDefault = isDefault; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysDictType.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysDictType.java new file mode 100644 index 0000000..3050afa --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysDictType.java @@ -0,0 +1,89 @@ +package com.reallin.smt.datasource.entities; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; + +/** + * 字典类型表 sys_dict_type + * + * @author jishenghua + */ +@ApiModel(value = "SysDictType", description = "字典类型表 sys_dict_type") +public class SysDictType extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 字典主键 */ + @ApiModelProperty("字典主键") + private Long dictId; + + /** 字典名称 */ + @ApiModelProperty("字典名称") + private String dictName; + + /** 字典类型 */ + @ApiModelProperty("字典类型") + private String dictType; + + /** 状态(0正常 1停用) */ + @ApiModelProperty("状态(0正常 1停用)") + private String status; + + private String deleteFlag; + + public Long getDictId() + { + return dictId; + } + + public void setDictId(Long dictId) + { + this.dictId = dictId; + } + + @NotBlank(message = "字典名称不能为空") + @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") + public String getDictName() + { + return dictName; + } + + public void setDictName(String dictName) + { + this.dictName = dictName; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") + @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)") + public String getDictType() + { + return dictType; + } + + public void setDictType(String dictType) + { + this.dictType = dictType; + } + + public String getStatus() + { + return status; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysLoginModel.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysLoginModel.java new file mode 100644 index 0000000..fc0776a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SysLoginModel.java @@ -0,0 +1,55 @@ +package com.reallin.smt.datasource.entities; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 登录表单 + * + * @Author scott + * @since 2019-01-18 + */ +@ApiModel(value="登录对象", description="登录对象") +public class SysLoginModel { + @ApiModelProperty(value = "账号") + private String username; + @ApiModelProperty(value = "密码") + private String password; + @ApiModelProperty(value = "验证码") + private String captcha; + @ApiModelProperty(value = "验证码key") + private String checkKey; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getCaptcha() { + return captcha; + } + + public void setCaptcha(String captcha) { + this.captcha = captcha; + } + + public String getCheckKey() { + return checkKey; + } + + public void setCheckKey(String checkKey) { + this.checkKey = checkKey; + } + +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SystemConfig.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SystemConfig.java new file mode 100644 index 0000000..7078ffb --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SystemConfig.java @@ -0,0 +1,263 @@ +package com.reallin.smt.datasource.entities; + +public class SystemConfig { + private Long id; + + private String companyName; + + private String companyContacts; + + private String companyAddress; + + private String companyTel; + + private String companyFax; + + private String companyPostCode; + + private String saleAgreement; + + private String depotFlag; + + private String customerFlag; + + private String minusStockFlag; + + private String purchaseBySaleFlag; + + private String multiLevelApprovalFlag; + + private String multiBillType; + + private String forceApprovalFlag; + + private String updateUnitPriceFlag; + + private String overLinkBillFlag; + + private String inOutManageFlag; + + private String multiAccountFlag; + + private String moveAvgPriceFlag; + + private String auditPrintFlag; + + private String zeroChangeAmountFlag; + + private String customerStaticPriceFlag; + + private String materialPriceTaxFlag; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getCompanyName() { + return companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName == null ? null : companyName.trim(); + } + + public String getCompanyContacts() { + return companyContacts; + } + + public void setCompanyContacts(String companyContacts) { + this.companyContacts = companyContacts == null ? null : companyContacts.trim(); + } + + public String getCompanyAddress() { + return companyAddress; + } + + public void setCompanyAddress(String companyAddress) { + this.companyAddress = companyAddress == null ? null : companyAddress.trim(); + } + + public String getCompanyTel() { + return companyTel; + } + + public void setCompanyTel(String companyTel) { + this.companyTel = companyTel == null ? null : companyTel.trim(); + } + + public String getCompanyFax() { + return companyFax; + } + + public void setCompanyFax(String companyFax) { + this.companyFax = companyFax == null ? null : companyFax.trim(); + } + + public String getCompanyPostCode() { + return companyPostCode; + } + + public void setCompanyPostCode(String companyPostCode) { + this.companyPostCode = companyPostCode == null ? null : companyPostCode.trim(); + } + + public String getSaleAgreement() { + return saleAgreement; + } + + public void setSaleAgreement(String saleAgreement) { + this.saleAgreement = saleAgreement == null ? null : saleAgreement.trim(); + } + + public String getDepotFlag() { + return depotFlag; + } + + public void setDepotFlag(String depotFlag) { + this.depotFlag = depotFlag == null ? null : depotFlag.trim(); + } + + public String getCustomerFlag() { + return customerFlag; + } + + public void setCustomerFlag(String customerFlag) { + this.customerFlag = customerFlag == null ? null : customerFlag.trim(); + } + + public String getMinusStockFlag() { + return minusStockFlag; + } + + public void setMinusStockFlag(String minusStockFlag) { + this.minusStockFlag = minusStockFlag == null ? null : minusStockFlag.trim(); + } + + public String getPurchaseBySaleFlag() { + return purchaseBySaleFlag; + } + + public void setPurchaseBySaleFlag(String purchaseBySaleFlag) { + this.purchaseBySaleFlag = purchaseBySaleFlag == null ? null : purchaseBySaleFlag.trim(); + } + + public String getMultiLevelApprovalFlag() { + return multiLevelApprovalFlag; + } + + public void setMultiLevelApprovalFlag(String multiLevelApprovalFlag) { + this.multiLevelApprovalFlag = multiLevelApprovalFlag == null ? null : multiLevelApprovalFlag.trim(); + } + + public String getMultiBillType() { + return multiBillType; + } + + public void setMultiBillType(String multiBillType) { + this.multiBillType = multiBillType == null ? null : multiBillType.trim(); + } + + public String getForceApprovalFlag() { + return forceApprovalFlag; + } + + public void setForceApprovalFlag(String forceApprovalFlag) { + this.forceApprovalFlag = forceApprovalFlag == null ? null : forceApprovalFlag.trim(); + } + + public String getUpdateUnitPriceFlag() { + return updateUnitPriceFlag; + } + + public void setUpdateUnitPriceFlag(String updateUnitPriceFlag) { + this.updateUnitPriceFlag = updateUnitPriceFlag == null ? null : updateUnitPriceFlag.trim(); + } + + public String getOverLinkBillFlag() { + return overLinkBillFlag; + } + + public void setOverLinkBillFlag(String overLinkBillFlag) { + this.overLinkBillFlag = overLinkBillFlag == null ? null : overLinkBillFlag.trim(); + } + + public String getInOutManageFlag() { + return inOutManageFlag; + } + + public void setInOutManageFlag(String inOutManageFlag) { + this.inOutManageFlag = inOutManageFlag == null ? null : inOutManageFlag.trim(); + } + + public String getMultiAccountFlag() { + return multiAccountFlag; + } + + public void setMultiAccountFlag(String multiAccountFlag) { + this.multiAccountFlag = multiAccountFlag == null ? null : multiAccountFlag.trim(); + } + + public String getMoveAvgPriceFlag() { + return moveAvgPriceFlag; + } + + public void setMoveAvgPriceFlag(String moveAvgPriceFlag) { + this.moveAvgPriceFlag = moveAvgPriceFlag == null ? null : moveAvgPriceFlag.trim(); + } + + public String getAuditPrintFlag() { + return auditPrintFlag; + } + + public void setAuditPrintFlag(String auditPrintFlag) { + this.auditPrintFlag = auditPrintFlag == null ? null : auditPrintFlag.trim(); + } + + public String getZeroChangeAmountFlag() { + return zeroChangeAmountFlag; + } + + public void setZeroChangeAmountFlag(String zeroChangeAmountFlag) { + this.zeroChangeAmountFlag = zeroChangeAmountFlag == null ? null : zeroChangeAmountFlag.trim(); + } + + public String getCustomerStaticPriceFlag() { + return customerStaticPriceFlag; + } + + public void setCustomerStaticPriceFlag(String customerStaticPriceFlag) { + this.customerStaticPriceFlag = customerStaticPriceFlag == null ? null : customerStaticPriceFlag.trim(); + } + + public String getMaterialPriceTaxFlag() { + return materialPriceTaxFlag; + } + + public void setMaterialPriceTaxFlag(String materialPriceTaxFlag) { + this.materialPriceTaxFlag = materialPriceTaxFlag == null ? null : materialPriceTaxFlag.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SystemConfigExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SystemConfigExample.java new file mode 100644 index 0000000..0f3f446 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/SystemConfigExample.java @@ -0,0 +1,1999 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class SystemConfigExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SystemConfigExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andCompanyNameIsNull() { + addCriterion("company_name is null"); + return (Criteria) this; + } + + public Criteria andCompanyNameIsNotNull() { + addCriterion("company_name is not null"); + return (Criteria) this; + } + + public Criteria andCompanyNameEqualTo(String value) { + addCriterion("company_name =", value, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameNotEqualTo(String value) { + addCriterion("company_name <>", value, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameGreaterThan(String value) { + addCriterion("company_name >", value, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameGreaterThanOrEqualTo(String value) { + addCriterion("company_name >=", value, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameLessThan(String value) { + addCriterion("company_name <", value, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameLessThanOrEqualTo(String value) { + addCriterion("company_name <=", value, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameLike(String value) { + addCriterion("company_name like", value, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameNotLike(String value) { + addCriterion("company_name not like", value, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameIn(List values) { + addCriterion("company_name in", values, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameNotIn(List values) { + addCriterion("company_name not in", values, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameBetween(String value1, String value2) { + addCriterion("company_name between", value1, value2, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyNameNotBetween(String value1, String value2) { + addCriterion("company_name not between", value1, value2, "companyName"); + return (Criteria) this; + } + + public Criteria andCompanyContactsIsNull() { + addCriterion("company_contacts is null"); + return (Criteria) this; + } + + public Criteria andCompanyContactsIsNotNull() { + addCriterion("company_contacts is not null"); + return (Criteria) this; + } + + public Criteria andCompanyContactsEqualTo(String value) { + addCriterion("company_contacts =", value, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsNotEqualTo(String value) { + addCriterion("company_contacts <>", value, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsGreaterThan(String value) { + addCriterion("company_contacts >", value, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsGreaterThanOrEqualTo(String value) { + addCriterion("company_contacts >=", value, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsLessThan(String value) { + addCriterion("company_contacts <", value, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsLessThanOrEqualTo(String value) { + addCriterion("company_contacts <=", value, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsLike(String value) { + addCriterion("company_contacts like", value, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsNotLike(String value) { + addCriterion("company_contacts not like", value, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsIn(List values) { + addCriterion("company_contacts in", values, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsNotIn(List values) { + addCriterion("company_contacts not in", values, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsBetween(String value1, String value2) { + addCriterion("company_contacts between", value1, value2, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyContactsNotBetween(String value1, String value2) { + addCriterion("company_contacts not between", value1, value2, "companyContacts"); + return (Criteria) this; + } + + public Criteria andCompanyAddressIsNull() { + addCriterion("company_address is null"); + return (Criteria) this; + } + + public Criteria andCompanyAddressIsNotNull() { + addCriterion("company_address is not null"); + return (Criteria) this; + } + + public Criteria andCompanyAddressEqualTo(String value) { + addCriterion("company_address =", value, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressNotEqualTo(String value) { + addCriterion("company_address <>", value, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressGreaterThan(String value) { + addCriterion("company_address >", value, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressGreaterThanOrEqualTo(String value) { + addCriterion("company_address >=", value, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressLessThan(String value) { + addCriterion("company_address <", value, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressLessThanOrEqualTo(String value) { + addCriterion("company_address <=", value, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressLike(String value) { + addCriterion("company_address like", value, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressNotLike(String value) { + addCriterion("company_address not like", value, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressIn(List values) { + addCriterion("company_address in", values, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressNotIn(List values) { + addCriterion("company_address not in", values, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressBetween(String value1, String value2) { + addCriterion("company_address between", value1, value2, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyAddressNotBetween(String value1, String value2) { + addCriterion("company_address not between", value1, value2, "companyAddress"); + return (Criteria) this; + } + + public Criteria andCompanyTelIsNull() { + addCriterion("company_tel is null"); + return (Criteria) this; + } + + public Criteria andCompanyTelIsNotNull() { + addCriterion("company_tel is not null"); + return (Criteria) this; + } + + public Criteria andCompanyTelEqualTo(String value) { + addCriterion("company_tel =", value, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelNotEqualTo(String value) { + addCriterion("company_tel <>", value, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelGreaterThan(String value) { + addCriterion("company_tel >", value, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelGreaterThanOrEqualTo(String value) { + addCriterion("company_tel >=", value, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelLessThan(String value) { + addCriterion("company_tel <", value, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelLessThanOrEqualTo(String value) { + addCriterion("company_tel <=", value, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelLike(String value) { + addCriterion("company_tel like", value, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelNotLike(String value) { + addCriterion("company_tel not like", value, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelIn(List values) { + addCriterion("company_tel in", values, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelNotIn(List values) { + addCriterion("company_tel not in", values, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelBetween(String value1, String value2) { + addCriterion("company_tel between", value1, value2, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyTelNotBetween(String value1, String value2) { + addCriterion("company_tel not between", value1, value2, "companyTel"); + return (Criteria) this; + } + + public Criteria andCompanyFaxIsNull() { + addCriterion("company_fax is null"); + return (Criteria) this; + } + + public Criteria andCompanyFaxIsNotNull() { + addCriterion("company_fax is not null"); + return (Criteria) this; + } + + public Criteria andCompanyFaxEqualTo(String value) { + addCriterion("company_fax =", value, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxNotEqualTo(String value) { + addCriterion("company_fax <>", value, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxGreaterThan(String value) { + addCriterion("company_fax >", value, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxGreaterThanOrEqualTo(String value) { + addCriterion("company_fax >=", value, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxLessThan(String value) { + addCriterion("company_fax <", value, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxLessThanOrEqualTo(String value) { + addCriterion("company_fax <=", value, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxLike(String value) { + addCriterion("company_fax like", value, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxNotLike(String value) { + addCriterion("company_fax not like", value, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxIn(List values) { + addCriterion("company_fax in", values, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxNotIn(List values) { + addCriterion("company_fax not in", values, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxBetween(String value1, String value2) { + addCriterion("company_fax between", value1, value2, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyFaxNotBetween(String value1, String value2) { + addCriterion("company_fax not between", value1, value2, "companyFax"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeIsNull() { + addCriterion("company_post_code is null"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeIsNotNull() { + addCriterion("company_post_code is not null"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeEqualTo(String value) { + addCriterion("company_post_code =", value, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeNotEqualTo(String value) { + addCriterion("company_post_code <>", value, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeGreaterThan(String value) { + addCriterion("company_post_code >", value, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeGreaterThanOrEqualTo(String value) { + addCriterion("company_post_code >=", value, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeLessThan(String value) { + addCriterion("company_post_code <", value, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeLessThanOrEqualTo(String value) { + addCriterion("company_post_code <=", value, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeLike(String value) { + addCriterion("company_post_code like", value, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeNotLike(String value) { + addCriterion("company_post_code not like", value, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeIn(List values) { + addCriterion("company_post_code in", values, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeNotIn(List values) { + addCriterion("company_post_code not in", values, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeBetween(String value1, String value2) { + addCriterion("company_post_code between", value1, value2, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andCompanyPostCodeNotBetween(String value1, String value2) { + addCriterion("company_post_code not between", value1, value2, "companyPostCode"); + return (Criteria) this; + } + + public Criteria andSaleAgreementIsNull() { + addCriterion("sale_agreement is null"); + return (Criteria) this; + } + + public Criteria andSaleAgreementIsNotNull() { + addCriterion("sale_agreement is not null"); + return (Criteria) this; + } + + public Criteria andSaleAgreementEqualTo(String value) { + addCriterion("sale_agreement =", value, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementNotEqualTo(String value) { + addCriterion("sale_agreement <>", value, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementGreaterThan(String value) { + addCriterion("sale_agreement >", value, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementGreaterThanOrEqualTo(String value) { + addCriterion("sale_agreement >=", value, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementLessThan(String value) { + addCriterion("sale_agreement <", value, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementLessThanOrEqualTo(String value) { + addCriterion("sale_agreement <=", value, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementLike(String value) { + addCriterion("sale_agreement like", value, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementNotLike(String value) { + addCriterion("sale_agreement not like", value, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementIn(List values) { + addCriterion("sale_agreement in", values, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementNotIn(List values) { + addCriterion("sale_agreement not in", values, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementBetween(String value1, String value2) { + addCriterion("sale_agreement between", value1, value2, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andSaleAgreementNotBetween(String value1, String value2) { + addCriterion("sale_agreement not between", value1, value2, "saleAgreement"); + return (Criteria) this; + } + + public Criteria andDepotFlagIsNull() { + addCriterion("depot_flag is null"); + return (Criteria) this; + } + + public Criteria andDepotFlagIsNotNull() { + addCriterion("depot_flag is not null"); + return (Criteria) this; + } + + public Criteria andDepotFlagEqualTo(String value) { + addCriterion("depot_flag =", value, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagNotEqualTo(String value) { + addCriterion("depot_flag <>", value, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagGreaterThan(String value) { + addCriterion("depot_flag >", value, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagGreaterThanOrEqualTo(String value) { + addCriterion("depot_flag >=", value, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagLessThan(String value) { + addCriterion("depot_flag <", value, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagLessThanOrEqualTo(String value) { + addCriterion("depot_flag <=", value, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagLike(String value) { + addCriterion("depot_flag like", value, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagNotLike(String value) { + addCriterion("depot_flag not like", value, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagIn(List values) { + addCriterion("depot_flag in", values, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagNotIn(List values) { + addCriterion("depot_flag not in", values, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagBetween(String value1, String value2) { + addCriterion("depot_flag between", value1, value2, "depotFlag"); + return (Criteria) this; + } + + public Criteria andDepotFlagNotBetween(String value1, String value2) { + addCriterion("depot_flag not between", value1, value2, "depotFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagIsNull() { + addCriterion("customer_flag is null"); + return (Criteria) this; + } + + public Criteria andCustomerFlagIsNotNull() { + addCriterion("customer_flag is not null"); + return (Criteria) this; + } + + public Criteria andCustomerFlagEqualTo(String value) { + addCriterion("customer_flag =", value, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagNotEqualTo(String value) { + addCriterion("customer_flag <>", value, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagGreaterThan(String value) { + addCriterion("customer_flag >", value, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagGreaterThanOrEqualTo(String value) { + addCriterion("customer_flag >=", value, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagLessThan(String value) { + addCriterion("customer_flag <", value, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagLessThanOrEqualTo(String value) { + addCriterion("customer_flag <=", value, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagLike(String value) { + addCriterion("customer_flag like", value, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagNotLike(String value) { + addCriterion("customer_flag not like", value, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagIn(List values) { + addCriterion("customer_flag in", values, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagNotIn(List values) { + addCriterion("customer_flag not in", values, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagBetween(String value1, String value2) { + addCriterion("customer_flag between", value1, value2, "customerFlag"); + return (Criteria) this; + } + + public Criteria andCustomerFlagNotBetween(String value1, String value2) { + addCriterion("customer_flag not between", value1, value2, "customerFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagIsNull() { + addCriterion("minus_stock_flag is null"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagIsNotNull() { + addCriterion("minus_stock_flag is not null"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagEqualTo(String value) { + addCriterion("minus_stock_flag =", value, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagNotEqualTo(String value) { + addCriterion("minus_stock_flag <>", value, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagGreaterThan(String value) { + addCriterion("minus_stock_flag >", value, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagGreaterThanOrEqualTo(String value) { + addCriterion("minus_stock_flag >=", value, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagLessThan(String value) { + addCriterion("minus_stock_flag <", value, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagLessThanOrEqualTo(String value) { + addCriterion("minus_stock_flag <=", value, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagLike(String value) { + addCriterion("minus_stock_flag like", value, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagNotLike(String value) { + addCriterion("minus_stock_flag not like", value, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagIn(List values) { + addCriterion("minus_stock_flag in", values, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagNotIn(List values) { + addCriterion("minus_stock_flag not in", values, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagBetween(String value1, String value2) { + addCriterion("minus_stock_flag between", value1, value2, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andMinusStockFlagNotBetween(String value1, String value2) { + addCriterion("minus_stock_flag not between", value1, value2, "minusStockFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagIsNull() { + addCriterion("purchase_by_sale_flag is null"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagIsNotNull() { + addCriterion("purchase_by_sale_flag is not null"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagEqualTo(String value) { + addCriterion("purchase_by_sale_flag =", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagNotEqualTo(String value) { + addCriterion("purchase_by_sale_flag <>", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagGreaterThan(String value) { + addCriterion("purchase_by_sale_flag >", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagGreaterThanOrEqualTo(String value) { + addCriterion("purchase_by_sale_flag >=", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagLessThan(String value) { + addCriterion("purchase_by_sale_flag <", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagLessThanOrEqualTo(String value) { + addCriterion("purchase_by_sale_flag <=", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagLike(String value) { + addCriterion("purchase_by_sale_flag like", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagNotLike(String value) { + addCriterion("purchase_by_sale_flag not like", value, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagIn(List values) { + addCriterion("purchase_by_sale_flag in", values, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagNotIn(List values) { + addCriterion("purchase_by_sale_flag not in", values, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagBetween(String value1, String value2) { + addCriterion("purchase_by_sale_flag between", value1, value2, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andPurchaseBySaleFlagNotBetween(String value1, String value2) { + addCriterion("purchase_by_sale_flag not between", value1, value2, "purchaseBySaleFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagIsNull() { + addCriterion("multi_level_approval_flag is null"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagIsNotNull() { + addCriterion("multi_level_approval_flag is not null"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagEqualTo(String value) { + addCriterion("multi_level_approval_flag =", value, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagNotEqualTo(String value) { + addCriterion("multi_level_approval_flag <>", value, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagGreaterThan(String value) { + addCriterion("multi_level_approval_flag >", value, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagGreaterThanOrEqualTo(String value) { + addCriterion("multi_level_approval_flag >=", value, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagLessThan(String value) { + addCriterion("multi_level_approval_flag <", value, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagLessThanOrEqualTo(String value) { + addCriterion("multi_level_approval_flag <=", value, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagLike(String value) { + addCriterion("multi_level_approval_flag like", value, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagNotLike(String value) { + addCriterion("multi_level_approval_flag not like", value, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagIn(List values) { + addCriterion("multi_level_approval_flag in", values, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagNotIn(List values) { + addCriterion("multi_level_approval_flag not in", values, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagBetween(String value1, String value2) { + addCriterion("multi_level_approval_flag between", value1, value2, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiLevelApprovalFlagNotBetween(String value1, String value2) { + addCriterion("multi_level_approval_flag not between", value1, value2, "multiLevelApprovalFlag"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeIsNull() { + addCriterion("multi_bill_type is null"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeIsNotNull() { + addCriterion("multi_bill_type is not null"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeEqualTo(String value) { + addCriterion("multi_bill_type =", value, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeNotEqualTo(String value) { + addCriterion("multi_bill_type <>", value, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeGreaterThan(String value) { + addCriterion("multi_bill_type >", value, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeGreaterThanOrEqualTo(String value) { + addCriterion("multi_bill_type >=", value, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeLessThan(String value) { + addCriterion("multi_bill_type <", value, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeLessThanOrEqualTo(String value) { + addCriterion("multi_bill_type <=", value, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeLike(String value) { + addCriterion("multi_bill_type like", value, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeNotLike(String value) { + addCriterion("multi_bill_type not like", value, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeIn(List values) { + addCriterion("multi_bill_type in", values, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeNotIn(List values) { + addCriterion("multi_bill_type not in", values, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeBetween(String value1, String value2) { + addCriterion("multi_bill_type between", value1, value2, "multiBillType"); + return (Criteria) this; + } + + public Criteria andMultiBillTypeNotBetween(String value1, String value2) { + addCriterion("multi_bill_type not between", value1, value2, "multiBillType"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagIsNull() { + addCriterion("force_approval_flag is null"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagIsNotNull() { + addCriterion("force_approval_flag is not null"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagEqualTo(String value) { + addCriterion("force_approval_flag =", value, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagNotEqualTo(String value) { + addCriterion("force_approval_flag <>", value, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagGreaterThan(String value) { + addCriterion("force_approval_flag >", value, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagGreaterThanOrEqualTo(String value) { + addCriterion("force_approval_flag >=", value, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagLessThan(String value) { + addCriterion("force_approval_flag <", value, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagLessThanOrEqualTo(String value) { + addCriterion("force_approval_flag <=", value, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagLike(String value) { + addCriterion("force_approval_flag like", value, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagNotLike(String value) { + addCriterion("force_approval_flag not like", value, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagIn(List values) { + addCriterion("force_approval_flag in", values, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagNotIn(List values) { + addCriterion("force_approval_flag not in", values, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagBetween(String value1, String value2) { + addCriterion("force_approval_flag between", value1, value2, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andForceApprovalFlagNotBetween(String value1, String value2) { + addCriterion("force_approval_flag not between", value1, value2, "forceApprovalFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagIsNull() { + addCriterion("update_unit_price_flag is null"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagIsNotNull() { + addCriterion("update_unit_price_flag is not null"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagEqualTo(String value) { + addCriterion("update_unit_price_flag =", value, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagNotEqualTo(String value) { + addCriterion("update_unit_price_flag <>", value, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagGreaterThan(String value) { + addCriterion("update_unit_price_flag >", value, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagGreaterThanOrEqualTo(String value) { + addCriterion("update_unit_price_flag >=", value, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagLessThan(String value) { + addCriterion("update_unit_price_flag <", value, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagLessThanOrEqualTo(String value) { + addCriterion("update_unit_price_flag <=", value, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagLike(String value) { + addCriterion("update_unit_price_flag like", value, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagNotLike(String value) { + addCriterion("update_unit_price_flag not like", value, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagIn(List values) { + addCriterion("update_unit_price_flag in", values, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagNotIn(List values) { + addCriterion("update_unit_price_flag not in", values, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagBetween(String value1, String value2) { + addCriterion("update_unit_price_flag between", value1, value2, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andUpdateUnitPriceFlagNotBetween(String value1, String value2) { + addCriterion("update_unit_price_flag not between", value1, value2, "updateUnitPriceFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagIsNull() { + addCriterion("over_link_bill_flag is null"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagIsNotNull() { + addCriterion("over_link_bill_flag is not null"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagEqualTo(String value) { + addCriterion("over_link_bill_flag =", value, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagNotEqualTo(String value) { + addCriterion("over_link_bill_flag <>", value, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagGreaterThan(String value) { + addCriterion("over_link_bill_flag >", value, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagGreaterThanOrEqualTo(String value) { + addCriterion("over_link_bill_flag >=", value, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagLessThan(String value) { + addCriterion("over_link_bill_flag <", value, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagLessThanOrEqualTo(String value) { + addCriterion("over_link_bill_flag <=", value, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagLike(String value) { + addCriterion("over_link_bill_flag like", value, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagNotLike(String value) { + addCriterion("over_link_bill_flag not like", value, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagIn(List values) { + addCriterion("over_link_bill_flag in", values, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagNotIn(List values) { + addCriterion("over_link_bill_flag not in", values, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagBetween(String value1, String value2) { + addCriterion("over_link_bill_flag between", value1, value2, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andOverLinkBillFlagNotBetween(String value1, String value2) { + addCriterion("over_link_bill_flag not between", value1, value2, "overLinkBillFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagIsNull() { + addCriterion("in_out_manage_flag is null"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagIsNotNull() { + addCriterion("in_out_manage_flag is not null"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagEqualTo(String value) { + addCriterion("in_out_manage_flag =", value, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagNotEqualTo(String value) { + addCriterion("in_out_manage_flag <>", value, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagGreaterThan(String value) { + addCriterion("in_out_manage_flag >", value, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagGreaterThanOrEqualTo(String value) { + addCriterion("in_out_manage_flag >=", value, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagLessThan(String value) { + addCriterion("in_out_manage_flag <", value, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagLessThanOrEqualTo(String value) { + addCriterion("in_out_manage_flag <=", value, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagLike(String value) { + addCriterion("in_out_manage_flag like", value, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagNotLike(String value) { + addCriterion("in_out_manage_flag not like", value, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagIn(List values) { + addCriterion("in_out_manage_flag in", values, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagNotIn(List values) { + addCriterion("in_out_manage_flag not in", values, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagBetween(String value1, String value2) { + addCriterion("in_out_manage_flag between", value1, value2, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andInOutManageFlagNotBetween(String value1, String value2) { + addCriterion("in_out_manage_flag not between", value1, value2, "inOutManageFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagIsNull() { + addCriterion("multi_account_flag is null"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagIsNotNull() { + addCriterion("multi_account_flag is not null"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagEqualTo(String value) { + addCriterion("multi_account_flag =", value, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagNotEqualTo(String value) { + addCriterion("multi_account_flag <>", value, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagGreaterThan(String value) { + addCriterion("multi_account_flag >", value, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagGreaterThanOrEqualTo(String value) { + addCriterion("multi_account_flag >=", value, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagLessThan(String value) { + addCriterion("multi_account_flag <", value, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagLessThanOrEqualTo(String value) { + addCriterion("multi_account_flag <=", value, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagLike(String value) { + addCriterion("multi_account_flag like", value, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagNotLike(String value) { + addCriterion("multi_account_flag not like", value, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagIn(List values) { + addCriterion("multi_account_flag in", values, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagNotIn(List values) { + addCriterion("multi_account_flag not in", values, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagBetween(String value1, String value2) { + addCriterion("multi_account_flag between", value1, value2, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMultiAccountFlagNotBetween(String value1, String value2) { + addCriterion("multi_account_flag not between", value1, value2, "multiAccountFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagIsNull() { + addCriterion("move_avg_price_flag is null"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagIsNotNull() { + addCriterion("move_avg_price_flag is not null"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagEqualTo(String value) { + addCriterion("move_avg_price_flag =", value, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagNotEqualTo(String value) { + addCriterion("move_avg_price_flag <>", value, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagGreaterThan(String value) { + addCriterion("move_avg_price_flag >", value, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagGreaterThanOrEqualTo(String value) { + addCriterion("move_avg_price_flag >=", value, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagLessThan(String value) { + addCriterion("move_avg_price_flag <", value, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagLessThanOrEqualTo(String value) { + addCriterion("move_avg_price_flag <=", value, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagLike(String value) { + addCriterion("move_avg_price_flag like", value, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagNotLike(String value) { + addCriterion("move_avg_price_flag not like", value, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagIn(List values) { + addCriterion("move_avg_price_flag in", values, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagNotIn(List values) { + addCriterion("move_avg_price_flag not in", values, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagBetween(String value1, String value2) { + addCriterion("move_avg_price_flag between", value1, value2, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andMoveAvgPriceFlagNotBetween(String value1, String value2) { + addCriterion("move_avg_price_flag not between", value1, value2, "moveAvgPriceFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagIsNull() { + addCriterion("audit_print_flag is null"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagIsNotNull() { + addCriterion("audit_print_flag is not null"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagEqualTo(String value) { + addCriterion("audit_print_flag =", value, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagNotEqualTo(String value) { + addCriterion("audit_print_flag <>", value, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagGreaterThan(String value) { + addCriterion("audit_print_flag >", value, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagGreaterThanOrEqualTo(String value) { + addCriterion("audit_print_flag >=", value, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagLessThan(String value) { + addCriterion("audit_print_flag <", value, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagLessThanOrEqualTo(String value) { + addCriterion("audit_print_flag <=", value, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagLike(String value) { + addCriterion("audit_print_flag like", value, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagNotLike(String value) { + addCriterion("audit_print_flag not like", value, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagIn(List values) { + addCriterion("audit_print_flag in", values, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagNotIn(List values) { + addCriterion("audit_print_flag not in", values, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagBetween(String value1, String value2) { + addCriterion("audit_print_flag between", value1, value2, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andAuditPrintFlagNotBetween(String value1, String value2) { + addCriterion("audit_print_flag not between", value1, value2, "auditPrintFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagIsNull() { + addCriterion("zero_change_amount_flag is null"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagIsNotNull() { + addCriterion("zero_change_amount_flag is not null"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagEqualTo(String value) { + addCriterion("zero_change_amount_flag =", value, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagNotEqualTo(String value) { + addCriterion("zero_change_amount_flag <>", value, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagGreaterThan(String value) { + addCriterion("zero_change_amount_flag >", value, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagGreaterThanOrEqualTo(String value) { + addCriterion("zero_change_amount_flag >=", value, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagLessThan(String value) { + addCriterion("zero_change_amount_flag <", value, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagLessThanOrEqualTo(String value) { + addCriterion("zero_change_amount_flag <=", value, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagLike(String value) { + addCriterion("zero_change_amount_flag like", value, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagNotLike(String value) { + addCriterion("zero_change_amount_flag not like", value, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagIn(List values) { + addCriterion("zero_change_amount_flag in", values, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagNotIn(List values) { + addCriterion("zero_change_amount_flag not in", values, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagBetween(String value1, String value2) { + addCriterion("zero_change_amount_flag between", value1, value2, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andZeroChangeAmountFlagNotBetween(String value1, String value2) { + addCriterion("zero_change_amount_flag not between", value1, value2, "zeroChangeAmountFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagIsNull() { + addCriterion("customer_static_price_flag is null"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagIsNotNull() { + addCriterion("customer_static_price_flag is not null"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagEqualTo(String value) { + addCriterion("customer_static_price_flag =", value, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagNotEqualTo(String value) { + addCriterion("customer_static_price_flag <>", value, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagGreaterThan(String value) { + addCriterion("customer_static_price_flag >", value, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagGreaterThanOrEqualTo(String value) { + addCriterion("customer_static_price_flag >=", value, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagLessThan(String value) { + addCriterion("customer_static_price_flag <", value, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagLessThanOrEqualTo(String value) { + addCriterion("customer_static_price_flag <=", value, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagLike(String value) { + addCriterion("customer_static_price_flag like", value, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagNotLike(String value) { + addCriterion("customer_static_price_flag not like", value, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagIn(List values) { + addCriterion("customer_static_price_flag in", values, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagNotIn(List values) { + addCriterion("customer_static_price_flag not in", values, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagBetween(String value1, String value2) { + addCriterion("customer_static_price_flag between", value1, value2, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andCustomerStaticPriceFlagNotBetween(String value1, String value2) { + addCriterion("customer_static_price_flag not between", value1, value2, "customerStaticPriceFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagIsNull() { + addCriterion("material_price_tax_flag is null"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagIsNotNull() { + addCriterion("material_price_tax_flag is not null"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagEqualTo(String value) { + addCriterion("material_price_tax_flag =", value, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagNotEqualTo(String value) { + addCriterion("material_price_tax_flag <>", value, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagGreaterThan(String value) { + addCriterion("material_price_tax_flag >", value, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagGreaterThanOrEqualTo(String value) { + addCriterion("material_price_tax_flag >=", value, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagLessThan(String value) { + addCriterion("material_price_tax_flag <", value, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagLessThanOrEqualTo(String value) { + addCriterion("material_price_tax_flag <=", value, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagLike(String value) { + addCriterion("material_price_tax_flag like", value, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagNotLike(String value) { + addCriterion("material_price_tax_flag not like", value, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagIn(List values) { + addCriterion("material_price_tax_flag in", values, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagNotIn(List values) { + addCriterion("material_price_tax_flag not in", values, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagBetween(String value1, String value2) { + addCriterion("material_price_tax_flag between", value1, value2, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andMaterialPriceTaxFlagNotBetween(String value1, String value2) { + addCriterion("material_price_tax_flag not between", value1, value2, "materialPriceTaxFlag"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Tenant.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Tenant.java new file mode 100644 index 0000000..d2b12df --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Tenant.java @@ -0,0 +1,105 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +public class Tenant { + private Long id; + + private Long tenantId; + + private String loginName; + + private Integer userNumLimit; + + private String type; + + private Boolean enabled; + + private Date createTime; + + private Date expireTime; + + private String remark; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName == null ? null : loginName.trim(); + } + + public Integer getUserNumLimit() { + return userNumLimit; + } + + public void setUserNumLimit(Integer userNumLimit) { + this.userNumLimit = userNumLimit; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getExpireTime() { + return expireTime; + } + + public void setExpireTime(Date expireTime) { + this.expireTime = expireTime; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/TenantEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/TenantEx.java new file mode 100644 index 0000000..0303867 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/TenantEx.java @@ -0,0 +1,54 @@ +package com.reallin.smt.datasource.entities; + +public class TenantEx extends Tenant{ + + private String createTimeStr; + + private String expireTimeStr; + + private Integer userCount; + + private Long roleId; + + private String roleName; + + public String getCreateTimeStr() { + return createTimeStr; + } + + public void setCreateTimeStr(String createTimeStr) { + this.createTimeStr = createTimeStr; + } + + public String getExpireTimeStr() { + return expireTimeStr; + } + + public void setExpireTimeStr(String expireTimeStr) { + this.expireTimeStr = expireTimeStr; + } + + public Integer getUserCount() { + return userCount; + } + + public void setUserCount(Integer userCount) { + this.userCount = userCount; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/TenantExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/TenantExample.java new file mode 100644 index 0000000..bfaf742 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/TenantExample.java @@ -0,0 +1,840 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class TenantExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public TenantExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andLoginNameIsNull() { + addCriterion("login_name is null"); + return (Criteria) this; + } + + public Criteria andLoginNameIsNotNull() { + addCriterion("login_name is not null"); + return (Criteria) this; + } + + public Criteria andLoginNameEqualTo(String value) { + addCriterion("login_name =", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameNotEqualTo(String value) { + addCriterion("login_name <>", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameGreaterThan(String value) { + addCriterion("login_name >", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameGreaterThanOrEqualTo(String value) { + addCriterion("login_name >=", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameLessThan(String value) { + addCriterion("login_name <", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameLessThanOrEqualTo(String value) { + addCriterion("login_name <=", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameLike(String value) { + addCriterion("login_name like", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameNotLike(String value) { + addCriterion("login_name not like", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameIn(List values) { + addCriterion("login_name in", values, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameNotIn(List values) { + addCriterion("login_name not in", values, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameBetween(String value1, String value2) { + addCriterion("login_name between", value1, value2, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameNotBetween(String value1, String value2) { + addCriterion("login_name not between", value1, value2, "loginName"); + return (Criteria) this; + } + + public Criteria andUserNumLimitIsNull() { + addCriterion("user_num_limit is null"); + return (Criteria) this; + } + + public Criteria andUserNumLimitIsNotNull() { + addCriterion("user_num_limit is not null"); + return (Criteria) this; + } + + public Criteria andUserNumLimitEqualTo(Integer value) { + addCriterion("user_num_limit =", value, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitNotEqualTo(Integer value) { + addCriterion("user_num_limit <>", value, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitGreaterThan(Integer value) { + addCriterion("user_num_limit >", value, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitGreaterThanOrEqualTo(Integer value) { + addCriterion("user_num_limit >=", value, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitLessThan(Integer value) { + addCriterion("user_num_limit <", value, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitLessThanOrEqualTo(Integer value) { + addCriterion("user_num_limit <=", value, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitIn(List values) { + addCriterion("user_num_limit in", values, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitNotIn(List values) { + addCriterion("user_num_limit not in", values, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitBetween(Integer value1, Integer value2) { + addCriterion("user_num_limit between", value1, value2, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andUserNumLimitNotBetween(Integer value1, Integer value2) { + addCriterion("user_num_limit not between", value1, value2, "userNumLimit"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeIsNull() { + addCriterion("expire_time is null"); + return (Criteria) this; + } + + public Criteria andExpireTimeIsNotNull() { + addCriterion("expire_time is not null"); + return (Criteria) this; + } + + public Criteria andExpireTimeEqualTo(Date value) { + addCriterion("expire_time =", value, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeNotEqualTo(Date value) { + addCriterion("expire_time <>", value, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeGreaterThan(Date value) { + addCriterion("expire_time >", value, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeGreaterThanOrEqualTo(Date value) { + addCriterion("expire_time >=", value, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeLessThan(Date value) { + addCriterion("expire_time <", value, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeLessThanOrEqualTo(Date value) { + addCriterion("expire_time <=", value, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeIn(List values) { + addCriterion("expire_time in", values, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeNotIn(List values) { + addCriterion("expire_time not in", values, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeBetween(Date value1, Date value2) { + addCriterion("expire_time between", value1, value2, "expireTime"); + return (Criteria) this; + } + + public Criteria andExpireTimeNotBetween(Date value1, Date value2) { + addCriterion("expire_time not between", value1, value2, "expireTime"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Unit.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Unit.java new file mode 100644 index 0000000..bc5ed57 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/Unit.java @@ -0,0 +1,125 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; + +public class Unit { + private Long id; + + private String name; + + private String basicUnit; + + private String otherUnit; + + private String otherUnitTwo; + + private String otherUnitThree; + + private BigDecimal ratio; + + private BigDecimal ratioTwo; + + private BigDecimal ratioThree; + + private Boolean enabled; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getBasicUnit() { + return basicUnit; + } + + public void setBasicUnit(String basicUnit) { + this.basicUnit = basicUnit == null ? null : basicUnit.trim(); + } + + public String getOtherUnit() { + return otherUnit; + } + + public void setOtherUnit(String otherUnit) { + this.otherUnit = otherUnit == null ? null : otherUnit.trim(); + } + + public String getOtherUnitTwo() { + return otherUnitTwo; + } + + public void setOtherUnitTwo(String otherUnitTwo) { + this.otherUnitTwo = otherUnitTwo == null ? null : otherUnitTwo.trim(); + } + + public String getOtherUnitThree() { + return otherUnitThree; + } + + public void setOtherUnitThree(String otherUnitThree) { + this.otherUnitThree = otherUnitThree == null ? null : otherUnitThree.trim(); + } + + public BigDecimal getRatio() { + return ratio; + } + + public void setRatio(BigDecimal ratio) { + this.ratio = ratio; + } + + public BigDecimal getRatioTwo() { + return ratioTwo; + } + + public void setRatioTwo(BigDecimal ratioTwo) { + this.ratioTwo = ratioTwo; + } + + public BigDecimal getRatioThree() { + return ratioThree; + } + + public void setRatioThree(BigDecimal ratioThree) { + this.ratioThree = ratioThree; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UnitExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UnitExample.java new file mode 100644 index 0000000..7dc9233 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UnitExample.java @@ -0,0 +1,980 @@ +package com.reallin.smt.datasource.entities; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class UnitExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public UnitExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andBasicUnitIsNull() { + addCriterion("basic_unit is null"); + return (Criteria) this; + } + + public Criteria andBasicUnitIsNotNull() { + addCriterion("basic_unit is not null"); + return (Criteria) this; + } + + public Criteria andBasicUnitEqualTo(String value) { + addCriterion("basic_unit =", value, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitNotEqualTo(String value) { + addCriterion("basic_unit <>", value, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitGreaterThan(String value) { + addCriterion("basic_unit >", value, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitGreaterThanOrEqualTo(String value) { + addCriterion("basic_unit >=", value, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitLessThan(String value) { + addCriterion("basic_unit <", value, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitLessThanOrEqualTo(String value) { + addCriterion("basic_unit <=", value, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitLike(String value) { + addCriterion("basic_unit like", value, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitNotLike(String value) { + addCriterion("basic_unit not like", value, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitIn(List values) { + addCriterion("basic_unit in", values, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitNotIn(List values) { + addCriterion("basic_unit not in", values, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitBetween(String value1, String value2) { + addCriterion("basic_unit between", value1, value2, "basicUnit"); + return (Criteria) this; + } + + public Criteria andBasicUnitNotBetween(String value1, String value2) { + addCriterion("basic_unit not between", value1, value2, "basicUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitIsNull() { + addCriterion("other_unit is null"); + return (Criteria) this; + } + + public Criteria andOtherUnitIsNotNull() { + addCriterion("other_unit is not null"); + return (Criteria) this; + } + + public Criteria andOtherUnitEqualTo(String value) { + addCriterion("other_unit =", value, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitNotEqualTo(String value) { + addCriterion("other_unit <>", value, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitGreaterThan(String value) { + addCriterion("other_unit >", value, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitGreaterThanOrEqualTo(String value) { + addCriterion("other_unit >=", value, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitLessThan(String value) { + addCriterion("other_unit <", value, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitLessThanOrEqualTo(String value) { + addCriterion("other_unit <=", value, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitLike(String value) { + addCriterion("other_unit like", value, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitNotLike(String value) { + addCriterion("other_unit not like", value, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitIn(List values) { + addCriterion("other_unit in", values, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitNotIn(List values) { + addCriterion("other_unit not in", values, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitBetween(String value1, String value2) { + addCriterion("other_unit between", value1, value2, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitNotBetween(String value1, String value2) { + addCriterion("other_unit not between", value1, value2, "otherUnit"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoIsNull() { + addCriterion("other_unit_two is null"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoIsNotNull() { + addCriterion("other_unit_two is not null"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoEqualTo(String value) { + addCriterion("other_unit_two =", value, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoNotEqualTo(String value) { + addCriterion("other_unit_two <>", value, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoGreaterThan(String value) { + addCriterion("other_unit_two >", value, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoGreaterThanOrEqualTo(String value) { + addCriterion("other_unit_two >=", value, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoLessThan(String value) { + addCriterion("other_unit_two <", value, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoLessThanOrEqualTo(String value) { + addCriterion("other_unit_two <=", value, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoLike(String value) { + addCriterion("other_unit_two like", value, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoNotLike(String value) { + addCriterion("other_unit_two not like", value, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoIn(List values) { + addCriterion("other_unit_two in", values, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoNotIn(List values) { + addCriterion("other_unit_two not in", values, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoBetween(String value1, String value2) { + addCriterion("other_unit_two between", value1, value2, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitTwoNotBetween(String value1, String value2) { + addCriterion("other_unit_two not between", value1, value2, "otherUnitTwo"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeIsNull() { + addCriterion("other_unit_three is null"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeIsNotNull() { + addCriterion("other_unit_three is not null"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeEqualTo(String value) { + addCriterion("other_unit_three =", value, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeNotEqualTo(String value) { + addCriterion("other_unit_three <>", value, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeGreaterThan(String value) { + addCriterion("other_unit_three >", value, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeGreaterThanOrEqualTo(String value) { + addCriterion("other_unit_three >=", value, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeLessThan(String value) { + addCriterion("other_unit_three <", value, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeLessThanOrEqualTo(String value) { + addCriterion("other_unit_three <=", value, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeLike(String value) { + addCriterion("other_unit_three like", value, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeNotLike(String value) { + addCriterion("other_unit_three not like", value, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeIn(List values) { + addCriterion("other_unit_three in", values, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeNotIn(List values) { + addCriterion("other_unit_three not in", values, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeBetween(String value1, String value2) { + addCriterion("other_unit_three between", value1, value2, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andOtherUnitThreeNotBetween(String value1, String value2) { + addCriterion("other_unit_three not between", value1, value2, "otherUnitThree"); + return (Criteria) this; + } + + public Criteria andRatioIsNull() { + addCriterion("ratio is null"); + return (Criteria) this; + } + + public Criteria andRatioIsNotNull() { + addCriterion("ratio is not null"); + return (Criteria) this; + } + + public Criteria andRatioEqualTo(BigDecimal value) { + addCriterion("ratio =", value, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioNotEqualTo(BigDecimal value) { + addCriterion("ratio <>", value, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioGreaterThan(BigDecimal value) { + addCriterion("ratio >", value, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("ratio >=", value, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioLessThan(BigDecimal value) { + addCriterion("ratio <", value, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioLessThanOrEqualTo(BigDecimal value) { + addCriterion("ratio <=", value, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioIn(List values) { + addCriterion("ratio in", values, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioNotIn(List values) { + addCriterion("ratio not in", values, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("ratio between", value1, value2, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("ratio not between", value1, value2, "ratio"); + return (Criteria) this; + } + + public Criteria andRatioTwoIsNull() { + addCriterion("ratio_two is null"); + return (Criteria) this; + } + + public Criteria andRatioTwoIsNotNull() { + addCriterion("ratio_two is not null"); + return (Criteria) this; + } + + public Criteria andRatioTwoEqualTo(BigDecimal value) { + addCriterion("ratio_two =", value, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoNotEqualTo(BigDecimal value) { + addCriterion("ratio_two <>", value, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoGreaterThan(BigDecimal value) { + addCriterion("ratio_two >", value, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("ratio_two >=", value, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoLessThan(BigDecimal value) { + addCriterion("ratio_two <", value, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoLessThanOrEqualTo(BigDecimal value) { + addCriterion("ratio_two <=", value, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoIn(List values) { + addCriterion("ratio_two in", values, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoNotIn(List values) { + addCriterion("ratio_two not in", values, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("ratio_two between", value1, value2, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioTwoNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("ratio_two not between", value1, value2, "ratioTwo"); + return (Criteria) this; + } + + public Criteria andRatioThreeIsNull() { + addCriterion("ratio_three is null"); + return (Criteria) this; + } + + public Criteria andRatioThreeIsNotNull() { + addCriterion("ratio_three is not null"); + return (Criteria) this; + } + + public Criteria andRatioThreeEqualTo(BigDecimal value) { + addCriterion("ratio_three =", value, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeNotEqualTo(BigDecimal value) { + addCriterion("ratio_three <>", value, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeGreaterThan(BigDecimal value) { + addCriterion("ratio_three >", value, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("ratio_three >=", value, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeLessThan(BigDecimal value) { + addCriterion("ratio_three <", value, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeLessThanOrEqualTo(BigDecimal value) { + addCriterion("ratio_three <=", value, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeIn(List values) { + addCriterion("ratio_three in", values, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeNotIn(List values) { + addCriterion("ratio_three not in", values, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("ratio_three between", value1, value2, "ratioThree"); + return (Criteria) this; + } + + public Criteria andRatioThreeNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("ratio_three not between", value1, value2, "ratioThree"); + return (Criteria) this; + } + + public Criteria andEnabledIsNull() { + addCriterion("enabled is null"); + return (Criteria) this; + } + + public Criteria andEnabledIsNotNull() { + addCriterion("enabled is not null"); + return (Criteria) this; + } + + public Criteria andEnabledEqualTo(Boolean value) { + addCriterion("enabled =", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotEqualTo(Boolean value) { + addCriterion("enabled <>", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThan(Boolean value) { + addCriterion("enabled >", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledGreaterThanOrEqualTo(Boolean value) { + addCriterion("enabled >=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThan(Boolean value) { + addCriterion("enabled <", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledLessThanOrEqualTo(Boolean value) { + addCriterion("enabled <=", value, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledIn(List values) { + addCriterion("enabled in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotIn(List values) { + addCriterion("enabled not in", values, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledBetween(Boolean value1, Boolean value2) { + addCriterion("enabled between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andEnabledNotBetween(Boolean value1, Boolean value2) { + addCriterion("enabled not between", value1, value2, "enabled"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/User.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/User.java new file mode 100644 index 0000000..4484ee9 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/User.java @@ -0,0 +1,173 @@ +package com.reallin.smt.datasource.entities; + +public class User { + private Long id; + + private String username; + + private String loginName; + + private String password; + + private String leaderFlag; + + private String position; + + private String department; + + private String email; + + private String phonenum; + + private Byte ismanager; + + private Byte isystem; + + private Byte status; + + private String description; + + private String remark; + + private String weixinOpenId; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username == null ? null : username.trim(); + } + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName == null ? null : loginName.trim(); + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password == null ? null : password.trim(); + } + + public String getLeaderFlag() { + return leaderFlag; + } + + public void setLeaderFlag(String leaderFlag) { + this.leaderFlag = leaderFlag == null ? null : leaderFlag.trim(); + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position == null ? null : position.trim(); + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department == null ? null : department.trim(); + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email == null ? null : email.trim(); + } + + public String getPhonenum() { + return phonenum; + } + + public void setPhonenum(String phonenum) { + this.phonenum = phonenum == null ? null : phonenum.trim(); + } + + public Byte getIsmanager() { + return ismanager; + } + + public void setIsmanager(Byte ismanager) { + this.ismanager = ismanager; + } + + public Byte getIsystem() { + return isystem; + } + + public void setIsystem(Byte isystem) { + this.isystem = isystem; + } + + public Byte getStatus() { + return status; + } + + public void setStatus(Byte status) { + this.status = status; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description == null ? null : description.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getWeixinOpenId() { + return weixinOpenId; + } + + public void setWeixinOpenId(String weixinOpenId) { + this.weixinOpenId = weixinOpenId == null ? null : weixinOpenId.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserBusiness.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserBusiness.java new file mode 100644 index 0000000..a75969f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserBusiness.java @@ -0,0 +1,73 @@ +package com.reallin.smt.datasource.entities; + +public class UserBusiness { + private Long id; + + private String type; + + private String keyId; + + private String value; + + private String btnStr; + + private Long tenantId; + + private String deleteFlag; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public String getKeyId() { + return keyId; + } + + public void setKeyId(String keyId) { + this.keyId = keyId == null ? null : keyId.trim(); + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value == null ? null : value.trim(); + } + + public String getBtnStr() { + return btnStr; + } + + public void setBtnStr(String btnStr) { + this.btnStr = btnStr == null ? null : btnStr.trim(); + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + public String getDeleteFlag() { + return deleteFlag; + } + + public void setDeleteFlag(String deleteFlag) { + this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim(); + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserBusinessExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserBusinessExample.java new file mode 100644 index 0000000..1906c81 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserBusinessExample.java @@ -0,0 +1,669 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class UserBusinessExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public UserBusinessExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("type like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("type not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andKeyIdIsNull() { + addCriterion("key_id is null"); + return (Criteria) this; + } + + public Criteria andKeyIdIsNotNull() { + addCriterion("key_id is not null"); + return (Criteria) this; + } + + public Criteria andKeyIdEqualTo(String value) { + addCriterion("key_id =", value, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdNotEqualTo(String value) { + addCriterion("key_id <>", value, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdGreaterThan(String value) { + addCriterion("key_id >", value, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdGreaterThanOrEqualTo(String value) { + addCriterion("key_id >=", value, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdLessThan(String value) { + addCriterion("key_id <", value, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdLessThanOrEqualTo(String value) { + addCriterion("key_id <=", value, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdLike(String value) { + addCriterion("key_id like", value, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdNotLike(String value) { + addCriterion("key_id not like", value, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdIn(List values) { + addCriterion("key_id in", values, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdNotIn(List values) { + addCriterion("key_id not in", values, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdBetween(String value1, String value2) { + addCriterion("key_id between", value1, value2, "keyId"); + return (Criteria) this; + } + + public Criteria andKeyIdNotBetween(String value1, String value2) { + addCriterion("key_id not between", value1, value2, "keyId"); + return (Criteria) this; + } + + public Criteria andValueIsNull() { + addCriterion("value is null"); + return (Criteria) this; + } + + public Criteria andValueIsNotNull() { + addCriterion("value is not null"); + return (Criteria) this; + } + + public Criteria andValueEqualTo(String value) { + addCriterion("value =", value, "value"); + return (Criteria) this; + } + + public Criteria andValueNotEqualTo(String value) { + addCriterion("value <>", value, "value"); + return (Criteria) this; + } + + public Criteria andValueGreaterThan(String value) { + addCriterion("value >", value, "value"); + return (Criteria) this; + } + + public Criteria andValueGreaterThanOrEqualTo(String value) { + addCriterion("value >=", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLessThan(String value) { + addCriterion("value <", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLessThanOrEqualTo(String value) { + addCriterion("value <=", value, "value"); + return (Criteria) this; + } + + public Criteria andValueLike(String value) { + addCriterion("value like", value, "value"); + return (Criteria) this; + } + + public Criteria andValueNotLike(String value) { + addCriterion("value not like", value, "value"); + return (Criteria) this; + } + + public Criteria andValueIn(List values) { + addCriterion("value in", values, "value"); + return (Criteria) this; + } + + public Criteria andValueNotIn(List values) { + addCriterion("value not in", values, "value"); + return (Criteria) this; + } + + public Criteria andValueBetween(String value1, String value2) { + addCriterion("value between", value1, value2, "value"); + return (Criteria) this; + } + + public Criteria andValueNotBetween(String value1, String value2) { + addCriterion("value not between", value1, value2, "value"); + return (Criteria) this; + } + + public Criteria andBtnStrIsNull() { + addCriterion("btn_str is null"); + return (Criteria) this; + } + + public Criteria andBtnStrIsNotNull() { + addCriterion("btn_str is not null"); + return (Criteria) this; + } + + public Criteria andBtnStrEqualTo(String value) { + addCriterion("btn_str =", value, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrNotEqualTo(String value) { + addCriterion("btn_str <>", value, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrGreaterThan(String value) { + addCriterion("btn_str >", value, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrGreaterThanOrEqualTo(String value) { + addCriterion("btn_str >=", value, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrLessThan(String value) { + addCriterion("btn_str <", value, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrLessThanOrEqualTo(String value) { + addCriterion("btn_str <=", value, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrLike(String value) { + addCriterion("btn_str like", value, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrNotLike(String value) { + addCriterion("btn_str not like", value, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrIn(List values) { + addCriterion("btn_str in", values, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrNotIn(List values) { + addCriterion("btn_str not in", values, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrBetween(String value1, String value2) { + addCriterion("btn_str between", value1, value2, "btnStr"); + return (Criteria) this; + } + + public Criteria andBtnStrNotBetween(String value1, String value2) { + addCriterion("btn_str not between", value1, value2, "btnStr"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserEx.java new file mode 100644 index 0000000..c8a8033 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserEx.java @@ -0,0 +1,138 @@ +package com.reallin.smt.datasource.entities; + +import java.util.Date; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/3/8 15:12 + */ +public class UserEx extends User{ + //部门简称 + private String orgAbr; + //部门id + private Long orgaId; + //用户在部门中排序 + private String userBlngOrgaDsplSeq; + //部门用户关联关系id + private Long orgaUserRelId; + + private Long roleId; + + private String roleName; + + private String userType; + + private Integer userNumLimit; + + private String expireTime; + + private String leaderFlagStr; + + /** + * 验证码 + */ + private String code; + + /** + * 唯一标识 + */ + private String uuid; + + public String getOrgAbr() { + return orgAbr; + } + + public void setOrgAbr(String orgAbr) { + this.orgAbr = orgAbr; + } + + public Long getOrgaId() { + return orgaId; + } + + public void setOrgaId(Long orgaId) { + this.orgaId = orgaId; + } + + public String getUserBlngOrgaDsplSeq() { + return userBlngOrgaDsplSeq; + } + + public void setUserBlngOrgaDsplSeq(String userBlngOrgaDsplSeq) { + this.userBlngOrgaDsplSeq = userBlngOrgaDsplSeq; + } + + public Long getOrgaUserRelId() { + return orgaUserRelId; + } + + public void setOrgaUserRelId(Long orgaUserRelId) { + this.orgaUserRelId = orgaUserRelId; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + public String getUserType() { + return userType; + } + + public void setUserType(String userType) { + this.userType = userType; + } + + public Integer getUserNumLimit() { + return userNumLimit; + } + + public void setUserNumLimit(Integer userNumLimit) { + this.userNumLimit = userNumLimit; + } + + public String getExpireTime() { + return expireTime; + } + + public void setExpireTime(String expireTime) { + this.expireTime = expireTime; + } + + public String getLeaderFlagStr() { + return leaderFlagStr; + } + + public void setLeaderFlagStr(String leaderFlagStr) { + this.leaderFlagStr = leaderFlagStr; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserExample.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserExample.java new file mode 100644 index 0000000..1cfba1b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/entities/UserExample.java @@ -0,0 +1,1339 @@ +package com.reallin.smt.datasource.entities; + +import java.util.ArrayList; +import java.util.List; + +public class UserExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public UserExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andUsernameIsNull() { + addCriterion("username is null"); + return (Criteria) this; + } + + public Criteria andUsernameIsNotNull() { + addCriterion("username is not null"); + return (Criteria) this; + } + + public Criteria andUsernameEqualTo(String value) { + addCriterion("username =", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotEqualTo(String value) { + addCriterion("username <>", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameGreaterThan(String value) { + addCriterion("username >", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameGreaterThanOrEqualTo(String value) { + addCriterion("username >=", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLessThan(String value) { + addCriterion("username <", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLessThanOrEqualTo(String value) { + addCriterion("username <=", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLike(String value) { + addCriterion("username like", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotLike(String value) { + addCriterion("username not like", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameIn(List values) { + addCriterion("username in", values, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotIn(List values) { + addCriterion("username not in", values, "username"); + return (Criteria) this; + } + + public Criteria andUsernameBetween(String value1, String value2) { + addCriterion("username between", value1, value2, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotBetween(String value1, String value2) { + addCriterion("username not between", value1, value2, "username"); + return (Criteria) this; + } + + public Criteria andLoginNameIsNull() { + addCriterion("login_name is null"); + return (Criteria) this; + } + + public Criteria andLoginNameIsNotNull() { + addCriterion("login_name is not null"); + return (Criteria) this; + } + + public Criteria andLoginNameEqualTo(String value) { + addCriterion("login_name =", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameNotEqualTo(String value) { + addCriterion("login_name <>", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameGreaterThan(String value) { + addCriterion("login_name >", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameGreaterThanOrEqualTo(String value) { + addCriterion("login_name >=", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameLessThan(String value) { + addCriterion("login_name <", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameLessThanOrEqualTo(String value) { + addCriterion("login_name <=", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameLike(String value) { + addCriterion("login_name like", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameNotLike(String value) { + addCriterion("login_name not like", value, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameIn(List values) { + addCriterion("login_name in", values, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameNotIn(List values) { + addCriterion("login_name not in", values, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameBetween(String value1, String value2) { + addCriterion("login_name between", value1, value2, "loginName"); + return (Criteria) this; + } + + public Criteria andLoginNameNotBetween(String value1, String value2) { + addCriterion("login_name not between", value1, value2, "loginName"); + return (Criteria) this; + } + + public Criteria andPasswordIsNull() { + addCriterion("password is null"); + return (Criteria) this; + } + + public Criteria andPasswordIsNotNull() { + addCriterion("password is not null"); + return (Criteria) this; + } + + public Criteria andPasswordEqualTo(String value) { + addCriterion("password =", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotEqualTo(String value) { + addCriterion("password <>", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordGreaterThan(String value) { + addCriterion("password >", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordGreaterThanOrEqualTo(String value) { + addCriterion("password >=", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLessThan(String value) { + addCriterion("password <", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLessThanOrEqualTo(String value) { + addCriterion("password <=", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLike(String value) { + addCriterion("password like", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotLike(String value) { + addCriterion("password not like", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordIn(List values) { + addCriterion("password in", values, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotIn(List values) { + addCriterion("password not in", values, "password"); + return (Criteria) this; + } + + public Criteria andPasswordBetween(String value1, String value2) { + addCriterion("password between", value1, value2, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotBetween(String value1, String value2) { + addCriterion("password not between", value1, value2, "password"); + return (Criteria) this; + } + + public Criteria andLeaderFlagIsNull() { + addCriterion("leader_flag is null"); + return (Criteria) this; + } + + public Criteria andLeaderFlagIsNotNull() { + addCriterion("leader_flag is not null"); + return (Criteria) this; + } + + public Criteria andLeaderFlagEqualTo(String value) { + addCriterion("leader_flag =", value, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagNotEqualTo(String value) { + addCriterion("leader_flag <>", value, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagGreaterThan(String value) { + addCriterion("leader_flag >", value, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagGreaterThanOrEqualTo(String value) { + addCriterion("leader_flag >=", value, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagLessThan(String value) { + addCriterion("leader_flag <", value, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagLessThanOrEqualTo(String value) { + addCriterion("leader_flag <=", value, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagLike(String value) { + addCriterion("leader_flag like", value, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagNotLike(String value) { + addCriterion("leader_flag not like", value, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagIn(List values) { + addCriterion("leader_flag in", values, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagNotIn(List values) { + addCriterion("leader_flag not in", values, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagBetween(String value1, String value2) { + addCriterion("leader_flag between", value1, value2, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andLeaderFlagNotBetween(String value1, String value2) { + addCriterion("leader_flag not between", value1, value2, "leaderFlag"); + return (Criteria) this; + } + + public Criteria andPositionIsNull() { + addCriterion("position is null"); + return (Criteria) this; + } + + public Criteria andPositionIsNotNull() { + addCriterion("position is not null"); + return (Criteria) this; + } + + public Criteria andPositionEqualTo(String value) { + addCriterion("position =", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionNotEqualTo(String value) { + addCriterion("position <>", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionGreaterThan(String value) { + addCriterion("position >", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionGreaterThanOrEqualTo(String value) { + addCriterion("position >=", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionLessThan(String value) { + addCriterion("position <", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionLessThanOrEqualTo(String value) { + addCriterion("position <=", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionLike(String value) { + addCriterion("position like", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionNotLike(String value) { + addCriterion("position not like", value, "position"); + return (Criteria) this; + } + + public Criteria andPositionIn(List values) { + addCriterion("position in", values, "position"); + return (Criteria) this; + } + + public Criteria andPositionNotIn(List values) { + addCriterion("position not in", values, "position"); + return (Criteria) this; + } + + public Criteria andPositionBetween(String value1, String value2) { + addCriterion("position between", value1, value2, "position"); + return (Criteria) this; + } + + public Criteria andPositionNotBetween(String value1, String value2) { + addCriterion("position not between", value1, value2, "position"); + return (Criteria) this; + } + + public Criteria andDepartmentIsNull() { + addCriterion("department is null"); + return (Criteria) this; + } + + public Criteria andDepartmentIsNotNull() { + addCriterion("department is not null"); + return (Criteria) this; + } + + public Criteria andDepartmentEqualTo(String value) { + addCriterion("department =", value, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentNotEqualTo(String value) { + addCriterion("department <>", value, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentGreaterThan(String value) { + addCriterion("department >", value, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentGreaterThanOrEqualTo(String value) { + addCriterion("department >=", value, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentLessThan(String value) { + addCriterion("department <", value, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentLessThanOrEqualTo(String value) { + addCriterion("department <=", value, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentLike(String value) { + addCriterion("department like", value, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentNotLike(String value) { + addCriterion("department not like", value, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentIn(List values) { + addCriterion("department in", values, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentNotIn(List values) { + addCriterion("department not in", values, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentBetween(String value1, String value2) { + addCriterion("department between", value1, value2, "department"); + return (Criteria) this; + } + + public Criteria andDepartmentNotBetween(String value1, String value2) { + addCriterion("department not between", value1, value2, "department"); + return (Criteria) this; + } + + public Criteria andEmailIsNull() { + addCriterion("email is null"); + return (Criteria) this; + } + + public Criteria andEmailIsNotNull() { + addCriterion("email is not null"); + return (Criteria) this; + } + + public Criteria andEmailEqualTo(String value) { + addCriterion("email =", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailNotEqualTo(String value) { + addCriterion("email <>", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailGreaterThan(String value) { + addCriterion("email >", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailGreaterThanOrEqualTo(String value) { + addCriterion("email >=", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailLessThan(String value) { + addCriterion("email <", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailLessThanOrEqualTo(String value) { + addCriterion("email <=", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailLike(String value) { + addCriterion("email like", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailNotLike(String value) { + addCriterion("email not like", value, "email"); + return (Criteria) this; + } + + public Criteria andEmailIn(List values) { + addCriterion("email in", values, "email"); + return (Criteria) this; + } + + public Criteria andEmailNotIn(List values) { + addCriterion("email not in", values, "email"); + return (Criteria) this; + } + + public Criteria andEmailBetween(String value1, String value2) { + addCriterion("email between", value1, value2, "email"); + return (Criteria) this; + } + + public Criteria andEmailNotBetween(String value1, String value2) { + addCriterion("email not between", value1, value2, "email"); + return (Criteria) this; + } + + public Criteria andPhonenumIsNull() { + addCriterion("phonenum is null"); + return (Criteria) this; + } + + public Criteria andPhonenumIsNotNull() { + addCriterion("phonenum is not null"); + return (Criteria) this; + } + + public Criteria andPhonenumEqualTo(String value) { + addCriterion("phonenum =", value, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumNotEqualTo(String value) { + addCriterion("phonenum <>", value, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumGreaterThan(String value) { + addCriterion("phonenum >", value, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumGreaterThanOrEqualTo(String value) { + addCriterion("phonenum >=", value, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumLessThan(String value) { + addCriterion("phonenum <", value, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumLessThanOrEqualTo(String value) { + addCriterion("phonenum <=", value, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumLike(String value) { + addCriterion("phonenum like", value, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumNotLike(String value) { + addCriterion("phonenum not like", value, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumIn(List values) { + addCriterion("phonenum in", values, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumNotIn(List values) { + addCriterion("phonenum not in", values, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumBetween(String value1, String value2) { + addCriterion("phonenum between", value1, value2, "phonenum"); + return (Criteria) this; + } + + public Criteria andPhonenumNotBetween(String value1, String value2) { + addCriterion("phonenum not between", value1, value2, "phonenum"); + return (Criteria) this; + } + + public Criteria andIsmanagerIsNull() { + addCriterion("ismanager is null"); + return (Criteria) this; + } + + public Criteria andIsmanagerIsNotNull() { + addCriterion("ismanager is not null"); + return (Criteria) this; + } + + public Criteria andIsmanagerEqualTo(Byte value) { + addCriterion("ismanager =", value, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerNotEqualTo(Byte value) { + addCriterion("ismanager <>", value, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerGreaterThan(Byte value) { + addCriterion("ismanager >", value, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerGreaterThanOrEqualTo(Byte value) { + addCriterion("ismanager >=", value, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerLessThan(Byte value) { + addCriterion("ismanager <", value, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerLessThanOrEqualTo(Byte value) { + addCriterion("ismanager <=", value, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerIn(List values) { + addCriterion("ismanager in", values, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerNotIn(List values) { + addCriterion("ismanager not in", values, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerBetween(Byte value1, Byte value2) { + addCriterion("ismanager between", value1, value2, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsmanagerNotBetween(Byte value1, Byte value2) { + addCriterion("ismanager not between", value1, value2, "ismanager"); + return (Criteria) this; + } + + public Criteria andIsystemIsNull() { + addCriterion("isystem is null"); + return (Criteria) this; + } + + public Criteria andIsystemIsNotNull() { + addCriterion("isystem is not null"); + return (Criteria) this; + } + + public Criteria andIsystemEqualTo(Byte value) { + addCriterion("isystem =", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemNotEqualTo(Byte value) { + addCriterion("isystem <>", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemGreaterThan(Byte value) { + addCriterion("isystem >", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemGreaterThanOrEqualTo(Byte value) { + addCriterion("isystem >=", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemLessThan(Byte value) { + addCriterion("isystem <", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemLessThanOrEqualTo(Byte value) { + addCriterion("isystem <=", value, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemIn(List values) { + addCriterion("isystem in", values, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemNotIn(List values) { + addCriterion("isystem not in", values, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemBetween(Byte value1, Byte value2) { + addCriterion("isystem between", value1, value2, "isystem"); + return (Criteria) this; + } + + public Criteria andIsystemNotBetween(Byte value1, Byte value2) { + addCriterion("isystem not between", value1, value2, "isystem"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(Byte value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Byte value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Byte value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Byte value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Byte value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(Byte value1, Byte value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Byte value1, Byte value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andRemarkIsNull() { + addCriterion("remark is null"); + return (Criteria) this; + } + + public Criteria andRemarkIsNotNull() { + addCriterion("remark is not null"); + return (Criteria) this; + } + + public Criteria andRemarkEqualTo(String value) { + addCriterion("remark =", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotEqualTo(String value) { + addCriterion("remark <>", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThan(String value) { + addCriterion("remark >", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkGreaterThanOrEqualTo(String value) { + addCriterion("remark >=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThan(String value) { + addCriterion("remark <", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLessThanOrEqualTo(String value) { + addCriterion("remark <=", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkLike(String value) { + addCriterion("remark like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotLike(String value) { + addCriterion("remark not like", value, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkIn(List values) { + addCriterion("remark in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotIn(List values) { + addCriterion("remark not in", values, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkBetween(String value1, String value2) { + addCriterion("remark between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andRemarkNotBetween(String value1, String value2) { + addCriterion("remark not between", value1, value2, "remark"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdIsNull() { + addCriterion("weixin_open_id is null"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdIsNotNull() { + addCriterion("weixin_open_id is not null"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdEqualTo(String value) { + addCriterion("weixin_open_id =", value, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdNotEqualTo(String value) { + addCriterion("weixin_open_id <>", value, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdGreaterThan(String value) { + addCriterion("weixin_open_id >", value, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdGreaterThanOrEqualTo(String value) { + addCriterion("weixin_open_id >=", value, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdLessThan(String value) { + addCriterion("weixin_open_id <", value, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdLessThanOrEqualTo(String value) { + addCriterion("weixin_open_id <=", value, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdLike(String value) { + addCriterion("weixin_open_id like", value, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdNotLike(String value) { + addCriterion("weixin_open_id not like", value, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdIn(List values) { + addCriterion("weixin_open_id in", values, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdNotIn(List values) { + addCriterion("weixin_open_id not in", values, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdBetween(String value1, String value2) { + addCriterion("weixin_open_id between", value1, value2, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andWeixinOpenIdNotBetween(String value1, String value2) { + addCriterion("weixin_open_id not between", value1, value2, "weixinOpenId"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNull() { + addCriterion("tenant_id is null"); + return (Criteria) this; + } + + public Criteria andTenantIdIsNotNull() { + addCriterion("tenant_id is not null"); + return (Criteria) this; + } + + public Criteria andTenantIdEqualTo(Long value) { + addCriterion("tenant_id =", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotEqualTo(Long value) { + addCriterion("tenant_id <>", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThan(Long value) { + addCriterion("tenant_id >", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdGreaterThanOrEqualTo(Long value) { + addCriterion("tenant_id >=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThan(Long value) { + addCriterion("tenant_id <", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdLessThanOrEqualTo(Long value) { + addCriterion("tenant_id <=", value, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdIn(List values) { + addCriterion("tenant_id in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotIn(List values) { + addCriterion("tenant_id not in", values, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdBetween(Long value1, Long value2) { + addCriterion("tenant_id between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andTenantIdNotBetween(Long value1, Long value2) { + addCriterion("tenant_id not between", value1, value2, "tenantId"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNull() { + addCriterion("delete_flag is null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIsNotNull() { + addCriterion("delete_flag is not null"); + return (Criteria) this; + } + + public Criteria andDeleteFlagEqualTo(String value) { + addCriterion("delete_flag =", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotEqualTo(String value) { + addCriterion("delete_flag <>", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThan(String value) { + addCriterion("delete_flag >", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) { + addCriterion("delete_flag >=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThan(String value) { + addCriterion("delete_flag <", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLessThanOrEqualTo(String value) { + addCriterion("delete_flag <=", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagLike(String value) { + addCriterion("delete_flag like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotLike(String value) { + addCriterion("delete_flag not like", value, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagIn(List values) { + addCriterion("delete_flag in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotIn(List values) { + addCriterion("delete_flag not in", values, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagBetween(String value1, String value2) { + addCriterion("delete_flag between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + + public Criteria andDeleteFlagNotBetween(String value1, String value2) { + addCriterion("delete_flag not between", value1, value2, "deleteFlag"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountHeadMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountHeadMapper.java new file mode 100644 index 0000000..6c8a6cd --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountHeadMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.AccountHead; +import com.reallin.smt.datasource.entities.AccountHeadExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface AccountHeadMapper { + long countByExample(AccountHeadExample example); + + int deleteByExample(AccountHeadExample example); + + int deleteByPrimaryKey(Long id); + + int insert(AccountHead record); + + int insertSelective(AccountHead record); + + List selectByExample(AccountHeadExample example); + + AccountHead selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") AccountHead record, @Param("example") AccountHeadExample example); + + int updateByExample(@Param("record") AccountHead record, @Param("example") AccountHeadExample example); + + int updateByPrimaryKeySelective(AccountHead record); + + int updateByPrimaryKey(AccountHead record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountHeadMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountHeadMapperEx.java new file mode 100644 index 0000000..fd3541b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountHeadMapperEx.java @@ -0,0 +1,49 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.AccountHead; +import com.reallin.smt.datasource.entities.AccountHeadExample; +import com.reallin.smt.datasource.entities.AccountHeadVo4ListEx; +import com.reallin.smt.datasource.entities.AccountItem; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +public interface AccountHeadMapperEx { + + List selectByConditionAccountHead( + @Param("type") String type, + @Param("creatorArray") String[] creatorArray, + @Param("billNo") String billNo, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("organId") Long organId, + @Param("creator") Long creator, + @Param("handsPersonId") Long handsPersonId, + @Param("accountId") Long accountId, + @Param("status") String status, + @Param("remark") String remark, + @Param("number") String number, + @Param("inOutItemId") Long inOutItemId); + + List getDetailByNumber( + @Param("billNo") String billNo); + + int batchDeleteAccountHeadByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String[] ids); + + List getAccountHeadListByAccountIds(@Param("accountIds") String[] accountIds); + + List getAccountHeadListByOrganIds(@Param("organIds") String[] organIds); + + List getAccountHeadListByHandsPersonIds(@Param("handsPersonIds") String[] handsPersonIds); + + List getFinancialBillPriceByBillIdList( + @Param("idList") List idList); + + List getFinancialBillNoByBillId( + @Param("billId") Long billId); + + BigDecimal getFinancialAllPriceByOrganId( + @Param("organId") Long organId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountItemMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountItemMapper.java new file mode 100644 index 0000000..bf5d836 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountItemMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.AccountItem; +import com.reallin.smt.datasource.entities.AccountItemExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface AccountItemMapper { + long countByExample(AccountItemExample example); + + int deleteByExample(AccountItemExample example); + + int deleteByPrimaryKey(Long id); + + int insert(AccountItem record); + + int insertSelective(AccountItem record); + + List selectByExample(AccountItemExample example); + + AccountItem selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") AccountItem record, @Param("example") AccountItemExample example); + + int updateByExample(@Param("record") AccountItem record, @Param("example") AccountItemExample example); + + int updateByPrimaryKeySelective(AccountItem record); + + int updateByPrimaryKey(AccountItem record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountItemMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountItemMapperEx.java new file mode 100644 index 0000000..5241d01 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountItemMapperEx.java @@ -0,0 +1,42 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.AccountItem; +import com.reallin.smt.datasource.entities.AccountItemExample; +import com.reallin.smt.datasource.vo.AccountItemVo4List; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +public interface AccountItemMapperEx { + + List selectByConditionAccountItem( + @Param("name") String name, + @Param("type") Integer type, + @Param("remark") String remark, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + Long countsByAccountItem( + @Param("name") String name, + @Param("type") Integer type, + @Param("remark") String remark); + + List getDetailList( + @Param("headerId") Long headerId); + + int batchDeleteAccountItemByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String[] ids); + + List getAccountItemListByAccountIds(@Param("accountIds") String[] accountIds); + + List getAccountItemListByHeaderIds(@Param("headerIds") String[] headerIds); + + List getAccountItemListByInOutItemIds(@Param("inOutItemIds") String[] inOutItemIds); + + int batchDeleteAccountItemByHeadIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String[] ids); + + BigDecimal getEachAmountByBillId(@Param("billId") Long billId); + + BigDecimal getFinishDebtByOrganId(@Param("organId") Long organId); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountMapper.java new file mode 100644 index 0000000..012b72c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Account; +import com.reallin.smt.datasource.entities.AccountExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface AccountMapper { + long countByExample(AccountExample example); + + int deleteByExample(AccountExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Account record); + + int insertSelective(Account record); + + List selectByExample(AccountExample example); + + Account selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Account record, @Param("example") AccountExample example); + + int updateByExample(@Param("record") Account record, @Param("example") AccountExample example); + + int updateByPrimaryKeySelective(Account record); + + int updateByPrimaryKey(Account record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountMapperEx.java new file mode 100644 index 0000000..9535887 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AccountMapperEx.java @@ -0,0 +1,81 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Account; +import com.reallin.smt.datasource.entities.AccountVo4Sum; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.vo.AccountVo4InOutList; +import com.reallin.smt.datasource.vo.AccountVo4List; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +public interface AccountMapperEx { + + List getAccountByParam( + @Param("name") String name, + @Param("serialNo") String serialNo); + + List selectByConditionAccount( + @Param("name") String name, + @Param("serialNo") String serialNo, + @Param("remark") String remark); + + BigDecimal getAccountSum( + @Param("accountId") Long accountId, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("forceFlag") Boolean forceFlag); + + BigDecimal getAccountSumByHead( + @Param("accountId") Long accountId, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("forceFlag") Boolean forceFlag); + + BigDecimal getAccountSumByDetail( + @Param("accountId") Long accountId, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("forceFlag") Boolean forceFlag); + + List getManyAccountSum( + @Param("accountId") Long accountId, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("forceFlag") Boolean forceFlag); + + List getAccountSumByParam( + @Param("name") String name, + @Param("serialNo") String serialNo, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("forceFlag") Boolean forceFlag, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + List getManyAccountSumByParam( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("forceFlag") Boolean forceFlag); + + List findAccountInOutList( + @Param("accountId") Long accountId, + @Param("number") String number, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("forceFlag") Boolean forceFlag, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int findAccountInOutListCount( + @Param("accountId") Long accountId, + @Param("number") String number, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("forceFlag") Boolean forceFlag); + + int batchDeleteAccountByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AssetManagementMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AssetManagementMapper.java new file mode 100644 index 0000000..56481d0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/AssetManagementMapper.java @@ -0,0 +1,77 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Asset; +import com.reallin.smt.datasource.entities.AssetCategory; +import com.reallin.smt.datasource.entities.AssetDevice; +import com.reallin.smt.datasource.entities.AssetInventory; +import com.reallin.smt.datasource.entities.AssetInventoryDetail; +import com.reallin.smt.datasource.vo.InventoryOperatorOption; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +public interface AssetManagementMapper { + Map selectAssetDashboardSummary(); + List> selectAssetCategoryDistribution(); + List> selectAssetStatusDistribution(); + List> selectAssetDepartmentDistribution(); + List> selectDeviceCategoryDistribution(); + List> selectRecentAssetInventories(); + + List selectAssets(@Param("keyword") String keyword, @Param("categoryId") Long categoryId, + @Param("status") String status); + Asset selectAssetById(@Param("id") Long id); + int countAssetCode(@Param("assetCode") String assetCode, @Param("excludeId") Long excludeId); + int insertAsset(Asset record); + int updateAsset(Asset record); + int deleteAsset(@Param("id") Long id, @Param("userId") Long userId); + + List selectAssetCategories(@Param("keyword") String keyword, + @Param("enabled") Boolean enabled); + AssetCategory selectAssetCategoryById(@Param("id") Long id); + int countAssetCategoryCode(@Param("categoryCode") String categoryCode, + @Param("excludeId") Long excludeId); + int countAssetCategoryName(@Param("categoryName") String categoryName, + @Param("excludeId") Long excludeId); + int countAssetsByCategory(@Param("categoryId") Long categoryId); + int insertAssetCategory(AssetCategory record); + int updateAssetCategory(AssetCategory record); + int deleteAssetCategory(@Param("id") Long id, @Param("userId") Long userId); + + List selectDevices(@Param("keyword") String keyword, @Param("category") String category, + @Param("status") String status); + List selectDeviceOptions(); + AssetDevice selectDeviceById(@Param("id") Long id); + int countDeviceCode(@Param("deviceCode") String deviceCode, @Param("excludeId") Long excludeId); + int insertDevice(AssetDevice record); + int updateDevice(AssetDevice record); + int deleteDevice(@Param("id") Long id, @Param("userId") Long userId); + + List selectInventories(@Param("keyword") String keyword, @Param("status") String status, + @Param("scopeType") String scopeType, + @Param("plannedStart") String plannedStart, + @Param("plannedEnd") String plannedEnd, + @Param("inventoryUserId") Long inventoryUserId); + List selectInventoryOperators(); + InventoryOperatorOption selectInventoryOperatorById(@Param("id") Long id); + AssetInventory selectInventoryById(@Param("id") Long id); + AssetInventory selectInventoryByNo(@Param("inventoryNo") String inventoryNo); + AssetInventory selectInventoryByExternalRequestId(@Param("externalRequestId") String externalRequestId); + int insertInventory(AssetInventory record); + int updateInventory(AssetInventory record); + int deleteInventory(@Param("id") Long id, @Param("userId") Long userId); + + List selectInventoryDetails(@Param("inventoryId") Long inventoryId, + @Param("inventoryStatus") String inventoryStatus, + @Param("keyword") String keyword); + List> selectInventoryDetailImages(@Param("inventoryId") Long inventoryId); + AssetInventoryDetail selectInventoryDetail(@Param("id") Long id, @Param("inventoryId") Long inventoryId, + @Param("targetCode") String targetCode); + int insertInventoryDetail(AssetInventoryDetail record); + int updateInventoryDetail(AssetInventoryDetail record); + Map countInventoryDetails(@Param("inventoryId") Long inventoryId); + int updateDeviceInventoryTime(@Param("deviceId") Long deviceId); + int countLinkedDevices(@Param("assetId") Long assetId); + int countOpenInventoryTarget(@Param("targetType") String targetType, @Param("targetId") Long targetId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerCategoryMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerCategoryMapper.java new file mode 100644 index 0000000..a3671c8 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerCategoryMapper.java @@ -0,0 +1,21 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.CustomerCategory; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface CustomerCategoryMapper { + int deleteByPrimaryKey(Long id); + + int insert(CustomerCategory record); + + int insertSelective(CustomerCategory record); + + CustomerCategory selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(CustomerCategory record); + + int updateByPrimaryKey(CustomerCategory record); + + List selectAll(); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerCategoryMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerCategoryMapperEx.java new file mode 100644 index 0000000..afac6df --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerCategoryMapperEx.java @@ -0,0 +1,18 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.CustomerCategory; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface CustomerCategoryMapperEx { + + List selectByCondition( + @Param("categoryName") String categoryName, + @Param("parentId") Long parentId); + + int batchDeleteByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + List getTreeList(); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerContactMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerContactMapper.java new file mode 100644 index 0000000..ee0741f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerContactMapper.java @@ -0,0 +1,21 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.CustomerContact; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface CustomerContactMapper { + int deleteByPrimaryKey(Long id); + + int insert(CustomerContact record); + + int insertSelective(CustomerContact record); + + CustomerContact selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(CustomerContact record); + + int updateByPrimaryKey(CustomerContact record); + + List selectByCustomerId(@Param("customerId") Long customerId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerContactMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerContactMapperEx.java new file mode 100644 index 0000000..58e2116 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/CustomerContactMapperEx.java @@ -0,0 +1,18 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.CustomerContact; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface CustomerContactMapperEx { + + List selectByCondition( + @Param("customerId") Long customerId, + @Param("contactName") String contactName); + + int batchDeleteByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + int deleteByCustomerId(@Param("customerId") Long customerId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DeliveryPlanMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DeliveryPlanMapper.java new file mode 100644 index 0000000..e506f0f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DeliveryPlanMapper.java @@ -0,0 +1,44 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.DeliveryPlan; +import com.reallin.smt.datasource.entities.DeliveryPlanItem; +import com.reallin.smt.datasource.vo.DeliveryPlanVo4List; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.List; + +public interface DeliveryPlanMapper { + DeliveryPlan selectByPrimaryKey(@Param("id") Long id); + + List selectList(@Param("planNumber") String planNumber, + @Param("sourceBillNumber") String sourceBillNumber, + @Param("saleOrderNumber") String saleOrderNumber, + @Param("sourceType") String sourceType, + @Param("status") String status, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + int insertSelective(DeliveryPlan record); + + int updateByPrimaryKeySelective(DeliveryPlan record); + + int batchInsertItems(@Param("list") List list); + + int batchDeleteItemsByPlanId(@Param("planId") Long planId); + + int updateItemPlanQuantity(@Param("id") Long id, + @Param("planQuantity") BigDecimal planQuantity, + @Param("remark") String remark); + + List selectItemsByPlanId(@Param("planId") Long planId); + + List selectBillItemsForPlan(@Param("sourceBillId") Long sourceBillId); + + BigDecimal getPlannedQuantityBySourceItemId(@Param("sourceItemId") Long sourceItemId, + @Param("excludePlanId") Long excludePlanId); + + BigDecimal getShippedQuantityByPlanItemId(@Param("planItemId") Long planItemId); + + BigDecimal getCommittedQuantityByPlanItemId(@Param("planItemId") Long planItemId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotHeadMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotHeadMapper.java new file mode 100644 index 0000000..727e2d2 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotHeadMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.DepotHeadExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface DepotHeadMapper { + long countByExample(DepotHeadExample example); + + int deleteByExample(DepotHeadExample example); + + int deleteByPrimaryKey(Long id); + + int insert(DepotHead record); + + int insertSelective(DepotHead record); + + List selectByExample(DepotHeadExample example); + + DepotHead selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") DepotHead record, @Param("example") DepotHeadExample example); + + int updateByExample(@Param("record") DepotHead record, @Param("example") DepotHeadExample example); + + int updateByPrimaryKeySelective(DepotHead record); + + int updateByPrimaryKey(DepotHead record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotHeadMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotHeadMapperEx.java new file mode 100644 index 0000000..99b788f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotHeadMapperEx.java @@ -0,0 +1,311 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.vo.*; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/1/25 14:50 + */ +public interface DepotHeadMapperEx { + List selectByConditionDepotHead( + @Param("type") String type, + @Param("subType") String subType, + @Param("creatorArray") String[] creatorArray, + @Param("hasDebt") String hasDebt, + @Param("hasLastDebt") String hasLastDebt, + @Param("statusArray") String[] statusArray, + @Param("purchaseStatusArray") String[] purchaseStatusArray, + @Param("number") String number, + @Param("linkApply") String linkApply, + @Param("linkNumber") String linkNumber, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("materialParam") String materialParam, + @Param("organId") Long organId, + @Param("organArray") String[] organArray, + @Param("creator") Long creator, + @Param("depotId") Long depotId, + @Param("depotArray") String[] depotArray, + @Param("accountId") Long accountId, + @Param("salesMan") String salesMan, + @Param("remark") String remark); + + List findMaterialsListMapByHeaderIdList( + @Param("idList") List idList); + + List getMaterialCountListByHeaderIdList( + @Param("idList") List idList); + + List findInOutDetail( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("type") String type, + @Param("creatorArray") String[] creatorArray, + @Param("organArray") String[] organArray, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("oId") Integer oId, + @Param("number") String number, + @Param("creator") Long creator, + @Param("remark") String remark, + @Param("column") String column, + @Param("order") String order, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int findInOutDetailCount( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("type") String type, + @Param("creatorArray") String[] creatorArray, + @Param("organArray") String[] organArray, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("oId") Integer oId, + @Param("number") String number, + @Param("creator") Long creator, + @Param("remark") String remark); + + List findInOutDetailStatistic( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("type") String type, + @Param("creatorArray") String[] creatorArray, + @Param("organArray") String[] organArray, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("oId") Integer oId, + @Param("number") String number, + @Param("creator") Long creator, + @Param("remark") String remark); + + List findInOutMaterialCount( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("type") String type, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("oId") Integer oId, + @Param("creatorArray") String[] creatorArray, + @Param("organArray") String[] organArray, + @Param("column") String column, + @Param("order") String order, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int findInOutMaterialCountTotal( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("type") String type, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("oId") Integer oId, + @Param("creatorArray") String[] creatorArray, + @Param("organArray") String[] organArray); + + List findInOutMaterialCountStatistic( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("type") String type, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("oId") Integer oId, + @Param("creatorArray") String[] creatorArray, + @Param("organArray") String[] organArray); + + List findAllocationDetail( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("subType") String subType, + @Param("number") String number, + @Param("creatorArray") String[] creatorArray, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("depotFList") List depotFList, + @Param("remark") String remark, + @Param("column") String column, + @Param("order") String order, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int findAllocationDetailCount( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("subType") String subType, + @Param("number") String number, + @Param("creatorArray") String[] creatorArray, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("depotFList") List depotFList, + @Param("remark") String remark); + + List findAllocationStatistic( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("subType") String subType, + @Param("number") String number, + @Param("creatorArray") String[] creatorArray, + @Param("categoryList") List categoryList, + @Param("forceFlag") Boolean forceFlag, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("depotFList") List depotFList, + @Param("remark") String remark); + + List getStatementAccount( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("organId") Integer organId, + @Param("organArray") String[] organArray, + @Param("hasDebt") Integer hasDebt, + @Param("supplierType") String supplierType, + @Param("type") String type, + @Param("subType") String subType, + @Param("typeBack") String typeBack, + @Param("subTypeBack") String subTypeBack, + @Param("billType") String billType, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int getStatementAccountCount( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("organId") Integer organId, + @Param("organArray") String[] organArray, + @Param("hasDebt") Integer hasDebt, + @Param("supplierType") String supplierType, + @Param("type") String type, + @Param("subType") String subType, + @Param("typeBack") String typeBack, + @Param("subTypeBack") String subTypeBack, + @Param("billType") String billType); + + List getStatementAccountTotalPay( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("organId") Integer organId, + @Param("organArray") String[] organArray, + @Param("hasDebt") Integer hasDebt, + @Param("supplierType") String supplierType, + @Param("type") String type, + @Param("subType") String subType, + @Param("typeBack") String typeBack, + @Param("subTypeBack") String subTypeBack, + @Param("billType") String billType); + + List getDetailByNumber( + @Param("number") String number); + + int batchDeleteDepotHeadByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + List getDepotHeadListByAccountIds(@Param("accountIds") String[] accountIds); + + List getDepotHeadListByOrganIds(@Param("organIds") String[] organIds); + + List getDepotHeadListByCreator(@Param("creatorArray") String[] creatorArray); + + List getBuyAndSaleStatisticsList( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("creatorArray") String[] creatorArray, + @Param("forceFlag") Boolean forceFlag); + + List debtList( + @Param("organId") Long organId, + @Param("creatorArray") String[] creatorArray, + @Param("status") String status, + @Param("number") String number, + @Param("type") String type, + @Param("subType") String subType, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("materialParam") String materialParam, + @Param("depotArray") String[] depotArray, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int debtListCount( + @Param("organId") Long organId, + @Param("creatorArray") String[] creatorArray, + @Param("status") String status, + @Param("number") String number, + @Param("type") String type, + @Param("subType") String subType, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("materialParam") String materialParam, + @Param("depotArray") String[] depotArray); + + List getFinishDepositByNumberList( + @Param("numberList") List numberList); + + BigDecimal getFinishDepositByNumberExceptCurrent( + @Param("linkNumber") String linkNumber, + @Param("number") String number); + + void setAccountIdToNull( + @Param("id") Long id); + + int getSerialNumberBySell( + @Param("number") String number); + + List waitBillList( + @Param("type") String type, + @Param("subTypeArray") String[] subTypeArray, + @Param("creatorArray") String[] creatorArray, + @Param("statusArray") String[] statusArray, + @Param("number") String number, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("materialParam") String materialParam, + @Param("depotArray") String[] depotArray, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + Long waitBillCount( + @Param("type") String type, + @Param("subTypeArray") String[] subTypeArray, + @Param("creatorArray") String[] creatorArray, + @Param("statusArray") String[] statusArray, + @Param("number") String number, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("materialParam") String materialParam, + @Param("depotArray") String[] depotArray); + + BigDecimal getBillAllPriceByOrganId( + @Param("organId") Long organId); + + BigDecimal getAllDepositByLinkNumber( + @Param("linkNumber") String linkNumber); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotItemMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotItemMapper.java new file mode 100644 index 0000000..2af21be --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotItemMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.DepotItem; +import com.reallin.smt.datasource.entities.DepotItemExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface DepotItemMapper { + long countByExample(DepotItemExample example); + + int deleteByExample(DepotItemExample example); + + int deleteByPrimaryKey(Long id); + + int insert(DepotItem record); + + int insertSelective(DepotItem record); + + List selectByExample(DepotItemExample example); + + DepotItem selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") DepotItem record, @Param("example") DepotItemExample example); + + int updateByExample(@Param("record") DepotItem record, @Param("example") DepotItemExample example); + + int updateByPrimaryKeySelective(DepotItem record); + + int updateByPrimaryKey(DepotItem record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotItemMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotItemMapperEx.java new file mode 100644 index 0000000..e5361a4 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotItemMapperEx.java @@ -0,0 +1,263 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.vo.*; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/1/24 16:59 + */ +public interface DepotItemMapperEx { + + int batchInsert(List depotItemList); + + List selectByConditionDepotItem( + @Param("name") String name, + @Param("type") Integer type, + @Param("remark") String remark, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + Long countsByDepotItem( + @Param("name") String name, + @Param("type") Integer type, + @Param("remark") String remark); + + List findDetailByDepotIdsAndMaterialIdList( + @Param("depotIdArray") Long[] depotIdArray, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("sku") String sku, + @Param("batchNumber") String batchNumber, + @Param("number") String number, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("mId") Long mId, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + Long findDetailByDepotIdsAndMaterialIdCount( + @Param("depotIdArray") Long[] depotIdArray, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("sku") String sku, + @Param("batchNumber") String batchNumber, + @Param("number") String number, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("mId") Long mId); + + List getDetailList( + @Param("headerId") Long headerId); + + List getBillDetailListByIds( + @Param("idList") List idList); + + List getInOutStock( + @Param("materialParam") String materialParam, + @Param("categoryIdList") List categoryIdList, + @Param("endTime") String endTime, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int getInOutStockCount( + @Param("materialParam") String materialParam, + @Param("categoryIdList") List categoryIdList, + @Param("endTime") String endTime); + + List getListWithBuyOrSale( + @Param("materialParam") String materialParam, + @Param("billType") String billType, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("creatorArray") String[] creatorArray, + @Param("organId") Long organId, + @Param("organArray") String[] organArray, + @Param("categoryList") List categoryList, + @Param("depotList") List depotList, + @Param("forceFlag") Boolean forceFlag, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int getListWithBuyOrSaleCount( + @Param("materialParam") String materialParam, + @Param("billType") String billType, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("creatorArray") String[] creatorArray, + @Param("organId") Long organId, + @Param("organArray") String[] organArray, + @Param("categoryList") List categoryList, + @Param("depotList") List depotList, + @Param("forceFlag") Boolean forceFlag); + + BigDecimal buyOrSaleNumber( + @Param("type") String type, + @Param("subType") String subType, + @Param("meId") Long meId, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("creatorArray") String[] creatorArray, + @Param("organId") Long organId, + @Param("organArray") String [] organArray, + @Param("depotList") List depotList, + @Param("forceFlag") Boolean forceFlag, + @Param("sumType") String sumType); + + BigDecimal buyOrSalePrice( + @Param("type") String type, + @Param("subType") String subType, + @Param("meId") Long meId, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("creatorArray") String[] creatorArray, + @Param("organId") Long organId, + @Param("organArray") String [] organArray, + @Param("depotList") List depotList, + @Param("forceFlag") Boolean forceFlag, + @Param("sumType") String sumType); + + BigDecimal buyOrSalePriceTotal( + @Param("type") String type, + @Param("subType") String subType, + @Param("materialParam") String materialParam, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("creatorArray") String[] creatorArray, + @Param("organId") Long organId, + @Param("organArray") String [] organArray, + @Param("categoryList") List categoryList, + @Param("depotList") List depotList, + @Param("forceFlag") Boolean forceFlag); + + List inOrOutPriceList( + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("creatorArray") String[] creatorArray, + @Param("forceFlag") Boolean forceFlag); + + BigDecimal getSkuStockCheckSumByDepotList( + @Param("depotList") List depotList, + @Param("meId") Long meId, + @Param("forceFlag") Boolean forceFlag, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + BigDecimal getStockCheckSumByDepotList( + @Param("depotList") List depotList, + @Param("mId") Long mId, + @Param("forceFlag") Boolean forceFlag, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + DepotItemVo4Stock getSkuStockByParamWithDepotList( + @Param("depotList") List depotList, + @Param("meId") Long meId, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + DepotItemVo4Stock getStockByParamWithDepotList( + @Param("depotList") List depotList, + @Param("mId") Long mId, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + /** + * 通过单据主表id查询所有单据子表数据 + * @param depotheadId + * @param enableSerialNumber + * @return + */ + List findDepotItemListBydepotheadId(@Param("depotheadId")Long depotheadId, + @Param("enableSerialNumber")String enableSerialNumber); + /** + * 根据单据主表id删除单据子表数据 + * */ + int batchDeleteDepotItemByDepotHeadIds(@Param("depotheadIds")Long []depotHeadIds); + + int batchDeleteDepotItemByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + List getDepotItemListListByDepotIds(@Param("depotIds") String[] depotIds); + + List getDepotItemListListByMaterialIds(@Param("materialIds") String[] materialIds); + + List findStockWarningCount( + @Param("offset") Integer offset, + @Param("rows") Integer rows, + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("categoryList") List categoryList); + + int findStockWarningCountTotal( + @Param("materialParam") String materialParam, + @Param("depotList") List depotList, + @Param("categoryList") List categoryList); + + BigDecimal getFinishNumber( + @Param("meId") Long meId, + @Param("linkId") Long linkId, + @Param("linkStr") String linkStr, + @Param("noType") String noType, + @Param("goToType") String goToType); + + BigDecimal getRealFinishNumber( + @Param("meId") Long meId, + @Param("linkId") Long linkId, + @Param("linkStr") String linkStr, + @Param("linkType") String linkType, + @Param("currentHeaderId") Long currentHeaderId, + @Param("goToType") String goToType); + + List getBatchNumberList( + @Param("number") String number, + @Param("name") String name, + @Param("depotId") Long depotId, + @Param("barCode") String barCode, + @Param("batchNumber") String batchNumber, + @Param("forceFlag") Boolean forceFlag, + @Param("inOutManageFlag") Boolean inOutManageFlag); + + Long getCountByMaterialAndDepot( + @Param("mId") Long mId, + @Param("depotId") Long depotId); + + List getLinkBillDetailMaterialSum( + @Param("linkStr") String linkStr); + + List getBatchBillDetailMaterialSum( + @Param("linkStr") String linkStr, + @Param("linkType") String linkType, + @Param("type") String type); + + Long getCountByMaterialAndBatchNumber( + @Param("meId") Long meId, + @Param("batchNumber") String batchNumber); + + List getDepotItemByBatchNumber( + @Param("materialExtendId") Long materialExtendId, + @Param("batchNumber") String batchNumber); + + List getBillItemByParam( + @Param("barCodeList") List barCodeList); + + BigDecimal getCurrentStockByParam( + @Param("depotId") Long depotId, + @Param("mId") Long mId); + + BigDecimal getLastUnitPriceByParam( + @Param("organId") Long organId, + @Param("meId") Long meId, + @Param("type") String type, + @Param("subType") String subType); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotMapper.java new file mode 100644 index 0000000..3b942ed --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Depot; +import com.reallin.smt.datasource.entities.DepotExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface DepotMapper { + long countByExample(DepotExample example); + + int deleteByExample(DepotExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Depot record); + + int insertSelective(Depot record); + + List selectByExample(DepotExample example); + + Depot selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Depot record, @Param("example") DepotExample example); + + int updateByExample(@Param("record") Depot record, @Param("example") DepotExample example); + + int updateByPrimaryKeySelective(Depot record); + + int updateByPrimaryKey(Depot record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotMapperEx.java new file mode 100644 index 0000000..41b3c3f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/DepotMapperEx.java @@ -0,0 +1,20 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Depot; +import com.reallin.smt.datasource.entities.DepotEx; +import com.reallin.smt.datasource.entities.DepotExample; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface DepotMapperEx { + + List selectByConditionDepot( + @Param("name") String name, + @Param("type") Integer type, + @Param("remark") String remark); + + int batchDeleteDepotByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/FunctionMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/FunctionMapper.java new file mode 100644 index 0000000..3a4aea4 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/FunctionMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Function; +import com.reallin.smt.datasource.entities.FunctionExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface FunctionMapper { + long countByExample(FunctionExample example); + + int deleteByExample(FunctionExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Function record); + + int insertSelective(Function record); + + List selectByExample(FunctionExample example); + + Function selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Function record, @Param("example") FunctionExample example); + + int updateByExample(@Param("record") Function record, @Param("example") FunctionExample example); + + int updateByPrimaryKeySelective(Function record); + + int updateByPrimaryKey(Function record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/FunctionMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/FunctionMapperEx.java new file mode 100644 index 0000000..d433893 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/FunctionMapperEx.java @@ -0,0 +1,20 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.FunctionEx; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface FunctionMapperEx { + + List selectByConditionFunction( + @Param("name") String name, + @Param("nameEn") String nameEn, + @Param("type") String type); + + List getFirstNodeIdList(); + + int batchDeleteFunctionByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/InOutItemMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/InOutItemMapper.java new file mode 100644 index 0000000..8d7535e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/InOutItemMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.InOutItem; +import com.reallin.smt.datasource.entities.InOutItemExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface InOutItemMapper { + long countByExample(InOutItemExample example); + + int deleteByExample(InOutItemExample example); + + int deleteByPrimaryKey(Long id); + + int insert(InOutItem record); + + int insertSelective(InOutItem record); + + List selectByExample(InOutItemExample example); + + InOutItem selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") InOutItem record, @Param("example") InOutItemExample example); + + int updateByExample(@Param("record") InOutItem record, @Param("example") InOutItemExample example); + + int updateByPrimaryKeySelective(InOutItem record); + + int updateByPrimaryKey(InOutItem record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/InOutItemMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/InOutItemMapperEx.java new file mode 100644 index 0000000..4c9ccf7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/InOutItemMapperEx.java @@ -0,0 +1,18 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.InOutItem; +import com.reallin.smt.datasource.entities.InOutItemExample; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface InOutItemMapperEx { + + List selectByConditionInOutItem( + @Param("name") String name, + @Param("type") String type, + @Param("remark") String remark); + + int batchDeleteInOutItemByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/LogMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/LogMapper.java new file mode 100644 index 0000000..6377db0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/LogMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Log; +import com.reallin.smt.datasource.entities.LogExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface LogMapper { + long countByExample(LogExample example); + + int deleteByExample(LogExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Log record); + + int insertSelective(Log record); + + List selectByExample(LogExample example); + + Log selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Log record, @Param("example") LogExample example); + + int updateByExample(@Param("record") Log record, @Param("example") LogExample example); + + int updateByPrimaryKeySelective(Log record); + + int updateByPrimaryKey(Log record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/LogMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/LogMapperEx.java new file mode 100644 index 0000000..3079eff --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/LogMapperEx.java @@ -0,0 +1,29 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Log; +import com.reallin.smt.datasource.entities.LogExample; +import com.reallin.smt.datasource.vo.LogVo4List; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface LogMapperEx { + + List selectByConditionLog( + @Param("operation") String operation, + @Param("userInfo") String userInfo, + @Param("clientIp") String clientIp, + @Param("tenantLoginName") String tenantLoginName, + @Param("tenantType") String tenantType, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime, + @Param("content") String content); + + Long getCountByIpAndDate( + @Param("userId") Long userId, + @Param("moduleName") String moduleName, + @Param("clientIp") String clientIp, + @Param("createTime") String createTime); + + int insertLogWithUserId(Log log); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialAttributeMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialAttributeMapper.java new file mode 100644 index 0000000..d0cc62c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialAttributeMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialAttribute; +import com.reallin.smt.datasource.entities.MaterialAttributeExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialAttributeMapper { + long countByExample(MaterialAttributeExample example); + + int deleteByExample(MaterialAttributeExample example); + + int deleteByPrimaryKey(Long id); + + int insert(MaterialAttribute record); + + int insertSelective(MaterialAttribute record); + + List selectByExample(MaterialAttributeExample example); + + MaterialAttribute selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") MaterialAttribute record, @Param("example") MaterialAttributeExample example); + + int updateByExample(@Param("record") MaterialAttribute record, @Param("example") MaterialAttributeExample example); + + int updateByPrimaryKeySelective(MaterialAttribute record); + + int updateByPrimaryKey(MaterialAttribute record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialAttributeMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialAttributeMapperEx.java new file mode 100644 index 0000000..cb50ebc --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialAttributeMapperEx.java @@ -0,0 +1,16 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialAttribute; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MaterialAttributeMapperEx { + + List selectByConditionMaterialAttribute( + @Param("attributeName") String attributeName, + @Param("attributeValue") String attributeValue); + + int batchDeleteMaterialAttributeByIds( + @Param("ids") String ids[]); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCategoryMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCategoryMapper.java new file mode 100644 index 0000000..e1acabd --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCategoryMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialCategory; +import com.reallin.smt.datasource.entities.MaterialCategoryExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialCategoryMapper { + long countByExample(MaterialCategoryExample example); + + int deleteByExample(MaterialCategoryExample example); + + int deleteByPrimaryKey(Long id); + + int insert(MaterialCategory record); + + int insertSelective(MaterialCategory record); + + List selectByExample(MaterialCategoryExample example); + + MaterialCategory selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") MaterialCategory record, @Param("example") MaterialCategoryExample example); + + int updateByExample(@Param("record") MaterialCategory record, @Param("example") MaterialCategoryExample example); + + int updateByPrimaryKeySelective(MaterialCategory record); + + int updateByPrimaryKey(MaterialCategory record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCategoryMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCategoryMapperEx.java new file mode 100644 index 0000000..1f87c53 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCategoryMapperEx.java @@ -0,0 +1,36 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialCategory; +import com.reallin.smt.datasource.vo.TreeNode; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/2/18 17:23 + */ +public interface MaterialCategoryMapperEx { + List selectByConditionMaterialCategory( + @Param("name") String name, + @Param("parentId") Integer parentId); + + List getNodeTree(@Param("currentId")Long currentId); + List getNextNodeTree(Map parameterMap); + + int addMaterialCategory(MaterialCategory mc); + + int batchDeleteMaterialCategoryByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + int editMaterialCategory(MaterialCategory mc); + + List getMaterialCategoryBySerialNo(@Param("serialNo") String serialNo, @Param("id") Long id); + + List getMaterialCategoryListByCategoryIds(@Param("parentIds") String[] categoryIds); + + List getListByParentId(@Param("parentId") Long parentId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCurrentStockMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCurrentStockMapper.java new file mode 100644 index 0000000..6c2f98a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCurrentStockMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialCurrentStock; +import com.reallin.smt.datasource.entities.MaterialCurrentStockExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialCurrentStockMapper { + long countByExample(MaterialCurrentStockExample example); + + int deleteByExample(MaterialCurrentStockExample example); + + int deleteByPrimaryKey(Long id); + + int insert(MaterialCurrentStock record); + + int insertSelective(MaterialCurrentStock record); + + List selectByExample(MaterialCurrentStockExample example); + + MaterialCurrentStock selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") MaterialCurrentStock record, @Param("example") MaterialCurrentStockExample example); + + int updateByExample(@Param("record") MaterialCurrentStock record, @Param("example") MaterialCurrentStockExample example); + + int updateByPrimaryKeySelective(MaterialCurrentStock record); + + int updateByPrimaryKey(MaterialCurrentStock record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCurrentStockMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCurrentStockMapperEx.java new file mode 100644 index 0000000..11d7e99 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialCurrentStockMapperEx.java @@ -0,0 +1,23 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialCurrentStock; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.List; + +public interface MaterialCurrentStockMapperEx { + + int batchInsert(List list); + + List getCurrentStockMapByIdList( + @Param("materialIdList") List materialIdList); + + void updateUnitPriceByMId( + @Param("currentUnitPrice") BigDecimal currentUnitPrice, + @Param("materialId") Long materialId); + + BigDecimal getCurrentUnitPriceByMId(@Param("materialId") Long materialId); + + void batchDeleteByDepots(@Param("ids") String ids[]); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialExtendMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialExtendMapper.java new file mode 100644 index 0000000..4ddf427 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialExtendMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialExtend; +import com.reallin.smt.datasource.entities.MaterialExtendExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialExtendMapper { + long countByExample(MaterialExtendExample example); + + int deleteByExample(MaterialExtendExample example); + + int deleteByPrimaryKey(Long id); + + int insert(MaterialExtend record); + + int insertSelective(MaterialExtend record); + + List selectByExample(MaterialExtendExample example); + + MaterialExtend selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") MaterialExtend record, @Param("example") MaterialExtendExample example); + + int updateByExample(@Param("record") MaterialExtend record, @Param("example") MaterialExtendExample example); + + int updateByPrimaryKeySelective(MaterialExtend record); + + int updateByPrimaryKey(MaterialExtend record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialExtendMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialExtendMapperEx.java new file mode 100644 index 0000000..27aafb5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialExtendMapperEx.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialExtend; +import com.reallin.smt.datasource.vo.MaterialExtendVo4List; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface MaterialExtendMapperEx { + + int batchDeleteMaterialExtendByIds(@Param("ids") String ids[]); + + List getDetailList( + @Param("materialId") Long materialId); + + Long getMaxTimeByTenantAndTime( + @Param("tenantId") Long tenantId, + @Param("lastTime") Long lastTime, + @Param("syncNum") Long syncNum); + + List getListByMId(@Param("ids") Long ids[]); + + int batchDeleteMaterialExtendByMIds(@Param("ids") String ids[]); + + int specialUpdatePrice(MaterialExtend record); + + List getBasicInfoByMid( + @Param("materialId") Long materialId); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialInitialStockMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialInitialStockMapper.java new file mode 100644 index 0000000..e764a57 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialInitialStockMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialInitialStock; +import com.reallin.smt.datasource.entities.MaterialInitialStockExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialInitialStockMapper { + long countByExample(MaterialInitialStockExample example); + + int deleteByExample(MaterialInitialStockExample example); + + int deleteByPrimaryKey(Long id); + + int insert(MaterialInitialStock record); + + int insertSelective(MaterialInitialStock record); + + List selectByExample(MaterialInitialStockExample example); + + MaterialInitialStock selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") MaterialInitialStock record, @Param("example") MaterialInitialStockExample example); + + int updateByExample(@Param("record") MaterialInitialStock record, @Param("example") MaterialInitialStockExample example); + + int updateByPrimaryKeySelective(MaterialInitialStock record); + + int updateByPrimaryKey(MaterialInitialStock record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialInitialStockMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialInitialStockMapperEx.java new file mode 100644 index 0000000..dbf166b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialInitialStockMapperEx.java @@ -0,0 +1,20 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialCurrentStock; +import com.reallin.smt.datasource.entities.MaterialInitialStock; +import com.reallin.smt.datasource.entities.MaterialInitialStockExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MaterialInitialStockMapperEx { + + int batchInsert(List list); + + List getInitialStockMapByIdList( + @Param("materialIdList") List materialIdList); + + List getListExceptZero(); + + void batchDeleteByDepots(@Param("ids") String ids[]); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialMapper.java new file mode 100644 index 0000000..5ad529a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Material; +import com.reallin.smt.datasource.entities.MaterialExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialMapper { + long countByExample(MaterialExample example); + + int deleteByExample(MaterialExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Material record); + + int insertSelective(Material record); + + List selectByExample(MaterialExample example); + + Material selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Material record, @Param("example") MaterialExample example); + + int updateByExample(@Param("record") Material record, @Param("example") MaterialExample example); + + int updateByPrimaryKeySelective(Material record); + + int updateByPrimaryKey(Material record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialMapperEx.java new file mode 100644 index 0000000..75e32f6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialMapperEx.java @@ -0,0 +1,173 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.vo.MaterialDepotStock; +import com.reallin.smt.datasource.vo.MaterialVoSearch; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/1/22 14:54 + */ +public interface MaterialMapperEx { + + List selectByConditionMaterial( + @Param("materialParam") String materialParam, + @Param("standard") String standard, + @Param("model") String model, + @Param("color") String color, + @Param("brand") String brand, + @Param("mfrs") String mfrs, + @Param("otherField1") String otherField1, + @Param("otherField2") String otherField2, + @Param("otherField3") String otherField3, + @Param("weight") String weight, + @Param("expiryNum") String expiryNum, + @Param("enableSerialNumber") String enableSerialNumber, + @Param("enableBatchNumber") String enableBatchNumber, + @Param("position") String position, + @Param("enabled") String enabled, + @Param("remark") String remark, + @Param("idList") List idList, + @Param("mpList") String mpList); + + Long insertSelectiveEx(Material record); + + List findUnitList(@Param("mId") Long mId); + + List findById(@Param("id") Long id); + + List findByIdWithBarCode(@Param("meId") Long meId); + + List getMaterialByParam(@Param("materialParam") String materialParam); + + List findBySelectWithBarCode(@Param("idList") List idList, + @Param("q") String q, + @Param("standardOrModel") String standardOrModel, + @Param("color") String color, + @Param("brand") String brand, + @Param("mfrs") String mfrs, + @Param("otherField1") String otherField1, + @Param("otherField2") String otherField2, + @Param("otherField3") String otherField3, + @Param("enableSerialNumber") String enableSerialNumber, + @Param("enableBatchNumber") String enableBatchNumber, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int findBySelectWithBarCodeCount(@Param("idList") List idList, + @Param("q") String q, + @Param("standardOrModel") String standardOrModel, + @Param("color") String color, + @Param("brand") String brand, + @Param("mfrs") String mfrs, + @Param("otherField1") String otherField1, + @Param("otherField2") String otherField2, + @Param("otherField3") String otherField3, + @Param("enableSerialNumber") String enableSerialNumber, + @Param("enableBatchNumber") String enableBatchNumber); + + List exportExcel( + @Param("materialParam") String materialParam, + @Param("color") String color, + @Param("materialOther") String materialOther, + @Param("weight") String weight, + @Param("expiryNum") String expiryNum, + @Param("enabled") String enabled, + @Param("enableSerialNumber") String enableSerialNumber, + @Param("enableBatchNumber") String enableBatchNumber, + @Param("remark") String remark, + @Param("idList") List idList); + + List getOtherMaterialList(); + + /** + * 通过商品名称查询商品信息 + * */ + List findByMaterialName(@Param("name") String name); + /** + * 获取开启序列号并且状态正常的商品列表 + * */ + List getMaterialEnableSerialNumberList(@Param("q") String q, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + Long getMaterialEnableSerialNumberCount(@Param("q") String q); + + int batchDeleteMaterialByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + List getMaterialListByCategoryIds(@Param("categoryIds") String[] categoryIds); + + List getMaterialListByUnitIds(@Param("unitIds") String[] unitIds); + + List getBarCodeList(); + + List getMaterialByMeId( + @Param("meId") Long meId); + + List getMaterialNameList(); + + int setUnitIdToNull(@Param("id") Long id); + + int setExpiryNumToNull(@Param("id") Long id); + + List getMaterialByBarCode(@Param("barCodeArray") String [] barCodeArray); + + List getMaterialByBarCodeAndWithOutMId( + @Param("barCodeArray") String [] barCodeArray, + @Param("mId") Long mId); + + List getInitialStockWithMaterial( + @Param("depotList") List depotList); + + List getListWithStock( + @Param("depotList") List depotList, + @Param("idList") List idList, + @Param("position") String position, + @Param("materialParam") String materialParam, + @Param("zeroStock") Integer zeroStock, + @Param("column") String column, + @Param("order") String order, + @Param("offset") Integer offset, + @Param("rows") Integer rows); + + int getListWithStockCount( + @Param("depotList") List depotList, + @Param("idList") List idList, + @Param("position") String position, + @Param("materialParam") String materialParam, + @Param("zeroStock") Integer zeroStock); + + MaterialVo4Unit getTotalStockAndPrice( + @Param("depotList") List depotList, + @Param("idList") List idList, + @Param("position") String position, + @Param("materialParam") String materialParam); + + int checkIsExist( + @Param("id") Long id, + @Param("name") String name, + @Param("model") String model, + @Param("color") String color, + @Param("standard") String standard, + @Param("mfrs") String mfrs, + @Param("otherField1") String otherField1, + @Param("otherField2") String otherField2, + @Param("otherField3") String otherField3, + @Param("unit") String unit, + @Param("unitId") Long unitId); + + MaterialExtend getMaterialExtendBySerialNumber( + @Param("serialNumber") String serialNumber); + + List getMaterialDepotStock( + @Param("depotIdArray") Long[] depotIdArray, + @Param("mId") Long mId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialPropertyMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialPropertyMapper.java new file mode 100644 index 0000000..725e7b4 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialPropertyMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialProperty; +import com.reallin.smt.datasource.entities.MaterialPropertyExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MaterialPropertyMapper { + long countByExample(MaterialPropertyExample example); + + int deleteByExample(MaterialPropertyExample example); + + int deleteByPrimaryKey(Long id); + + int insert(MaterialProperty record); + + int insertSelective(MaterialProperty record); + + List selectByExample(MaterialPropertyExample example); + + MaterialProperty selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") MaterialProperty record, @Param("example") MaterialPropertyExample example); + + int updateByExample(@Param("record") MaterialProperty record, @Param("example") MaterialPropertyExample example); + + int updateByPrimaryKeySelective(MaterialProperty record); + + int updateByPrimaryKey(MaterialProperty record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialPropertyMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialPropertyMapperEx.java new file mode 100644 index 0000000..356f1f6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MaterialPropertyMapperEx.java @@ -0,0 +1,22 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialProperty; +import com.reallin.smt.datasource.entities.MaterialPropertyExample; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface MaterialPropertyMapperEx { + + List selectByConditionMaterialProperty( + @Param("name") String name); + + int batchDeleteMaterialPropertyByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + int getCountByNativeName(@Param("nativeName") String nativeName); + + void updateMaterialPropertyByNativeName( + @Param("nativeName") String nativeName, + @Param("anotherName") String anotherName); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MsgMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MsgMapper.java new file mode 100644 index 0000000..f406489 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MsgMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Msg; +import com.reallin.smt.datasource.entities.MsgExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface MsgMapper { + long countByExample(MsgExample example); + + int deleteByExample(MsgExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Msg record); + + int insertSelective(Msg record); + + List selectByExample(MsgExample example); + + Msg selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Msg record, @Param("example") MsgExample example); + + int updateByExample(@Param("record") Msg record, @Param("example") MsgExample example); + + int updateByPrimaryKeySelective(Msg record); + + int updateByPrimaryKey(Msg record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MsgMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MsgMapperEx.java new file mode 100644 index 0000000..76d99f2 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/MsgMapperEx.java @@ -0,0 +1,20 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Msg; +import com.reallin.smt.datasource.entities.MsgEx; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MsgMapperEx { + + List selectByConditionMsg( + @Param("userId") Long userId, + @Param("name") String name); + + int batchDeleteMsgByIds(@Param("ids") String ids[]); + + Long getMsgCountByStatus( + @Param("status") String status, + @Param("userId") Long userId); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrgaUserRelMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrgaUserRelMapper.java new file mode 100644 index 0000000..49e0b6c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrgaUserRelMapper.java @@ -0,0 +1,96 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.OrgaUserRel; +import com.reallin.smt.datasource.entities.OrgaUserRelExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface OrgaUserRelMapper { + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int countByExample(OrgaUserRelExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int deleteByExample(OrgaUserRelExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int deleteByPrimaryKey(Long id); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int insert(OrgaUserRel record); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int insertSelective(OrgaUserRel record); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + List selectByExample(OrgaUserRelExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + OrgaUserRel selectByPrimaryKey(Long id); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int updateByExampleSelective(@Param("record") OrgaUserRel record, @Param("example") OrgaUserRelExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int updateByExample(@Param("record") OrgaUserRel record, @Param("example") OrgaUserRelExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int updateByPrimaryKeySelective(OrgaUserRel record); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table tbl_orga_user_rel + * + * @mbggenerated + */ + int updateByPrimaryKey(OrgaUserRel record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrgaUserRelMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrgaUserRelMapperEx.java new file mode 100644 index 0000000..b2c2ccc --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrgaUserRelMapperEx.java @@ -0,0 +1,14 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.OrgaUserRel; /** + * Description + * + * @Author: cjl + * @Date: 2019/3/12 9:13 + */ +public interface OrgaUserRelMapperEx { + + int addOrgaUserRel(OrgaUserRel orgaUserRel); + + int updateOrgaUserRel(OrgaUserRel orgaUserRel); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrganizationMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrganizationMapper.java new file mode 100644 index 0000000..1ac4c44 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrganizationMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Organization; +import com.reallin.smt.datasource.entities.OrganizationExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface OrganizationMapper { + long countByExample(OrganizationExample example); + + int deleteByExample(OrganizationExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Organization record); + + int insertSelective(Organization record); + + List selectByExample(OrganizationExample example); + + Organization selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Organization record, @Param("example") OrganizationExample example); + + int updateByExample(@Param("record") Organization record, @Param("example") OrganizationExample example); + + int updateByPrimaryKeySelective(Organization record); + + int updateByPrimaryKey(Organization record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrganizationMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrganizationMapperEx.java new file mode 100644 index 0000000..090cfb8 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/OrganizationMapperEx.java @@ -0,0 +1,33 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.MaterialCategory; +import com.reallin.smt.datasource.entities.Organization; +import com.reallin.smt.datasource.vo.TreeNode; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/3/6 15:51 + */ +public interface OrganizationMapperEx { + + + List getNodeTree(@Param("currentId")Long currentId); + List getNextNodeTree(Map parameterMap); + + int addOrganization(Organization org); + + List getOrganizationByParentIds(@Param("ids") String ids[]); + + int batchDeleteOrganizationByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + int editOrganization(Organization org); + + List getOrganizationRootByIds(@Param("ids") String ids[]); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PackBomMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PackBomMapper.java new file mode 100644 index 0000000..bb275b7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PackBomMapper.java @@ -0,0 +1,44 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.PackBom; +import com.reallin.smt.datasource.entities.PackBomItem; +import com.reallin.smt.datasource.vo.PackBomVo4List; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 生产方案 Mapper + */ +public interface PackBomMapper { + + PackBom selectByPrimaryKey(Long id); + + List selectList( + @Param("bomNumber") String bomNumber, + @Param("bomName") String bomName, + @Param("outputMaterialParam") String outputMaterialParam, + @Param("enabled") Boolean enabled); + + int insertSelective(PackBom record); + + int updateByPrimaryKeySelective(PackBom record); + + int batchDeleteByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String[] ids); + + int checkNumberExist(@Param("id") Long id, @Param("bomNumber") String bomNumber); + + List selectEnabledByOutputMaterialId(@Param("outputMaterialId") Long outputMaterialId); + + /** + * 明细 + */ + int insertItemSelective(PackBomItem item); + + int batchInsertItems(@Param("list") List list); + + List selectItemsByBomId(@Param("bomId") Long bomId); + + int batchDeleteItemsByBomId(@Param("bomId") Long bomId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PersonMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PersonMapper.java new file mode 100644 index 0000000..49ee2e3 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PersonMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Person; +import com.reallin.smt.datasource.entities.PersonExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface PersonMapper { + long countByExample(PersonExample example); + + int deleteByExample(PersonExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Person record); + + int insertSelective(Person record); + + List selectByExample(PersonExample example); + + Person selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Person record, @Param("example") PersonExample example); + + int updateByExample(@Param("record") Person record, @Param("example") PersonExample example); + + int updateByPrimaryKeySelective(Person record); + + int updateByPrimaryKey(Person record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PersonMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PersonMapperEx.java new file mode 100644 index 0000000..4c7aaf9 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PersonMapperEx.java @@ -0,0 +1,17 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Person; +import com.reallin.smt.datasource.entities.PersonExample; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface PersonMapperEx { + + List selectByConditionPerson( + @Param("name") String name, + @Param("type") String type); + + int batchDeletePersonByIds(@Param("ids") String ids[]); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PlatformConfigMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PlatformConfigMapper.java new file mode 100644 index 0000000..0bdacdf --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PlatformConfigMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.PlatformConfig; +import com.reallin.smt.datasource.entities.PlatformConfigExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface PlatformConfigMapper { + long countByExample(PlatformConfigExample example); + + int deleteByExample(PlatformConfigExample example); + + int deleteByPrimaryKey(Long id); + + int insert(PlatformConfig record); + + int insertSelective(PlatformConfig record); + + List selectByExample(PlatformConfigExample example); + + PlatformConfig selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") PlatformConfig record, @Param("example") PlatformConfigExample example); + + int updateByExample(@Param("record") PlatformConfig record, @Param("example") PlatformConfigExample example); + + int updateByPrimaryKeySelective(PlatformConfig record); + + int updateByPrimaryKey(PlatformConfig record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PlatformConfigMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PlatformConfigMapperEx.java new file mode 100644 index 0000000..f30e785 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/PlatformConfigMapperEx.java @@ -0,0 +1,14 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.PlatformConfig; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface PlatformConfigMapperEx { + + List selectByConditionPlatformConfig( + @Param("platformKey") String platformKey); + +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionOrderMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionOrderMapper.java new file mode 100644 index 0000000..3bece90 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionOrderMapper.java @@ -0,0 +1,49 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.ProductionOrder; +import com.reallin.smt.datasource.entities.ProductionOrderLog; +import com.reallin.smt.datasource.vo.ProductionOrderVo4List; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 生产工单 Mapper + */ +public interface ProductionOrderMapper { + + ProductionOrder selectByPrimaryKey(Long id); + + List selectList( + @Param("orderNumber") String orderNumber, + @Param("sourceNumber") String sourceNumber, + @Param("status") String status, + @Param("priority") String priority, + @Param("productMaterialParam") String productMaterialParam, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + List selectBySourceNumber(@Param("sourceNumber") String sourceNumber); + + int insertSelective(ProductionOrder record); + + int updateByPrimaryKeySelective(ProductionOrder record); + + int updateStatusById(@Param("id") Long id, @Param("status") String status); + + int batchDeleteByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String[] ids); + + int checkNumberExist(@Param("id") Long id, @Param("orderNumber") String orderNumber); + + int checkBomReferenced(@Param("ids") String[] ids); + + List selectByIds(@Param("ids") List ids); + + /** + * 工单日志 + */ + int insertLog(ProductionOrderLog log); + + List selectLogsByOrderId(@Param("orderId") Long orderId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionReportMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionReportMapper.java new file mode 100644 index 0000000..5669331 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionReportMapper.java @@ -0,0 +1,47 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.ProductionReport; +import com.reallin.smt.datasource.entities.ProductionReportItem; +import com.reallin.smt.datasource.vo.ProductionReportVo4List; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 完工报告 Mapper + */ +public interface ProductionReportMapper { + + ProductionReport selectByPrimaryKey(Long id); + + List selectList( + @Param("reportNumber") String reportNumber, + @Param("orderNumber") String orderNumber, + @Param("auditStatus") String auditStatus, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + List selectByOrderId(@Param("orderId") Long orderId); + + int insertSelective(ProductionReport record); + + int updateByPrimaryKeySelective(ProductionReport record); + + int updateAuditStatusById(@Param("id") Long id, @Param("auditStatus") String auditStatus); + + int batchDeleteByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String[] ids); + + int checkNumberExist(@Param("id") Long id, @Param("reportNumber") String reportNumber); + + /** + * 明细 + */ + int insertItemSelective(ProductionReportItem item); + + int batchInsertItems(@Param("list") List list); + + List selectItemsByReportId(@Param("reportId") Long reportId); + + int batchDeleteItemsByReportId(@Param("reportId") Long reportId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionRequisitionMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionRequisitionMapper.java new file mode 100644 index 0000000..a939750 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/ProductionRequisitionMapper.java @@ -0,0 +1,50 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.ProductionRequisition; +import com.reallin.smt.datasource.entities.ProductionRequisitionItem; +import com.reallin.smt.datasource.vo.ProductionRequisitionVo4List; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 生产领料单 Mapper + */ +public interface ProductionRequisitionMapper { + + ProductionRequisition selectByPrimaryKey(Long id); + + List selectList( + @Param("requisitionNumber") String requisitionNumber, + @Param("orderNumber") String orderNumber, + @Param("status") String status, + @Param("depotId") Long depotId, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + List selectByOrderId(@Param("orderId") Long orderId); + + int insertSelective(ProductionRequisition record); + + int updateByPrimaryKeySelective(ProductionRequisition record); + + int updateStatusById(@Param("id") Long id, @Param("status") String status); + + int batchDeleteByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String[] ids); + + int checkNumberExist(@Param("id") Long id, @Param("requisitionNumber") String requisitionNumber); + + /** + * 明细 + */ + int insertItemSelective(ProductionRequisitionItem item); + + int batchInsertItems(@Param("list") List list); + + List selectItemsByRequisitionId(@Param("requisitionId") Long requisitionId); + + int updateItemSelective(ProductionRequisitionItem item); + + int batchDeleteItemsByRequisitionId(@Param("requisitionId") Long requisitionId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/RoleMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/RoleMapper.java new file mode 100644 index 0000000..484fd4b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/RoleMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Role; +import com.reallin.smt.datasource.entities.RoleExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface RoleMapper { + long countByExample(RoleExample example); + + int deleteByExample(RoleExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Role record); + + int insertSelective(Role record); + + List selectByExample(RoleExample example); + + Role selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Role record, @Param("example") RoleExample example); + + int updateByExample(@Param("record") Role record, @Param("example") RoleExample example); + + int updateByPrimaryKeySelective(Role record); + + int updateByPrimaryKey(Role record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/RoleMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/RoleMapperEx.java new file mode 100644 index 0000000..3c83787 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/RoleMapperEx.java @@ -0,0 +1,21 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Role; +import com.reallin.smt.datasource.entities.RoleEx; +import com.reallin.smt.datasource.entities.RoleExample; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface RoleMapperEx { + + List selectByConditionRole( + @Param("name") String name, + @Param("description") String description); + + int batchDeleteRoleByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + Role getRoleWithoutTenant( + @Param("roleId") Long roleId); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SaleShipmentMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SaleShipmentMapper.java new file mode 100644 index 0000000..58a0917 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SaleShipmentMapper.java @@ -0,0 +1,41 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.SaleShipment; +import com.reallin.smt.datasource.entities.SaleShipmentItem; +import com.reallin.smt.datasource.vo.SaleShipmentVo4List; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.List; + +public interface SaleShipmentMapper { + SaleShipment selectByPrimaryKey(@Param("id") Long id); + + List selectList(@Param("shipmentNumber") String shipmentNumber, + @Param("saleOutNumber") String saleOutNumber, + @Param("saleOrderNumber") String saleOrderNumber, + @Param("status") String status, + @Param("logisticsNo") String logisticsNo, + @Param("beginTime") String beginTime, + @Param("endTime") String endTime); + + int insertSelective(SaleShipment record); + + int updateByPrimaryKeySelective(SaleShipment record); + + int insertItemSelective(SaleShipmentItem item); + + int batchInsertItems(@Param("list") List list); + + int batchDeleteItemsByShipmentId(@Param("shipmentId") Long shipmentId); + + List selectItemsByShipmentId(@Param("shipmentId") Long shipmentId); + + List selectSaleOutItemsForShipment(@Param("saleOutId") Long saleOutId); + + BigDecimal getConfirmedQuantityBySaleOutItemId(@Param("saleOutItemId") Long saleOutItemId, + @Param("excludeShipmentId") Long excludeShipmentId); + + BigDecimal getActuallyShippedQuantityBySaleOutItemId(@Param("saleOutItemId") Long saleOutItemId, + @Param("excludeShipmentId") Long excludeShipmentId); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SequenceMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SequenceMapperEx.java new file mode 100644 index 0000000..91a5008 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SequenceMapperEx.java @@ -0,0 +1,13 @@ +package com.reallin.smt.datasource.mappers; + +import org.apache.ibatis.annotations.Param; + +public interface SequenceMapperEx { + + void updateBuildOnlyNumber(); + + /** + * 获得一个全局唯一的数作为订单号的追加 + * */ + Long getBuildOnlyNumber(@Param("seq_name") String seq_name); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SerialNumberMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SerialNumberMapper.java new file mode 100644 index 0000000..5223917 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SerialNumberMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.SerialNumber; +import com.reallin.smt.datasource.entities.SerialNumberExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface SerialNumberMapper { + long countByExample(SerialNumberExample example); + + int deleteByExample(SerialNumberExample example); + + int deleteByPrimaryKey(Long id); + + int insert(SerialNumber record); + + int insertSelective(SerialNumber record); + + List selectByExample(SerialNumberExample example); + + SerialNumber selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") SerialNumber record, @Param("example") SerialNumberExample example); + + int updateByExample(@Param("record") SerialNumber record, @Param("example") SerialNumberExample example); + + int updateByPrimaryKeySelective(SerialNumber record); + + int updateByPrimaryKey(SerialNumber record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SerialNumberMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SerialNumberMapperEx.java new file mode 100644 index 0000000..147ff2f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SerialNumberMapperEx.java @@ -0,0 +1,72 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.SerialNumber; +import com.reallin.smt.datasource.entities.SerialNumberEx; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/1/21 17:09 + */ +public interface SerialNumberMapperEx { + /** + * 新增序列号信息 + * */ + int addSerialNumber(SerialNumberEx serialNumberEx); + /** + * 修改序列号信息 + * */ + int updateSerialNumber(SerialNumberEx serialNumberEx); + /** + * 查询指定商品下有效的序列号数量 + * 未删除为卖出的视为有效 + * */ + int findSerialNumberByMaterialId(@Param("materialId") Long materialId); + + List getMinSerialNumberByMaterialIdAndSn( + @Param("materialId") Long materialId, + @Param("snArray") String snArray[]); + /** + * 卖出: update tbl_serial_number set is_Sell='1' ,depothead_Id='depotheadId' where 1=1 and material_Id='materialId' + * and is_Sell !='1' and delete_Flag !='1' {limit 0,count} + * */ + int sellSerialNumber( + @Param("idList") List idList, + @Param("outBillNo")String outBillNo, + @Param("updateTime") Date updateTime, + @Param("updater") Long updater); + /** + * 赎回:update tbl_serial_number set is_Sell='0',depothead_Id=null where 1=1 and material_Id='materialId' + * and depothead_Id='depotheadId' and is_Sell !='0' and delete_Flag !='1' {limit 0,count} + * */ + int cancelSerialNumber(@Param("materialId")Long materialId, @Param("outBillNo")String outBillNo, @Param("count")Integer count, @Param("updateTime") Date updateTime,@Param("updater") Long updater); + /** + * 批量添加序列号 + * */ + int batAddSerialNumber(@Param("list") List list); + + List getEnableSerialNumberList(@Param("number") String number, + @Param("name") String name, + @Param("nameArray") String [] nameArray, + @Param("depotId") Long depotId, + @Param("barCode") String barCode, + @Param("offset") Integer offset, @Param("rows") Integer rows); + + Long getEnableSerialNumberCount(@Param("number") String number, + @Param("name") String name, + @Param("nameArray") String [] nameArray, + @Param("depotId") Long depotId, + @Param("barCode") String barCode); + + int getIsNotSellCountByParam( + @Param("materialId") Long materialId, + @Param("serialNumber") String serialNumber); + + List getIsSellListByInBillNo( + @Param("inBillNo") String inBillNo); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SupplierMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SupplierMapper.java new file mode 100644 index 0000000..3ab7f0e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SupplierMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Supplier; +import com.reallin.smt.datasource.entities.SupplierExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface SupplierMapper { + long countByExample(SupplierExample example); + + int deleteByExample(SupplierExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Supplier record); + + int insertSelective(Supplier record); + + List selectByExample(SupplierExample example); + + Supplier selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Supplier record, @Param("example") SupplierExample example); + + int updateByExample(@Param("record") Supplier record, @Param("example") SupplierExample example); + + int updateByPrimaryKeySelective(Supplier record); + + int updateByPrimaryKey(Supplier record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SupplierMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SupplierMapperEx.java new file mode 100644 index 0000000..c54ee9f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SupplierMapperEx.java @@ -0,0 +1,47 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Supplier; +import com.reallin.smt.datasource.entities.SupplierExample; +import com.reallin.smt.datasource.vo.SupplierSimple; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface SupplierMapperEx { + + List selectByConditionSupplier( + @Param("supplier") String supplier, + @Param("type") String type, + @Param("contacts") String contacts, + @Param("phonenum") String phonenum, + @Param("telephone") String telephone, + @Param("creatorArray") String[] creatorArray, + @Param("categoryId") Long categoryId); + + List findByAll( + @Param("supplier") String supplier, + @Param("type") String type, + @Param("phonenum") String phonenum, + @Param("telephone") String telephone); + + int batchDeleteSupplierByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + Supplier getSupplierByNameAndType( + @Param("supplier") String supplier, + @Param("type") String type); + + List getAllCustomer(); + + List findByTypeAndKey( + @Param("type") String type, + @Param("key") String key, + @Param("limit") Integer limit); + + Supplier getInfoById( + @Param("id") Long id); + + Supplier getInfoByName( + @Param("name") String name, + @Param("type") String type); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SysDictDataMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SysDictDataMapper.java new file mode 100644 index 0000000..d2588b4 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SysDictDataMapper.java @@ -0,0 +1,103 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.SysDictData; +import com.reallin.smt.datasource.entities.SysDictType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 字典表 数据层 + * + * @author jishenghua + */ +public interface SysDictDataMapper +{ + /** + * 根据条件分页查询字典数据 + * + * @param dictData 字典数据信息 + * @return 字典数据集合信息 + */ + public List selectDictDataList(SysDictData dictData); + + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + public List selectDictDataByType(String dictType); + + /** + * 根据字典类型和字典键值查询字典数据信息 + * + * @param dictType 字典类型 + * @param dictValue 字典键值 + * @return 字典标签 + */ + public String selectDictLabel(@Param("dictType") String dictType, @Param("dictValue") String dictValue); + + /** + * 根据字典数据ID查询信息 + * + * @param dictCode 字典数据ID + * @return 字典数据 + */ + public SysDictData selectDictDataById(Long dictCode); + + /** + * 查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据 + */ + public int countDictDataByType(String dictType); + + /** + * 通过字典ID删除字典数据信息 + * + * @param dictCode 字典数据ID + * @return 结果 + */ + public int deleteDictDataById(Long dictCode); + + /** + * 批量删除字典数据信息 + * + * @param dictCodes 需要删除的字典数据ID + * @return 结果 + */ + public int deleteDictDataByIds(Long[] dictCodes); + + /** + * 新增字典数据信息 + * + * @param dictData 字典数据信息 + * @return 结果 + */ + public int insertDictData(SysDictData dictData); + + /** + * 修改字典数据信息 + * + * @param dictData 字典数据信息 + * @return 结果 + */ + public int updateDictData(SysDictData dictData); + + /** + * 同步修改字典类型 + * + * @param oldDictType 旧字典类型 + * @param newDictType 新旧字典类型 + * @return 结果 + */ + public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); + + int batchDeleteDictDataByIds( + @Param("ids") String ids[]); + + List getDictDataListByIds( + @Param("idList") List idList); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SysDictTypeMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SysDictTypeMapper.java new file mode 100644 index 0000000..bb7a057 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SysDictTypeMapper.java @@ -0,0 +1,91 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.SysDictType; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 字典表 数据层 + * + * @author jishenghua + */ +public interface SysDictTypeMapper +{ + /** + * 根据条件分页查询字典类型 + * + * @param dictType 字典类型信息 + * @return 字典类型集合信息 + */ + public List selectDictTypeList(SysDictType dictType); + + /** + * 根据所有字典类型 + * + * @return 字典类型集合信息 + */ + public List selectDictTypeAll(); + + /** + * 根据字典类型ID查询信息 + * + * @param dictId 字典类型ID + * @return 字典类型 + */ + public SysDictType selectDictTypeById(Long dictId); + + /** + * 根据字典类型查询信息 + * + * @param dictType 字典类型 + * @return 字典类型 + */ + public SysDictType selectDictTypeByType(String dictType); + + /** + * 通过字典ID删除字典信息 + * + * @param dictId 字典ID + * @return 结果 + */ + public int deleteDictTypeById(Long dictId); + + /** + * 批量删除字典类型信息 + * + * @param dictIds 需要删除的字典ID + * @return 结果 + */ + public int deleteDictTypeByIds(Long[] dictIds); + + /** + * 新增字典类型信息 + * + * @param dictType 字典类型信息 + * @return 结果 + */ + public int insertDictType(SysDictType dictType); + + /** + * 修改字典类型信息 + * + * @param dictType 字典类型信息 + * @return 结果 + */ + public int updateDictType(SysDictType dictType); + + /** + * 校验字典类型称是否唯一 + * + * @param dictType 字典类型 + * @return 结果 + */ + public SysDictType checkDictTypeUnique(String dictType); + + int batchDeleteDictTypeByIds( + @Param("ids") String ids[]); + + List getDictTypeListByIds( + @Param("idList") List idList); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SystemConfigMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SystemConfigMapper.java new file mode 100644 index 0000000..add352f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SystemConfigMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.SystemConfig; +import com.reallin.smt.datasource.entities.SystemConfigExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface SystemConfigMapper { + long countByExample(SystemConfigExample example); + + int deleteByExample(SystemConfigExample example); + + int deleteByPrimaryKey(Long id); + + int insert(SystemConfig record); + + int insertSelective(SystemConfig record); + + List selectByExample(SystemConfigExample example); + + SystemConfig selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") SystemConfig record, @Param("example") SystemConfigExample example); + + int updateByExample(@Param("record") SystemConfig record, @Param("example") SystemConfigExample example); + + int updateByPrimaryKeySelective(SystemConfig record); + + int updateByPrimaryKey(SystemConfig record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SystemConfigMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SystemConfigMapperEx.java new file mode 100644 index 0000000..98bf3db --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/SystemConfigMapperEx.java @@ -0,0 +1,16 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.SystemConfig; +import com.reallin.smt.datasource.entities.SystemConfigExample; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface SystemConfigMapperEx { + + List selectByConditionSystemConfig( + @Param("companyName") String companyName); + + int batchDeleteSystemConfigByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/TenantMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/TenantMapper.java new file mode 100644 index 0000000..1700161 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/TenantMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Tenant; +import com.reallin.smt.datasource.entities.TenantExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface TenantMapper { + long countByExample(TenantExample example); + + int deleteByExample(TenantExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Tenant record); + + int insertSelective(Tenant record); + + List selectByExample(TenantExample example); + + Tenant selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Tenant record, @Param("example") TenantExample example); + + int updateByExample(@Param("record") Tenant record, @Param("example") TenantExample example); + + int updateByPrimaryKeySelective(Tenant record); + + int updateByPrimaryKey(Tenant record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/TenantMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/TenantMapperEx.java new file mode 100644 index 0000000..c6f334d --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/TenantMapperEx.java @@ -0,0 +1,16 @@ +package com.reallin.smt.datasource.mappers; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.reallin.smt.datasource.entities.TenantEx; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface TenantMapperEx { + + List selectByConditionTenant( + @Param("loginName") String loginName, + @Param("type") String type, + @Param("enabled") String enabled, + @Param("remark") String remark); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UnitMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UnitMapper.java new file mode 100644 index 0000000..90bc2e8 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UnitMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Unit; +import com.reallin.smt.datasource.entities.UnitExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface UnitMapper { + long countByExample(UnitExample example); + + int deleteByExample(UnitExample example); + + int deleteByPrimaryKey(Long id); + + int insert(Unit record); + + int insertSelective(Unit record); + + List selectByExample(UnitExample example); + + Unit selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") Unit record, @Param("example") UnitExample example); + + int updateByExample(@Param("record") Unit record, @Param("example") UnitExample example); + + int updateByPrimaryKeySelective(Unit record); + + int updateByPrimaryKey(Unit record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UnitMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UnitMapperEx.java new file mode 100644 index 0000000..2218905 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UnitMapperEx.java @@ -0,0 +1,20 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.Unit; +import com.reallin.smt.datasource.entities.UnitExample; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface UnitMapperEx { + + List selectByConditionUnit( + @Param("name") String name); + + int batchDeleteUnitByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + void updateRatioTwoById(@Param("id") Long id); + + void updateRatioThreeById(@Param("id") Long id); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserBusinessMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserBusinessMapper.java new file mode 100644 index 0000000..a61468a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserBusinessMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.UserBusiness; +import com.reallin.smt.datasource.entities.UserBusinessExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface UserBusinessMapper { + long countByExample(UserBusinessExample example); + + int deleteByExample(UserBusinessExample example); + + int deleteByPrimaryKey(Long id); + + int insert(UserBusiness record); + + int insertSelective(UserBusiness record); + + List selectByExample(UserBusinessExample example); + + UserBusiness selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") UserBusiness record, @Param("example") UserBusinessExample example); + + int updateByExample(@Param("record") UserBusiness record, @Param("example") UserBusinessExample example); + + int updateByPrimaryKeySelective(UserBusiness record); + + int updateByPrimaryKey(UserBusiness record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserBusinessMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserBusinessMapperEx.java new file mode 100644 index 0000000..f55806c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserBusinessMapperEx.java @@ -0,0 +1,31 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.UserBusiness; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/3/29 15:09 + */ +public interface UserBusinessMapperEx { + + int batchDeleteUserBusinessByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + List getBasicDataByKeyIdAndType( + @Param("keyId") String keyId, + @Param("type") String type); + + void updateValueByTypeAndKeyId(@Param("type") String type, @Param("keyId") String keyId, @Param("ubValue") String ubValue); + + List getUBKeyIdByTypeAndOneValue( + @Param("type") String type, + @Param("oneValue") String oneValue); + + List getOldListByType( + @Param("type") String type); +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserMapper.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserMapper.java new file mode 100644 index 0000000..52d0813 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserMapper.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.entities.UserExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface UserMapper { + long countByExample(UserExample example); + + int deleteByExample(UserExample example); + + int deleteByPrimaryKey(Long id); + + int insert(User record); + + int insertSelective(User record); + + List selectByExample(UserExample example); + + User selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example); + + int updateByExample(@Param("record") User record, @Param("example") UserExample example); + + int updateByPrimaryKeySelective(User record); + + int updateByPrimaryKey(User record); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserMapperEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserMapperEx.java new file mode 100644 index 0000000..8132aec --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/mappers/UserMapperEx.java @@ -0,0 +1,45 @@ +package com.reallin.smt.datasource.mappers; + +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.entities.UserEx; +import com.reallin.smt.datasource.entities.UserExample; +import com.reallin.smt.datasource.vo.TreeNode; +import com.reallin.smt.datasource.vo.TreeNodeEx; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface UserMapperEx { + + List selectByConditionUser( + @Param("userName") String userName, + @Param("loginName") String loginName); + + Long countsByUser( + @Param("userName") String userName, + @Param("loginName") String loginName); + + List getUserListByUserNameOrLoginName(@Param("userName") String userName, + @Param("loginName") String loginName); + + int batDeleteOrUpdateUser(@Param("ids") String[] ids); + + List getNodeTree(); + List getNextNodeTree(Map parameterMap); + + void disableUserByLimit(@Param("tenantId") Long tenantId); + + List getListByOrgaId( + @Param("id") Long id, + @Param("orgaId") Long orgaId); + + User getUserByWeixinOpenId( + @Param("weixinOpenId") String weixinOpenId); + + int updateUserWithWeixinOpenId( + @Param("loginName") String loginName, + @Param("password") String password, + @Param("weixinOpenId") String weixinOpenId); +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountItemVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountItemVo4List.java new file mode 100644 index 0000000..4c2f05c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountItemVo4List.java @@ -0,0 +1,36 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.AccountItem; + +public class AccountItemVo4List extends AccountItem { + + private String accountName; + + private String inOutItemName; + + private String billNumber; + + public String getAccountName() { + return accountName; + } + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + public String getInOutItemName() { + return inOutItemName; + } + + public void setInOutItemName(String inOutItemName) { + this.inOutItemName = inOutItemName; + } + + public String getBillNumber() { + return billNumber; + } + + public void setBillNumber(String billNumber) { + this.billNumber = billNumber; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountVo4InOutList.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountVo4InOutList.java new file mode 100644 index 0000000..4573ab0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountVo4InOutList.java @@ -0,0 +1,126 @@ +package com.reallin.smt.datasource.vo; + +import java.math.BigDecimal; + +public class AccountVo4InOutList { + + private Long accountId; + + private String number; + + private String type; + + private String fromType; + + private String supplierName; + + private BigDecimal changeAmount; + + private BigDecimal balance; + + private String operTime; + + private String aList; + + private String amList; + + private String remark; + + private Long tenantId; + + public Long getAccountId() { + return accountId; + } + + public void setAccountId(Long accountId) { + this.accountId = accountId; + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getFromType() { + return fromType; + } + + public void setFromType(String fromType) { + this.fromType = fromType; + } + + public String getSupplierName() { + return supplierName; + } + + public void setSupplierName(String supplierName) { + this.supplierName = supplierName; + } + + public BigDecimal getChangeAmount() { + return changeAmount; + } + + public void setChangeAmount(BigDecimal changeAmount) { + this.changeAmount = changeAmount; + } + + public BigDecimal getBalance() { + return balance; + } + + public void setBalance(BigDecimal balance) { + this.balance = balance; + } + + public String getOperTime() { + return operTime; + } + + public void setOperTime(String operTime) { + this.operTime = operTime; + } + + public String getaList() { + return aList; + } + + public void setaList(String aList) { + this.aList = aList; + } + + public String getAmList() { + return amList; + } + + public void setAmList(String amList) { + this.amList = amList; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountVo4List.java new file mode 100644 index 0000000..eb4c8ae --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/AccountVo4List.java @@ -0,0 +1,16 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.Account; + +public class AccountVo4List extends Account{ + + private String thisMonthAmount; + + public String getThisMonthAmount() { + return thisMonthAmount; + } + + public void setThisMonthAmount(String thisMonthAmount) { + this.thisMonthAmount = thisMonthAmount; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/BillListCacheVo.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/BillListCacheVo.java new file mode 100644 index 0000000..5b1c13e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/BillListCacheVo.java @@ -0,0 +1,34 @@ +package com.reallin.smt.datasource.vo; + +public class BillListCacheVo { + + private String number; + + private String organName; + + private String operTimeStr; + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getOrganName() { + return organName; + } + + public void setOrganName(String organName) { + this.organName = organName; + } + + public String getOperTimeStr() { + return operTimeStr; + } + + public void setOperTimeStr(String operTimeStr) { + this.operTimeStr = operTimeStr; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DeliveryPlanVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DeliveryPlanVo4List.java new file mode 100644 index 0000000..427743b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DeliveryPlanVo4List.java @@ -0,0 +1,53 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.DeliveryPlan; + +import java.math.BigDecimal; + +public class DeliveryPlanVo4List extends DeliveryPlan { + private String customerName; + private String creatorName; + private String materialsList; + private BigDecimal planQuantity; + private BigDecimal shippedQuantity; + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getMaterialsList() { + return materialsList; + } + + public void setMaterialsList(String materialsList) { + this.materialsList = materialsList; + } + + public BigDecimal getPlanQuantity() { + return planQuantity; + } + + public void setPlanQuantity(BigDecimal planQuantity) { + this.planQuantity = planQuantity; + } + + public BigDecimal getShippedQuantity() { + return shippedQuantity; + } + + public void setShippedQuantity(BigDecimal shippedQuantity) { + this.shippedQuantity = shippedQuantity; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4InDetail.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4InDetail.java new file mode 100644 index 0000000..64a9e42 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4InDetail.java @@ -0,0 +1,228 @@ +package com.reallin.smt.datasource.vo; + + +import java.math.BigDecimal; +import java.util.Date; + +public class DepotHeadVo4InDetail { + + private String number; + + private String barCode; + + private String mname; + + private String model; + + private String standard; + + private String color; + + private String brand; + + private String mfrs; + + private BigDecimal unitPrice; + + private String sku; + + private String mUnit; + + private String newRemark; + + private BigDecimal operNumber; + + private BigDecimal allPrice; + + private BigDecimal taxRate; + + private BigDecimal taxMoney; + + private BigDecimal taxLastMoney; + + private String sname; + + private String dname; + + private String operTime; + + private String newType; + + private Long tenantId; + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public String getMname() { + return mname; + } + + public void setMname(String mname) { + this.mname = mname; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getMfrs() { + return mfrs; + } + + public void setMfrs(String mfrs) { + this.mfrs = mfrs; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public String getmUnit() { + return mUnit; + } + + public void setmUnit(String mUnit) { + this.mUnit = mUnit; + } + + public String getNewRemark() { + return newRemark; + } + + public void setNewRemark(String newRemark) { + this.newRemark = newRemark; + } + + public BigDecimal getOperNumber() { + return operNumber; + } + + public void setOperNumber(BigDecimal operNumber) { + this.operNumber = operNumber; + } + + public BigDecimal getAllPrice() { + return allPrice; + } + + public void setAllPrice(BigDecimal allPrice) { + this.allPrice = allPrice; + } + + public BigDecimal getTaxRate() { + return taxRate; + } + + public void setTaxRate(BigDecimal taxRate) { + this.taxRate = taxRate; + } + + public BigDecimal getTaxMoney() { + return taxMoney; + } + + public void setTaxMoney(BigDecimal taxMoney) { + this.taxMoney = taxMoney; + } + + public BigDecimal getTaxLastMoney() { + return taxLastMoney; + } + + public void setTaxLastMoney(BigDecimal taxLastMoney) { + this.taxLastMoney = taxLastMoney; + } + + public String getSname() { + return sname; + } + + public void setSname(String sname) { + this.sname = sname; + } + + public String getDname() { + return dname; + } + + public void setDname(String dname) { + this.dname = dname; + } + + public String getOperTime() { + return operTime; + } + + public void setOperTime(String operTime) { + this.operTime = operTime; + } + + public String getNewType() { + return newType; + } + + public void setNewType(String newType) { + this.newType = newType; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4InOutMCount.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4InOutMCount.java new file mode 100644 index 0000000..eee1d25 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4InOutMCount.java @@ -0,0 +1,136 @@ +package com.reallin.smt.datasource.vo; + +import java.math.BigDecimal; + +public class DepotHeadVo4InOutMCount { + + private Long materialId; + + private String barCode; + + private String mName; + + private String model; + + private String standard; + + private String color; + + private String brand; + + private String mfrs; + + private String categoryName; + + private String materialUnit; + + private BigDecimal numSum; + + private BigDecimal priceSum; + + private Long tenantId; + + public Long getMaterialId() { + return materialId; + } + + public void setMaterialId(Long materialId) { + this.materialId = materialId; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public String getmName() { + return mName; + } + + public void setmName(String mName) { + this.mName = mName; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getMfrs() { + return mfrs; + } + + public void setMfrs(String mfrs) { + this.mfrs = mfrs; + } + + public String getCategoryName() { + return categoryName; + } + + public void setCategoryName(String categoryName) { + this.categoryName = categoryName; + } + + public String getMaterialUnit() { + return materialUnit; + } + + public void setMaterialUnit(String materialUnit) { + this.materialUnit = materialUnit; + } + + public BigDecimal getNumSum() { + return numSum; + } + + public void setNumSum(BigDecimal numSum) { + this.numSum = numSum; + } + + public BigDecimal getPriceSum() { + return priceSum; + } + + public void setPriceSum(BigDecimal priceSum) { + this.priceSum = priceSum; + } + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4List.java new file mode 100644 index 0000000..5051dbb --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4List.java @@ -0,0 +1,270 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.DepotHead; + +import java.math.BigDecimal; +import java.util.Date; + +public class DepotHeadVo4List extends DepotHead{ + + private String projectName; + + private String organName; + + private String userName; + + private String accountName; + + private String allocationProjectName; + + private String materialsList; + + private String salesManStr; + + private String operTimeStr; + + private BigDecimal finishDebt; + + private String depotHeadType; + + private String creatorName; + + private String contacts; + + private String telephone; + + private String address; + + private BigDecimal finishDeposit; + + private BigDecimal needDebt; + + private BigDecimal materialCount; + + /** + * 是否有付款单或收款单 + */ + private Boolean hasFinancialFlag; + + /** + * 是否有退款单 + */ + private Boolean hasBackFlag; + + /** + * 实际欠款 + */ + private BigDecimal realNeedDebt; + + /** + * 开户行 + */ + private String bankName; + + /** + * 账号 + */ + private String accountNumber; + + /** + * 纳税人识别号 + */ + private String taxNum; + + /** + * 联系电话 + */ + private String phoneNum; + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getOrganName() { + return organName; + } + + public void setOrganName(String organName) { + this.organName = organName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getAccountName() { + return accountName; + } + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + public String getAllocationProjectName() { + return allocationProjectName; + } + + public void setAllocationProjectName(String allocationProjectName) { + this.allocationProjectName = allocationProjectName; + } + + public String getMaterialsList() { + return materialsList; + } + + public void setMaterialsList(String materialsList) { + this.materialsList = materialsList; + } + + public String getSalesManStr() { + return salesManStr; + } + + public void setSalesManStr(String salesManStr) { + this.salesManStr = salesManStr; + } + + public String getOperTimeStr() { + return operTimeStr; + } + + public void setOperTimeStr(String operTimeStr) { + this.operTimeStr = operTimeStr; + } + + public BigDecimal getFinishDebt() { + return finishDebt; + } + + public void setFinishDebt(BigDecimal finishDebt) { + this.finishDebt = finishDebt; + } + + public String getDepotHeadType() { + return depotHeadType; + } + + public void setDepotHeadType(String depotHeadType) { + this.depotHeadType = depotHeadType; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getContacts() { + return contacts; + } + + public void setContacts(String contacts) { + this.contacts = contacts; + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public BigDecimal getFinishDeposit() { + return finishDeposit; + } + + public void setFinishDeposit(BigDecimal finishDeposit) { + this.finishDeposit = finishDeposit; + } + + public BigDecimal getNeedDebt() { + return needDebt; + } + + public void setNeedDebt(BigDecimal needDebt) { + this.needDebt = needDebt; + } + + public BigDecimal getMaterialCount() { + return materialCount; + } + + public void setMaterialCount(BigDecimal materialCount) { + this.materialCount = materialCount; + } + + public Boolean getHasFinancialFlag() { + return hasFinancialFlag; + } + + public void setHasFinancialFlag(Boolean hasFinancialFlag) { + this.hasFinancialFlag = hasFinancialFlag; + } + + public Boolean getHasBackFlag() { + return hasBackFlag; + } + + public void setHasBackFlag(Boolean hasBackFlag) { + this.hasBackFlag = hasBackFlag; + } + + public BigDecimal getRealNeedDebt() { + return realNeedDebt; + } + + public void setRealNeedDebt(BigDecimal realNeedDebt) { + this.realNeedDebt = realNeedDebt; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + } + + public String getTaxNum() { + return taxNum; + } + + public void setTaxNum(String taxNum) { + this.taxNum = taxNum; + } + + public String getPhoneNum() { + return phoneNum; + } + + public void setPhoneNum(String phoneNum) { + this.phoneNum = phoneNum; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4StatementAccount.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4StatementAccount.java new file mode 100644 index 0000000..f809d35 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotHeadVo4StatementAccount.java @@ -0,0 +1,185 @@ +package com.reallin.smt.datasource.vo; + + +import java.math.BigDecimal; + +public class DepotHeadVo4StatementAccount { + + private Long id; + + private String supplier; + + private String contacts; + + private String telephone; + + private String phoneNum; + + private String email; + + /** + * 起始期初金额 + */ + private BigDecimal beginNeed; + + /** + * 上期欠款金额 + */ + private BigDecimal preDebtMoney; + + /** + * 上期退货的欠款金额 + */ + private BigDecimal preReturnDebtMoney; + + + /** + * 上期收付款 + */ + private BigDecimal preBackMoney; + + /** + * 期初应收 + */ + private BigDecimal preNeed; + + /** + * 本期欠款 + */ + private BigDecimal debtMoney; + + /** + * 本期退货的欠款金额 + */ + private BigDecimal returnDebtMoney; + + /** + * 本期收付款 + */ + private BigDecimal backMoney; + + /** + * 期末应收 + */ + private BigDecimal allNeed; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getSupplier() { + return supplier; + } + + public void setSupplier(String supplier) { + this.supplier = supplier; + } + + public String getContacts() { + return contacts; + } + + public void setContacts(String contacts) { + this.contacts = contacts; + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone; + } + + public String getPhoneNum() { + return phoneNum; + } + + public void setPhoneNum(String phoneNum) { + this.phoneNum = phoneNum; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public BigDecimal getBeginNeed() { + return beginNeed; + } + + public void setBeginNeed(BigDecimal beginNeed) { + this.beginNeed = beginNeed; + } + + public BigDecimal getPreDebtMoney() { + return preDebtMoney; + } + + public void setPreDebtMoney(BigDecimal preDebtMoney) { + this.preDebtMoney = preDebtMoney; + } + + public BigDecimal getPreReturnDebtMoney() { + return preReturnDebtMoney; + } + + public void setPreReturnDebtMoney(BigDecimal preReturnDebtMoney) { + this.preReturnDebtMoney = preReturnDebtMoney; + } + + public BigDecimal getPreBackMoney() { + return preBackMoney; + } + + public void setPreBackMoney(BigDecimal preBackMoney) { + this.preBackMoney = preBackMoney; + } + + public BigDecimal getPreNeed() { + return preNeed; + } + + public void setPreNeed(BigDecimal preNeed) { + this.preNeed = preNeed; + } + + public BigDecimal getDebtMoney() { + return debtMoney; + } + + public void setDebtMoney(BigDecimal debtMoney) { + this.debtMoney = debtMoney; + } + + public BigDecimal getReturnDebtMoney() { + return returnDebtMoney; + } + + public void setReturnDebtMoney(BigDecimal returnDebtMoney) { + this.returnDebtMoney = returnDebtMoney; + } + + public BigDecimal getBackMoney() { + return backMoney; + } + + public void setBackMoney(BigDecimal backMoney) { + this.backMoney = backMoney; + } + + public BigDecimal getAllNeed() { + return allNeed; + } + + public void setAllNeed(BigDecimal allNeed) { + this.allNeed = allNeed; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemStockWarningCount.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemStockWarningCount.java new file mode 100644 index 0000000..e9b19a6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemStockWarningCount.java @@ -0,0 +1,207 @@ +package com.reallin.smt.datasource.vo; + + +import java.math.BigDecimal; + +public class DepotItemStockWarningCount { + + private Long MId; + + private String barCode; + + private String MName; + + private String MModel; + + private String MaterialUnit; + + private String MColor; + + private String MStandard; + + private String MMfrs; + + private String brand; + + private String unitName; + + private String MaterialOther; + + private String MOtherField1; + + private String MOtherField2; + + private String MOtherField3; + + private String depotName; + + private BigDecimal currentNumber; + + private BigDecimal lowSafeStock; + + private BigDecimal highSafeStock; + + private BigDecimal lowCritical; + + private BigDecimal highCritical; + + public Long getMId() { + return MId; + } + + public void setMId(Long MId) { + this.MId = MId; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public String getMName() { + return MName; + } + + public void setMName(String MName) { + this.MName = MName; + } + + public String getMModel() { + return MModel; + } + + public void setMModel(String MModel) { + this.MModel = MModel; + } + + public String getMaterialUnit() { + return MaterialUnit; + } + + public void setMaterialUnit(String materialUnit) { + MaterialUnit = materialUnit; + } + + public String getMColor() { + return MColor; + } + + public void setMColor(String MColor) { + this.MColor = MColor; + } + + public String getMStandard() { + return MStandard; + } + + public void setMStandard(String MStandard) { + this.MStandard = MStandard; + } + + public String getMMfrs() { + return MMfrs; + } + + public void setMMfrs(String MMfrs) { + this.MMfrs = MMfrs; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getUnitName() { + return unitName; + } + + public void setUnitName(String unitName) { + this.unitName = unitName; + } + + public String getMaterialOther() { + return MaterialOther; + } + + public void setMaterialOther(String materialOther) { + MaterialOther = materialOther; + } + + public String getMOtherField1() { + return MOtherField1; + } + + public void setMOtherField1(String MOtherField1) { + this.MOtherField1 = MOtherField1; + } + + public String getMOtherField2() { + return MOtherField2; + } + + public void setMOtherField2(String MOtherField2) { + this.MOtherField2 = MOtherField2; + } + + public String getMOtherField3() { + return MOtherField3; + } + + public void setMOtherField3(String MOtherField3) { + this.MOtherField3 = MOtherField3; + } + + public String getDepotName() { + return depotName; + } + + public void setDepotName(String depotName) { + this.depotName = depotName; + } + + public BigDecimal getCurrentNumber() { + return currentNumber; + } + + public void setCurrentNumber(BigDecimal currentNumber) { + this.currentNumber = currentNumber; + } + + public BigDecimal getLowSafeStock() { + return lowSafeStock; + } + + public void setLowSafeStock(BigDecimal lowSafeStock) { + this.lowSafeStock = lowSafeStock; + } + + public BigDecimal getHighSafeStock() { + return highSafeStock; + } + + public void setHighSafeStock(BigDecimal highSafeStock) { + this.highSafeStock = highSafeStock; + } + + public BigDecimal getLowCritical() { + return lowCritical; + } + + public void setLowCritical(BigDecimal lowCritical) { + this.lowCritical = lowCritical; + } + + public BigDecimal getHighCritical() { + return highCritical; + } + + public void setHighCritical(BigDecimal highCritical) { + this.highCritical = highCritical; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemVo4Stock.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemVo4Stock.java new file mode 100644 index 0000000..2e22834 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemVo4Stock.java @@ -0,0 +1,80 @@ +package com.reallin.smt.datasource.vo; + + +import java.math.BigDecimal; + +public class DepotItemVo4Stock { + + private BigDecimal inTotal; + private BigDecimal outTotal; + private BigDecimal transfInTotal; + private BigDecimal transfOutTotal; + private BigDecimal assemInTotal; + private BigDecimal assemOutTotal; + private BigDecimal disAssemInTotal; + private BigDecimal disAssemOutTotal; + + public BigDecimal getInTotal() { + return inTotal; + } + + public void setInTotal(BigDecimal inTotal) { + this.inTotal = inTotal; + } + + public BigDecimal getOutTotal() { + return outTotal; + } + + public void setOutTotal(BigDecimal outTotal) { + this.outTotal = outTotal; + } + + public BigDecimal getTransfInTotal() { + return transfInTotal; + } + + public void setTransfInTotal(BigDecimal transfInTotal) { + this.transfInTotal = transfInTotal; + } + + public BigDecimal getTransfOutTotal() { + return transfOutTotal; + } + + public void setTransfOutTotal(BigDecimal transfOutTotal) { + this.transfOutTotal = transfOutTotal; + } + + public BigDecimal getAssemInTotal() { + return assemInTotal; + } + + public void setAssemInTotal(BigDecimal assemInTotal) { + this.assemInTotal = assemInTotal; + } + + public BigDecimal getAssemOutTotal() { + return assemOutTotal; + } + + public void setAssemOutTotal(BigDecimal assemOutTotal) { + this.assemOutTotal = assemOutTotal; + } + + public BigDecimal getDisAssemInTotal() { + return disAssemInTotal; + } + + public void setDisAssemInTotal(BigDecimal disAssemInTotal) { + this.disAssemInTotal = disAssemInTotal; + } + + public BigDecimal getDisAssemOutTotal() { + return disAssemOutTotal; + } + + public void setDisAssemOutTotal(BigDecimal disAssemOutTotal) { + this.disAssemOutTotal = disAssemOutTotal; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemVoBatchNumberList.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemVoBatchNumberList.java new file mode 100644 index 0000000..d3834bc --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/DepotItemVoBatchNumberList.java @@ -0,0 +1,108 @@ +package com.reallin.smt.datasource.vo; + + +import java.math.BigDecimal; +import java.util.Date; + +public class DepotItemVoBatchNumberList { + + private String id; + private String barCode; + private String name; + private String standard; + private String model; + private Long unitId; + private String commodityUnit; + private String batchNumber; + private Date expirationDate; + private String expirationDateStr; + private BigDecimal totalNum; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public Long getUnitId() { + return unitId; + } + + public void setUnitId(Long unitId) { + this.unitId = unitId; + } + + public String getCommodityUnit() { + return commodityUnit; + } + + public void setCommodityUnit(String commodityUnit) { + this.commodityUnit = commodityUnit; + } + + public String getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(String batchNumber) { + this.batchNumber = batchNumber; + } + + public Date getExpirationDate() { + return expirationDate; + } + + public void setExpirationDate(Date expirationDate) { + this.expirationDate = expirationDate; + } + + public String getExpirationDateStr() { + return expirationDateStr; + } + + public void setExpirationDateStr(String expirationDateStr) { + this.expirationDateStr = expirationDateStr; + } + + public BigDecimal getTotalNum() { + return totalNum; + } + + public void setTotalNum(BigDecimal totalNum) { + this.totalNum = totalNum; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/FinishDepositVo.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/FinishDepositVo.java new file mode 100644 index 0000000..e1c8c61 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/FinishDepositVo.java @@ -0,0 +1,26 @@ +package com.reallin.smt.datasource.vo; + +import java.math.BigDecimal; + +public class FinishDepositVo { + + private String number; + + private BigDecimal finishDeposit; + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public BigDecimal getFinishDeposit() { + return finishDeposit; + } + + public void setFinishDeposit(BigDecimal finishDeposit) { + this.finishDeposit = finishDeposit; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/InOutPriceVo.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/InOutPriceVo.java new file mode 100644 index 0000000..3399263 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/InOutPriceVo.java @@ -0,0 +1,27 @@ +package com.reallin.smt.datasource.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author jishenghua + * @Date 2024-04-26 22:23 + */ +@Data +public class InOutPriceVo { + + private Long id; + + private BigDecimal discountLastMoney; + + private BigDecimal totalPrice; + + private String type; + + private String subType; + + private Date operTime; + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/InventoryOperatorOption.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/InventoryOperatorOption.java new file mode 100644 index 0000000..ce559b3 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/InventoryOperatorOption.java @@ -0,0 +1,14 @@ +package com.reallin.smt.datasource.vo; + +import lombok.Data; + +/** + * 盘点操作账号下拉选项,数据来源为系统账号表 tbl_user。 + */ +@Data +public class InventoryOperatorOption { + private Long id; + private String name; + private String loginName; + private String department; +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/LogVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/LogVo4List.java new file mode 100644 index 0000000..73846ea --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/LogVo4List.java @@ -0,0 +1,36 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.Log; + +public class LogVo4List extends Log { + + private String loginName; + + private String userName; + + private String createTimeStr; + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getCreateTimeStr() { + return createTimeStr; + } + + public void setCreateTimeStr(String createTimeStr) { + this.createTimeStr = createTimeStr; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialCountVo.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialCountVo.java new file mode 100644 index 0000000..b6f8e1e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialCountVo.java @@ -0,0 +1,26 @@ +package com.reallin.smt.datasource.vo; + +import java.math.BigDecimal; + +public class MaterialCountVo { + + private Long headerId; + + private BigDecimal materialCount; + + public Long getHeaderId() { + return headerId; + } + + public void setHeaderId(Long headerId) { + this.headerId = headerId; + } + + public BigDecimal getMaterialCount() { + return materialCount; + } + + public void setMaterialCount(BigDecimal materialCount) { + this.materialCount = materialCount; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialDepotStock.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialDepotStock.java new file mode 100644 index 0000000..6544067 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialDepotStock.java @@ -0,0 +1,28 @@ +package com.reallin.smt.datasource.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class MaterialDepotStock { + + private Long id; + + private Long materialId; + + private Long depotId; + + private String depotName; + + private BigDecimal currentNumber; + + private BigDecimal currentUnitPrice; + + private BigDecimal purchaseDecimal; + + private BigDecimal unitPrice; + + private BigDecimal allPrice; + +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialExtendVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialExtendVo4List.java new file mode 100644 index 0000000..cc49108 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialExtendVo4List.java @@ -0,0 +1,68 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.MaterialExtend; + +import java.math.BigDecimal; + +public class MaterialExtendVo4List extends MaterialExtend { + + private String supplier; + + private String originPlace; + + private String unit; + + private String brandName; + + private BigDecimal guaranteePeriod; + + private BigDecimal memberDecimal; + + public String getSupplier() { + return supplier; + } + + public void setSupplier(String supplier) { + this.supplier = supplier; + } + + public String getOriginPlace() { + return originPlace; + } + + public void setOriginPlace(String originPlace) { + this.originPlace = originPlace; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getBrandName() { + return brandName; + } + + public void setBrandName(String brandName) { + this.brandName = brandName; + } + + public BigDecimal getGuaranteePeriod() { + return guaranteePeriod; + } + + public void setGuaranteePeriod(BigDecimal guaranteePeriod) { + this.guaranteePeriod = guaranteePeriod; + } + + public BigDecimal getMemberDecimal() { + return memberDecimal; + } + + public void setMemberDecimal(BigDecimal memberDecimal) { + this.memberDecimal = memberDecimal; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialVoSearch.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialVoSearch.java new file mode 100644 index 0000000..a78657f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialVoSearch.java @@ -0,0 +1,84 @@ +package com.reallin.smt.datasource.vo; + +public class MaterialVoSearch { + + private String barCode; + + private String name; + + private String mnemonic; + + private String brand; + + private String standard; + + private String model; + + private String color; + + private String unit; + + public String getBarCode() { + return barCode; + } + + public void setBarCode(String barCode) { + this.barCode = barCode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMnemonic() { + return mnemonic; + } + + public void setMnemonic(String mnemonic) { + this.mnemonic = mnemonic; + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialsListVo.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialsListVo.java new file mode 100644 index 0000000..9b8dd65 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/MaterialsListVo.java @@ -0,0 +1,24 @@ +package com.reallin.smt.datasource.vo; + +public class MaterialsListVo { + + private Long headerId; + + private String materialsList; + + public Long getHeaderId() { + return headerId; + } + + public void setHeaderId(Long headerId) { + this.headerId = headerId; + } + + public String getMaterialsList() { + return materialsList; + } + + public void setMaterialsList(String materialsList) { + this.materialsList = materialsList; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/NodeAttributes.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/NodeAttributes.java new file mode 100644 index 0000000..8ad0348 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/NodeAttributes.java @@ -0,0 +1,30 @@ +package com.reallin.smt.datasource.vo; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/3/13 18:11 + */ +public class NodeAttributes { + //编号 + private String no; + //类型 + private Integer type; + + public String getNo() { + return no; + } + + public void setNo(String no) { + this.no = no; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/PackBomVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/PackBomVo4List.java new file mode 100644 index 0000000..67fa525 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/PackBomVo4List.java @@ -0,0 +1,48 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.PackBom; + +/** + * 生产方案列表VO + */ +public class PackBomVo4List extends PackBom { + + /** + * 兼容字段:生产成品名称 + */ + private String productMaterialName; + + /** + * 生产成品名称 + */ + private String outputMaterialName; + + /** + * 组成物料数 + */ + private Integer itemCount; + + public String getProductMaterialName() { + return productMaterialName; + } + + public void setProductMaterialName(String productMaterialName) { + this.productMaterialName = productMaterialName; + } + + public String getOutputMaterialName() { + return outputMaterialName; + } + + public void setOutputMaterialName(String outputMaterialName) { + this.outputMaterialName = outputMaterialName; + } + + public Integer getItemCount() { + return itemCount; + } + + public void setItemCount(Integer itemCount) { + this.itemCount = itemCount; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionOrderVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionOrderVo4List.java new file mode 100644 index 0000000..d28f01f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionOrderVo4List.java @@ -0,0 +1,89 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.ProductionOrder; + +import java.math.BigDecimal; + +/** + * 生产工单列表VO + */ +public class ProductionOrderVo4List extends ProductionOrder { + + /** + * 兼容字段:生产成品名称 + */ + private String productMaterialName; + + /** + * 生产成品名称 + */ + private String outputMaterialName; + + /** + * BOM方案名称 + */ + private String bomName; + + /** + * 创建人名称 + */ + private String creatorName; + + /** + * 审批人名称 + */ + private String auditByName; + + /** + * 完工进度百分比 + */ + private BigDecimal progress; + + public String getProductMaterialName() { + return productMaterialName; + } + + public void setProductMaterialName(String productMaterialName) { + this.productMaterialName = productMaterialName; + } + + public String getOutputMaterialName() { + return outputMaterialName; + } + + public void setOutputMaterialName(String outputMaterialName) { + this.outputMaterialName = outputMaterialName; + } + + public String getBomName() { + return bomName; + } + + public void setBomName(String bomName) { + this.bomName = bomName; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getAuditByName() { + return auditByName; + } + + public void setAuditByName(String auditByName) { + this.auditByName = auditByName; + } + + public BigDecimal getProgress() { + return progress; + } + + public void setProgress(BigDecimal progress) { + this.progress = progress; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionReportVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionReportVo4List.java new file mode 100644 index 0000000..3263601 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionReportVo4List.java @@ -0,0 +1,61 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.ProductionReport; + +/** + * 完工报告列表VO + */ +public class ProductionReportVo4List extends ProductionReport { + + /** + * 生产成品名称 + */ + private String outputMaterialName; + + /** + * 仓库名称 + */ + private String depotName; + + /** + * 报工人名称 + */ + private String reportByName; + + /** + * 审核人名称 + */ + private String auditByName; + + public String getOutputMaterialName() { + return outputMaterialName; + } + + public void setOutputMaterialName(String outputMaterialName) { + this.outputMaterialName = outputMaterialName; + } + + public String getDepotName() { + return depotName; + } + + public void setDepotName(String depotName) { + this.depotName = depotName; + } + + public String getReportByName() { + return reportByName; + } + + public void setReportByName(String reportByName) { + this.reportByName = reportByName; + } + + public String getAuditByName() { + return auditByName; + } + + public void setAuditByName(String auditByName) { + this.auditByName = auditByName; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionRequisitionVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionRequisitionVo4List.java new file mode 100644 index 0000000..46b023f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/ProductionRequisitionVo4List.java @@ -0,0 +1,89 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.ProductionRequisition; + +import java.math.BigDecimal; + +/** + * 生产领料单列表VO + */ +public class ProductionRequisitionVo4List extends ProductionRequisition { + + /** + * 仓库名称 + */ + private String depotName; + + /** + * 创建人名称 + */ + private String creatorName; + + /** + * 确认人名称 + */ + private String confirmByName; + + /** + * 物料信息汇总 + */ + private String materialsList; + + /** + * 明细条数 + */ + private Integer itemCount; + + /** + * 申请数量合计 + */ + private BigDecimal totalRequiredQuantity; + + public String getDepotName() { + return depotName; + } + + public void setDepotName(String depotName) { + this.depotName = depotName; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getConfirmByName() { + return confirmByName; + } + + public void setConfirmByName(String confirmByName) { + this.confirmByName = confirmByName; + } + + public String getMaterialsList() { + return materialsList; + } + + public void setMaterialsList(String materialsList) { + this.materialsList = materialsList; + } + + public Integer getItemCount() { + return itemCount; + } + + public void setItemCount(Integer itemCount) { + this.itemCount = itemCount; + } + + public BigDecimal getTotalRequiredQuantity() { + return totalRequiredQuantity; + } + + public void setTotalRequiredQuantity(BigDecimal totalRequiredQuantity) { + this.totalRequiredQuantity = totalRequiredQuantity; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/SaleShipmentVo4List.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/SaleShipmentVo4List.java new file mode 100644 index 0000000..bd8a2ba --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/SaleShipmentVo4List.java @@ -0,0 +1,89 @@ +package com.reallin.smt.datasource.vo; + +import com.reallin.smt.datasource.entities.SaleShipment; + +import java.math.BigDecimal; + +public class SaleShipmentVo4List extends SaleShipment { + private String customerName; + private String creatorName; + private String approveByName; + private String shipByName; + private String confirmByName; + private String materialsList; + private BigDecimal planQuantity; + private BigDecimal actualQuantity; + private BigDecimal differenceQuantity; + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public String getApproveByName() { + return approveByName; + } + + public void setApproveByName(String approveByName) { + this.approveByName = approveByName; + } + + public String getShipByName() { + return shipByName; + } + + public void setShipByName(String shipByName) { + this.shipByName = shipByName; + } + + public String getConfirmByName() { + return confirmByName; + } + + public void setConfirmByName(String confirmByName) { + this.confirmByName = confirmByName; + } + + public String getMaterialsList() { + return materialsList; + } + + public void setMaterialsList(String materialsList) { + this.materialsList = materialsList; + } + + public BigDecimal getPlanQuantity() { + return planQuantity; + } + + public void setPlanQuantity(BigDecimal planQuantity) { + this.planQuantity = planQuantity; + } + + public BigDecimal getActualQuantity() { + return actualQuantity; + } + + public void setActualQuantity(BigDecimal actualQuantity) { + this.actualQuantity = actualQuantity; + } + + public BigDecimal getDifferenceQuantity() { + return differenceQuantity; + } + + public void setDifferenceQuantity(BigDecimal differenceQuantity) { + this.differenceQuantity = differenceQuantity; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/SupplierSimple.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/SupplierSimple.java new file mode 100644 index 0000000..3bbe359 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/SupplierSimple.java @@ -0,0 +1,12 @@ +package com.reallin.smt.datasource.vo; + +import lombok.Data; + +@Data +public class SupplierSimple { + + private Long id; + + private String supplier; + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/TreeNode.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/TreeNode.java new file mode 100644 index 0000000..6629b68 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/TreeNode.java @@ -0,0 +1,114 @@ +package com.reallin.smt.datasource.vo; + +import java.util.List; + +/** + * Description + * 树形结构基本元素 + * @Author: cjl + * @Date: 2019/2/19 11:27 + */ +public class TreeNode { + /** + * id主键 + * */ + private Long id; + private Long key; + private Long value; + /** + * title显示的文本 + * */ + private String title; + /** + *state节点状态,'open' 或 'closed',默认:'open'。如果为'closed'的时候,将不自动展开该节点。 + * */ + private String state="open"; + /** + *iconCls 节点图标id + * */ + private String iconCls; + /** + * checked 是否被选中 + * */ + private boolean checked; + /** + *attributes 自定义属性 + * */ + private String attributes; + /** + * children 子节点 + * */ + private List children; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getKey() { + return key; + } + + public void setKey(Long key) { + this.key = key; + } + + public Long getValue() { + return value; + } + + public void setValue(Long value) { + this.value = value; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getIconCls() { + return iconCls; + } + + public void setIconCls(String iconCls) { + this.iconCls = iconCls; + } + + public boolean isChecked() { + return checked; + } + + public void setChecked(boolean checked) { + this.checked = checked; + } + + public String getAttributes() { + return attributes; + } + + public void setAttributes(String attributes) { + this.attributes = attributes; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/TreeNodeEx.java b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/TreeNodeEx.java new file mode 100644 index 0000000..62df71b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/datasource/vo/TreeNodeEx.java @@ -0,0 +1,96 @@ +package com.reallin.smt.datasource.vo; + +import java.util.List; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/3/13 18:10 + */ +public class TreeNodeEx { + /** + * id主键 + * */ + private Long id; + /** + * text显示的文本 + * */ + private String text; + /** + *state节点状态,'open' 或 'closed',默认:'open'。如果为'closed'的时候,将不自动展开该节点。 + * */ + private String state="open"; + /** + *iconCls 节点图标id + * */ + private String iconCls; + /** + * checked 是否被选中 + * */ + private boolean checked; + /** + *attributes 自定义属性 + * */ + private NodeAttributes attributes; + /** + * children 子节点 + * */ + private List children; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getIconCls() { + return iconCls; + } + + public void setIconCls(String iconCls) { + this.iconCls = iconCls; + } + + public boolean isChecked() { + return checked; + } + + public void setChecked(boolean checked) { + this.checked = checked; + } + + public NodeAttributes getAttributes() { + return attributes; + } + + public void setAttributes(NodeAttributes attributes) { + this.attributes = attributes; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/exception/BusinessParamCheckingException.java b/smtERP-boot/src/main/java/com/reallin/smt/exception/BusinessParamCheckingException.java new file mode 100644 index 0000000..7252326 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/exception/BusinessParamCheckingException.java @@ -0,0 +1,32 @@ +package com.reallin.smt.exception; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import java.util.HashMap; +import java.util.Map; + +@Slf4j +@Getter +public class BusinessParamCheckingException extends Exception { + + private static final long serialVersionUID = 1L; + private int code; + private Map data; + + public BusinessParamCheckingException(int code, String reason) { + super(reason); + Map objectMap = new HashMap<>(); + objectMap.put("message", reason); + this.code = code; + this.data = objectMap; + } + + public BusinessParamCheckingException(int code, String reason, Throwable throwable) { + super(reason, throwable); + Map objectMap = new HashMap<>(); + objectMap.put("message", reason); + this.code = code; + this.data = objectMap; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/exception/BusinessRunTimeException.java b/smtERP-boot/src/main/java/com/reallin/smt/exception/BusinessRunTimeException.java new file mode 100644 index 0000000..4dec442 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/exception/BusinessRunTimeException.java @@ -0,0 +1,32 @@ +package com.reallin.smt.exception; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import java.util.HashMap; +import java.util.Map; + +@Slf4j +@Getter +public class BusinessRunTimeException extends RuntimeException { + + private static final long serialVersionUID = 1L; + private int code; + private Map data; + + public BusinessRunTimeException(int code, String reason) { + super(reason); + Map objectMap = new HashMap<>(); + objectMap.put("message", reason); + this.code = code; + this.data = objectMap; + } + + public BusinessRunTimeException(int code, String reason, Throwable throwable) { + super(reason, throwable); + Map objectMap = new HashMap<>(); + objectMap.put("message", reason); + this.code = code; + this.data = objectMap; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/exception/GlobalExceptionHandler.java b/smtERP-boot/src/main/java/com/reallin/smt/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..9227833 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/exception/GlobalExceptionHandler.java @@ -0,0 +1,44 @@ +package com.reallin.smt.exception; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.ExceptionConstants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import javax.servlet.http.HttpServletRequest; + +@Slf4j +@RestControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(value = Exception.class) + @ResponseBody + public Object handleException(Exception e, HttpServletRequest request) { + JSONObject status = new JSONObject(); + + // 针对业务参数异常的处理 + if (e instanceof BusinessParamCheckingException) { + status.put(ExceptionConstants.GLOBAL_RETURNS_CODE, ((BusinessParamCheckingException) e).getCode()); + status.put(ExceptionConstants.GLOBAL_RETURNS_DATA, ((BusinessParamCheckingException) e).getData()); + return status; + } + + //针对业务运行时异常的处理 + if (e instanceof BusinessRunTimeException) { + status.put(ExceptionConstants.GLOBAL_RETURNS_CODE, ((BusinessRunTimeException) e).getCode()); + status.put(ExceptionConstants.GLOBAL_RETURNS_DATA, ((BusinessRunTimeException) e).getData()); + return status; + } + + status.put(ExceptionConstants.GLOBAL_RETURNS_CODE, ExceptionConstants.SERVICE_SYSTEM_ERROR_CODE); + status.put(ExceptionConstants.GLOBAL_RETURNS_DATA, ExceptionConstants.SERVICE_SYSTEM_ERROR_MSG); + log.error("Global Exception Occured => url : {}, msg : {}", request.getRequestURL(), e.getMessage()); + /** + * 这里输出完整的堆栈信息,否则有些异常完全不知道哪里出错了。 + */ + log.error("Global Exception Occured => url : {}", request.getRequestURL(), e); + return status; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/exception/JshException.java b/smtERP-boot/src/main/java/com/reallin/smt/exception/JshException.java new file mode 100644 index 0000000..8200c4a --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/exception/JshException.java @@ -0,0 +1,27 @@ +package com.reallin.smt.exception; + +import com.reallin.smt.constants.ExceptionConstants; +import org.slf4j.Logger; + +/** + * 封装日志打印,收集日志 + * author: ji shenghua, qq 752718 920 + */ +public class JshException { + + public static void readFail(Logger logger, Exception e) { + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE, ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + + public static void writeFail(Logger logger, Exception e) { + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE,ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/exception/LegacyInventoryBusinessException.java b/smtERP-boot/src/main/java/com/reallin/smt/exception/LegacyInventoryBusinessException.java new file mode 100644 index 0000000..6b079a0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/exception/LegacyInventoryBusinessException.java @@ -0,0 +1,10 @@ +package com.reallin.smt.exception; + +/** + * 需要原样返回给旧盘点客户端的业务错误。 + */ +public class LegacyInventoryBusinessException extends RuntimeException { + public LegacyInventoryBusinessException(String message) { + super(message); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/exception/UtilException.java b/smtERP-boot/src/main/java/com/reallin/smt/exception/UtilException.java new file mode 100644 index 0000000..212c1a1 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/exception/UtilException.java @@ -0,0 +1,26 @@ +package com.reallin.smt.exception; + +/** + * 工具类异常 + * + * @author ji-sheng-hua + */ +public class UtilException extends RuntimeException +{ + private static final long serialVersionUID = 8247610319171014183L; + + public UtilException(Throwable e) + { + super(e.getMessage(), e); + } + + public UtilException(String message) + { + super(message); + } + + public UtilException(String message, Throwable throwable) + { + super(message, throwable); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/filter/LogCostFilter.java b/smtERP-boot/src/main/java/com/reallin/smt/filter/LogCostFilter.java new file mode 100644 index 0000000..7542296 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/filter/LogCostFilter.java @@ -0,0 +1,123 @@ +package com.reallin.smt.filter; + +import com.reallin.smt.service.RedisService; +import com.reallin.smt.service.LegacyInventoryAuthService; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import javax.servlet.annotation.WebInitParam; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; + +@WebFilter(filterName = "LogCostFilter", urlPatterns = {"/*"}, + initParams = {@WebInitParam(name = "filterPath", + value = "/apis/platformConfig/getPlatform#/apis/v2/api-docs#/apis/webjars#" + + "/apis/systemConfig/static#/apis/api/plugin/wechat/weChat/share#" + + "/apis/api/plugin/general-ledger/pdf/voucher")}) +public class LogCostFilter implements Filter { + + private static final String FILTER_PATH = "filterPath"; + + private String[] allowUrls; + @Resource + private RedisService redisService; + @Resource + private LegacyInventoryAuthService legacyInventoryAuthService; + @Value("${security.sync.api-key:}") + private String syncApiKey; + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + String filterPath = filterConfig.getInitParameter(FILTER_PATH); + if (!StringUtils.isEmpty(filterPath)) { + allowUrls = filterPath.contains("#") ? filterPath.split("#") : new String[]{filterPath}; + } + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletRequest servletRequest = (HttpServletRequest) request; + HttpServletResponse servletResponse = (HttpServletResponse) response; + String requestUrl = servletRequest.getRequestURI(); + if(requestUrl.contains("..") || requestUrl.contains("%2e") || requestUrl.contains("%2E")) { + servletResponse.setStatus(500); + servletResponse.getWriter().write("loginOut"); + return; + } + String path = requestUrl.substring(servletRequest.getContextPath().length()); + // Static Excel templates contain no business data; direct browser downloads have no token header. + if ("GET".equals(servletRequest.getMethod()) + && (path.equals("/smtInbound/template") || path.equals("/headquartersInbound/template"))) { + chain.doFilter(request, response); + return; + } + boolean inventoryPath = path.startsWith("/n2tpm/webmvc/Inventory/") + || path.startsWith("/webmvc/Inventory/"); + if (inventoryPath) { + boolean login = path.equals("/n2tpm/webmvc/Inventory/Login") || path.equals("/webmvc/Inventory/Login"); + if ((login && "POST".equals(servletRequest.getMethod())) + || legacyInventoryAuthService.authenticatedUser(servletRequest) != null) { + chain.doFilter(request, response); + } else { + servletResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + servletResponse.setContentType("application/json;charset=UTF-8"); + servletResponse.getWriter().write("{\"code\":\"401\",\"msg\":\"Authentication required\",\"data\":null}"); + } + return; + } + boolean syncPath = path.equals("/smtInbound/sync") || path.equals("/headquartersInbound/sync"); + if (syncPath && "POST".equals(servletRequest.getMethod()) && validSyncKey(servletRequest)) { + chain.doFilter(request, response); + return; + } + //具体,比如:处理若用户未登录,则跳转到登录页 + Object userId = redisService.getObjectFromSessionByKey(servletRequest,"userId"); + if(userId!=null) { //如果已登录,不阻止 + chain.doFilter(request, response); + return; + } + if (syncPath) { + servletResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + servletResponse.getWriter().write("loginOut"); + return; + } + if (requestUrl.equals("/apis/doc.html") || requestUrl.equals("/apis/user/login") + || requestUrl.equals("/apis/user/register") || requestUrl.equals("/apis/user/weixinLogin") + || requestUrl.equals("/apis/user/weixinBind") || requestUrl.equals("/apis/user/registerUser") + || requestUrl.equals("/apis/user/randomImage")) { + chain.doFilter(request, response); + return; + } + if (null != allowUrls && allowUrls.length > 0) { + for (String url : allowUrls) { + if (requestUrl.equals(url) || requestUrl.startsWith(url + "/")) { + chain.doFilter(request, response); + return; + } + } + } + servletResponse.setStatus(500); + if(!requestUrl.equals("/apis/user/logout") && !requestUrl.equals("/apis/function/findMenuByPNumber")) { + servletResponse.getWriter().write("loginOut"); + } + } + + private boolean validSyncKey(HttpServletRequest request) { + String supplied = request.getHeader("X-Sync-Api-Key"); + return syncApiKey != null && !syncApiKey.isEmpty() && supplied != null + && MessageDigest.isEqual(syncApiKey.getBytes(StandardCharsets.UTF_8), + supplied.getBytes(StandardCharsets.UTF_8)); + } + + @Override + public void destroy() { + + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/AccountHeadService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/AccountHeadService.java new file mode 100644 index 0000000..2cb8ff0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/AccountHeadService.java @@ -0,0 +1,433 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.AccountHeadMapper; +import com.reallin.smt.datasource.mappers.AccountHeadMapperEx; +import com.reallin.smt.datasource.mappers.AccountItemMapperEx; +import com.reallin.smt.datasource.mappers.AccountMapper; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import com.reallin.smt.utils.Tools; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import static com.reallin.smt.utils.Tools.getCenternTime; + +@Service +public class AccountHeadService { + private Logger logger = LoggerFactory.getLogger(AccountHeadService.class); + @Resource + private AccountHeadMapper accountHeadMapper; + @Resource + private AccountHeadMapperEx accountHeadMapperEx; + @Resource + private OrgaUserRelService orgaUserRelService; + @Resource + private AccountItemService accountItemService; + @Resource + private UserService userService; + @Resource + private SupplierService supplierService; + @Resource + private SystemConfigService systemConfigService; + @Resource + private LogService logService; + @Resource + private AccountItemMapperEx accountItemMapperEx; + @Resource + private AccountMapper accountMapper; + + public AccountHead getAccountHead(long id) throws Exception { + AccountHead result=null; + try{ + result=accountHeadMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getAccountHeadListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + AccountHeadExample example = new AccountHeadExample(); + example.createCriteria().andIdIn(idList); + list = accountHeadMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getAccountHead() throws Exception{ + AccountHeadExample example = new AccountHeadExample(); + List list=null; + try{ + list=accountHeadMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String type, String billNo, String beginTime, String endTime, + Long organId, Long creator, Long handsPersonId, Long accountId, String status, + String remark, String number, Long inOutItemId) throws Exception{ + List list = new ArrayList<>(); + try{ + String [] creatorArray = getCreatorArray(); + beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + PageUtils.startPage(); + list = accountHeadMapperEx.selectByConditionAccountHead(type, creatorArray, billNo, + beginTime, endTime, organId, creator, handsPersonId, accountId, status, remark, number, inOutItemId); + if (null != list) { + for (AccountHeadVo4ListEx ah : list) { + if(ah.getChangeAmount() != null) { + if(BusinessConstants.TYPE_MONEY_IN.equals(ah.getType())) { + ah.setChangeAmount(ah.getChangeAmount()); + } else if(BusinessConstants.TYPE_MONEY_OUT.equals(ah.getType())) { + ah.setChangeAmount(BigDecimal.ZERO.subtract(ah.getChangeAmount())); + } else { + ah.setChangeAmount(ah.getChangeAmount().abs()); + } + } + if(ah.getTotalPrice() != null) { + if(BusinessConstants.TYPE_MONEY_IN.equals(ah.getType())) { + ah.setTotalPrice(ah.getTotalPrice()); + } else if(BusinessConstants.TYPE_MONEY_OUT.equals(ah.getType())) { + ah.setTotalPrice(BigDecimal.ZERO.subtract(ah.getTotalPrice())); + } else { + ah.setTotalPrice(ah.getTotalPrice().abs()); + } + } + if(ah.getBillTime() !=null) { + ah.setBillTimeStr(getCenternTime(ah.getBillTime())); + } + } + } + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + /** + * 根据角色类型获取操作员数组 + * @return + * @throws Exception + */ + public String[] getCreatorArray() throws Exception { + return null; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertAccountHead(JSONObject obj, HttpServletRequest request) throws Exception{ + AccountHead accountHead = JSONObject.parseObject(obj.toJSONString(), AccountHead.class); + int result=0; + try{ + User userInfo=userService.getCurrentUser(); + accountHead.setCreator(userInfo==null?null:userInfo.getId()); + result = accountHeadMapper.insertSelective(accountHead); + logService.insertLog("财务单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(accountHead.getBillNo()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateAccountHead(JSONObject obj, HttpServletRequest request)throws Exception { + AccountHead accountHead = JSONObject.parseObject(obj.toJSONString(), AccountHead.class); + int result=0; + try{ + result = accountHeadMapper.updateByPrimaryKeySelective(accountHead); + logService.insertLog("财务单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(accountHead.getBillNo()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteAccountHead(Long id, HttpServletRequest request)throws Exception { + return batchDeleteAccountHeadByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAccountHead(String ids, HttpServletRequest request)throws Exception { + return batchDeleteAccountHeadByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAccountHeadByIds(String ids)throws Exception { + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + List list = getAccountHeadListByIds(ids); + for(AccountHead accountHead: list){ + if(!"0".equals(accountHead.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_HEAD_UN_AUDIT_DELETE_FAILED_CODE, + String.format(ExceptionConstants.ACCOUNT_HEAD_UN_AUDIT_DELETE_FAILED_MSG)); + } + } + //删除主表 + accountItemMapperEx.batchDeleteAccountItemByHeadIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + //删除子表 + accountHeadMapperEx.batchDeleteAccountHeadByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + //路径列表 + List pathList = new ArrayList<>(); + for(AccountHead accountHead: list){ + sb.append("[").append(accountHead.getBillNo()).append("]"); + if(StringUtil.isNotEmpty(accountHead.getFileName())) { + pathList.add(accountHead.getFileName()); + } + if("收预付款".equals(accountHead.getType())){ + if (accountHead.getOrganId() != null) { + //更新会员预付款 + supplierService.updateAdvanceIn(accountHead.getOrganId()); + } + } + } + //逻辑删除文件 + systemConfigService.deleteFileByPathList(pathList); + logService.insertLog("财务单据", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + return 1; + } + + /** + * 校验单据编号是否存在 + * @param id + * @param billNo + * @return + * @throws Exception + */ + public int checkIsBillNoExist(Long id, String billNo)throws Exception { + AccountHeadExample example = new AccountHeadExample(); + example.createCriteria().andIdNotEqualTo(id).andBillNoEqualTo(billNo).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = null; + try{ + list = accountHeadMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(String status, String accountHeadIds)throws Exception { + int result = 0; + List ahIds = new ArrayList<>(); + List noList = new ArrayList<>(); + List ids = StringUtil.strToLongList(accountHeadIds); + for(Long id: ids) { + AccountHead accountHead = getAccountHead(id); + if("0".equals(status)){ + //进行反审核操作 + if("1".equals(accountHead.getStatus())) { + ahIds.add(id); + noList.add(accountHead.getBillNo()); + } else { + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_HEAD_AUDIT_TO_UN_AUDIT_FAILED_CODE, + String.format(ExceptionConstants.ACCOUNT_HEAD_AUDIT_TO_UN_AUDIT_FAILED_MSG)); + } + } else if("1".equals(status)){ + //进行审核操作 + if("0".equals(accountHead.getStatus())) { + ahIds.add(id); + noList.add(accountHead.getBillNo()); + } else { + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_HEAD_UN_AUDIT_TO_AUDIT_FAILED_CODE, + String.format(ExceptionConstants.ACCOUNT_HEAD_UN_AUDIT_TO_AUDIT_FAILED_MSG)); + } + } + } + if(!ahIds.isEmpty()) { + AccountHead accountHead = new AccountHead(); + accountHead.setStatus(status); + AccountHeadExample example = new AccountHeadExample(); + example.createCriteria().andIdIn(ahIds); + result = accountHeadMapper.updateByExampleSelective(accountHead, example); + //记录日志 + if(!noList.isEmpty() && ("0".equals(status) || "1".equals(status))) { + String statusStr = status.equals("1")?"[审核]":"[反审核]"; + logService.insertLog("财务单据", + new StringBuffer(statusStr).append(String.join(", ", noList)).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + } else { + result = 1; + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void addAccountHeadAndDetail(String beanJson, String rows, HttpServletRequest request) throws Exception { + AccountHead accountHead = JSONObject.parseObject(beanJson, AccountHead.class); + //校验单号是否重复 + if(checkIsBillNoExist(0L, accountHead.getBillNo())>0) { + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_HEAD_BILL_NO_EXIST_CODE, + String.format(ExceptionConstants.ACCOUNT_HEAD_BILL_NO_EXIST_MSG)); + } + //校验付款账户和明细中的账户重复(转账单据) + if(BusinessConstants.TYPE_GIRO.equals(accountHead.getType())) { + JSONArray rowArr = JSONArray.parseArray(rows); + if (null != rowArr && rowArr.size()>0) { + for (int i = 0; i < rowArr.size(); i++) { + JSONObject object = JSONObject.parseObject(rowArr.getString(i)); + if (object.get("accountId") != null && !object.get("accountId").equals("")) { + Long accoutId = object.getLong("accountId"); + String accountName = accountMapper.selectByPrimaryKey(accoutId).getName(); + if(accoutId.equals(accountHead.getAccountId())) { + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_HEAD_ACCOUNT_REPEAT_CODE, + String.format(ExceptionConstants.ACCOUNT_HEAD_ACCOUNT_REPEAT_MSG, accountName)); + } + } + } + } + } + User userInfo=userService.getCurrentUser(); + accountHead.setCreator(userInfo==null?null:userInfo.getId()); + if(StringUtil.isEmpty(accountHead.getStatus())) { + accountHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); + } + accountHeadMapper.insertSelective(accountHead); + //根据单据编号查询单据id + AccountHeadExample dhExample = new AccountHeadExample(); + dhExample.createCriteria().andBillNoEqualTo(accountHead.getBillNo()).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = accountHeadMapper.selectByExample(dhExample); + if(list!=null) { + Long headId = list.get(0).getId(); + String type = list.get(0).getType(); + /**处理单据子表信息*/ + accountItemService.saveDetials(rows, headId, type, request); + } + if("收预付款".equals(accountHead.getType())){ + //更新会员预付款 + supplierService.updateAdvanceIn(accountHead.getOrganId()); + } + String statusStr = accountHead.getStatus().equals("1")?"[审核]":""; + logService.insertLog("财务单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(accountHead.getBillNo()).append(statusStr).toString(), request); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateAccountHeadAndDetail(String beanJson, String rows, HttpServletRequest request) throws Exception { + AccountHead accountHead = JSONObject.parseObject(beanJson, AccountHead.class); + //校验单号是否重复 + if(checkIsBillNoExist(accountHead.getId(), accountHead.getBillNo())>0) { + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_HEAD_BILL_NO_EXIST_CODE, + String.format(ExceptionConstants.ACCOUNT_HEAD_BILL_NO_EXIST_MSG)); + } + accountHeadMapper.updateByPrimaryKeySelective(accountHead); + //根据单据编号查询单据id + AccountHeadExample dhExample = new AccountHeadExample(); + dhExample.createCriteria().andBillNoEqualTo(accountHead.getBillNo()).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = accountHeadMapper.selectByExample(dhExample); + if(list!=null) { + Long headId = list.get(0).getId(); + String type = list.get(0).getType(); + /**处理单据子表信息*/ + accountItemService.saveDetials(rows, headId, type, request); + } + if("收预付款".equals(accountHead.getType())){ + //更新会员预付款 + supplierService.updateAdvanceIn(accountHead.getOrganId()); + } + String statusStr = accountHead.getStatus().equals("1")?"[审核]":""; + logService.insertLog("财务单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(accountHead.getBillNo()).append(statusStr).toString(), request); + } + + public List getDetailByNumber(String billNo)throws Exception { + List resList = new ArrayList(); + List list = null; + try{ + list = accountHeadMapperEx.getDetailByNumber(billNo); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if (null != list) { + for (AccountHeadVo4ListEx ah : list) { + if(ah.getChangeAmount() != null) { + if(BusinessConstants.TYPE_MONEY_IN.equals(ah.getType())) { + ah.setChangeAmount(ah.getChangeAmount()); + } else if(BusinessConstants.TYPE_MONEY_OUT.equals(ah.getType())) { + ah.setChangeAmount(BigDecimal.ZERO.subtract(ah.getChangeAmount())); + } else { + ah.setChangeAmount(ah.getChangeAmount().abs()); + } + } + if(ah.getTotalPrice() != null) { + if(BusinessConstants.TYPE_MONEY_IN.equals(ah.getType())) { + ah.setTotalPrice(ah.getTotalPrice()); + } else if(BusinessConstants.TYPE_MONEY_OUT.equals(ah.getType())) { + ah.setTotalPrice(BigDecimal.ZERO.subtract(ah.getTotalPrice())); + } else { + ah.setTotalPrice(ah.getTotalPrice().abs()); + } + } + if(ah.getBillTime() !=null) { + ah.setBillTimeStr(getCenternTime(ah.getBillTime())); + } + resList.add(ah); + } + } + return resList; + } + + + /** + * 根据单据id获取对应的收付款金额 + * @param billId + * @return + */ + public BigDecimal getFinancialBillPriceByBillId(Long billId) { + BigDecimal eachAmount = BigDecimal.ZERO; + if(billId!=null) { + List idList = new ArrayList<>(); + idList.add(billId); + List list = getFinancialBillPriceByBillIdList(idList); + if(list!=null && !list.isEmpty()) { + for (AccountItem accountItem : list) { + if(accountItem!=null && accountItem.getBillId()!=null) { + if(accountItem.getBillId().equals(billId)) { + eachAmount = accountItem.getEachAmount().abs(); + } + } + } + } + } + return eachAmount; + } + + public List getFinancialBillPriceByBillIdList(List idList) { + return accountHeadMapperEx.getFinancialBillPriceByBillIdList(idList); + } + + public List getFinancialBillNoByBillId(Long billId) { + return accountHeadMapperEx.getFinancialBillNoByBillId(billId); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/AccountItemService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/AccountItemService.java new file mode 100644 index 0000000..77dde75 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/AccountItemService.java @@ -0,0 +1,201 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.AccountItem; +import com.reallin.smt.datasource.entities.AccountItemExample; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.AccountItemMapper; +import com.reallin.smt.datasource.mappers.AccountItemMapperEx; +import com.reallin.smt.datasource.vo.AccountItemVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class AccountItemService { + private Logger logger = LoggerFactory.getLogger(AccountItemService.class); + + @Resource + private AccountItemMapper accountItemMapper; + @Resource + private AccountItemMapperEx accountItemMapperEx; + @Resource + private LogService logService; + @Resource + private UserService userService; + @Resource + private DepotHeadService depotHeadService; + + public List getAccountItem()throws Exception { + AccountItemExample example = new AccountItemExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=accountItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name, Integer type, String remark, int offset, int rows)throws Exception { + List list=null; + try{ + list = accountItemMapperEx.selectByConditionAccountItem(name, type, remark, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + AccountItemExample example = new AccountItemExample(); + example.createCriteria().andIdNotEqualTo(id).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = null; + try{ + list = accountItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertAccountItemWithObj(AccountItem accountItem)throws Exception { + int result=0; + try{ + result = accountItemMapper.insertSelective(accountItem); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateAccountItemWithObj(AccountItem accountItem)throws Exception { + int result=0; + try{ + result = accountItemMapper.updateByPrimaryKeySelective(accountItem); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public List getDetailList(Long headerId) { + List list=null; + try{ + list = accountItemMapperEx.getDetailList(headerId); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void saveDetials(String rows, Long headerId, String type, HttpServletRequest request) throws Exception { + //删除单据的明细 + deleteAccountItemHeadId(headerId); + JSONArray rowArr = JSONArray.parseArray(rows); + if (null != rowArr && rowArr.size()>0) { + List accountItemList = new ArrayList<>(); + for (int i = 0; i < rowArr.size(); i++) { + AccountItem accountItem = new AccountItem(); + JSONObject tempInsertedJson = JSONObject.parseObject(rowArr.getString(i)); + accountItem.setHeaderId(headerId); + if (tempInsertedJson.get("accountId") != null && !tempInsertedJson.get("accountId").equals("")) { + accountItem.setAccountId(tempInsertedJson.getLong("accountId")); + } + if (tempInsertedJson.get("inOutItemId") != null && !tempInsertedJson.get("inOutItemId").equals("")) { + accountItem.setInOutItemId(tempInsertedJson.getLong("inOutItemId")); + } + if (tempInsertedJson.get("billNumber") != null && !tempInsertedJson.get("billNumber").equals("")) { + String billNo = tempInsertedJson.getString("billNumber"); + accountItem.setBillId(depotHeadService.getDepotHead(billNo).getId()); + } + if (tempInsertedJson.get("needDebt") != null && !tempInsertedJson.get("needDebt").equals("")) { + accountItem.setNeedDebt(tempInsertedJson.getBigDecimal("needDebt")); + } + if (tempInsertedJson.get("finishDebt") != null && !tempInsertedJson.get("finishDebt").equals("")) { + accountItem.setFinishDebt(tempInsertedJson.getBigDecimal("finishDebt")); + } + if (tempInsertedJson.get("eachAmount") != null && !tempInsertedJson.get("eachAmount").equals("")) { + BigDecimal eachAmount = tempInsertedJson.getBigDecimal("eachAmount"); + if (type.equals("付款")) { + eachAmount = BigDecimal.ZERO.subtract(eachAmount); + } + accountItem.setEachAmount(eachAmount); + } else { + accountItem.setEachAmount(BigDecimal.ZERO); + } + accountItem.setRemark(tempInsertedJson.getString("remark")); + accountItemList.add(accountItem); + } + for (AccountItem accountItem : accountItemList) { + this.insertAccountItemWithObj(accountItem); + } + //更新业务单据的最终欠款 + for (AccountItem accountItem : accountItemList) { + if(accountItem.getBillId()!=null) { + DepotHead dh = depotHeadService.getDepotHead(accountItem.getBillId()); + if(dh!=null) { + BigDecimal debt = depotHeadService.getDebtByBill(dh); + if(debt.compareTo(BigDecimal.ZERO)!=0) { + depotHeadService.updateLastDebtByBillId(debt, accountItem.getBillId()); + } + } + } + } + } else { + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_HEAD_ROW_FAILED_CODE, + String.format(ExceptionConstants.ACCOUNT_HEAD_ROW_FAILED_MSG)); + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void deleteAccountItemHeadId(Long headerId)throws Exception { + AccountItemExample example = new AccountItemExample(); + example.createCriteria().andHeaderIdEqualTo(headerId); + try{ + accountItemMapper.deleteByExample(example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAccountItemByIds(String ids) throws Exception{ + logService.insertLog("财务明细", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + int result=0; + try{ + result = accountItemMapperEx.batchDeleteAccountItemByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public BigDecimal getEachAmountByBillId(Long billId) { + return accountItemMapperEx.getEachAmountByBillId(billId).abs(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/AccountService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/AccountService.java new file mode 100644 index 0000000..f0f9ee3 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/AccountService.java @@ -0,0 +1,583 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.base.PageDomain; +import com.reallin.smt.base.TableSupport; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.*; +import com.reallin.smt.datasource.vo.AccountVo4InOutList; +import com.reallin.smt.datasource.vo.AccountVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import com.reallin.smt.utils.Tools; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.util.*; + +@Service +public class AccountService { + private Logger logger = LoggerFactory.getLogger(AccountService.class); + + @Resource + private AccountMapper accountMapper; + + @Resource + private AccountMapperEx accountMapperEx; + + @Resource + private DepotHeadMapper depotHeadMapper; + @Resource + private DepotHeadMapperEx depotHeadMapperEx; + + @Resource + private AccountHeadMapper accountHeadMapper; + @Resource + private AccountHeadMapperEx accountHeadMapperEx; + + @Resource + private AccountItemMapper accountItemMapper; + @Resource + private AccountItemMapperEx accountItemMapperEx; + @Resource + private LogService logService; + @Resource + private UserService userService; + @Resource + private SystemConfigService systemConfigService; + + public Account getAccount(long id) throws Exception{ + return accountMapper.selectByPrimaryKey(id); + } + + public List getAccountListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + AccountExample example = new AccountExample(); + example.createCriteria().andIdIn(idList); + list = accountMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getAccount() throws Exception{ + List list=null; + try{ + AccountExample example = new AccountExample(); + example.createCriteria().andEnabledEqualTo(true).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id desc"); + list=accountMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getAccountByParam(String name, String serialNo) throws Exception{ + List list=null; + try{ + list=accountMapperEx.getAccountByParam(name, serialNo); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name, String serialNo, String remark) throws Exception{ + List list = null; + try{ + PageUtils.startPage(); + list = accountMapperEx.selectByConditionAccount(name, serialNo, remark); + String timeStr = Tools.getCurrentMonth(); + String bTime = Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME; + String eTime = Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME; + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Map thisMonthAccountSumMap = new HashMap<>(); + Map thisMonthAccountSumByHeadMap = new HashMap<>(); + Map thisMonthAccountSumByDetailMap = new HashMap<>(); + Map currentAccountSumMap = new HashMap<>(); + Map currentAccountSumByHeadMap = new HashMap<>(); + Map currentAccountSumByDetailMap = new HashMap<>(); + PageDomain pageDomain = TableSupport.buildPageRequest(); + int offset = (pageDomain.getCurrentPage() - 1) * pageDomain.getPageSize(); + int rows = pageDomain.getPageSize(); + List thisMonthAmountList = accountMapperEx.getAccountSumByParam(name, serialNo, bTime, eTime, forceFlag, offset, rows); + List currentAmountList = accountMapperEx.getAccountSumByParam(name, serialNo, null, null, forceFlag, offset, rows); + List thisMonthManyAmountList = accountMapperEx.getManyAccountSumByParam(bTime, eTime, forceFlag); + List currentManyAmountList = accountMapperEx.getManyAccountSumByParam(null, null, forceFlag); + for (AccountVo4Sum thisMonthAmount: thisMonthAmountList) { + thisMonthAccountSumMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSum()); + thisMonthAccountSumByHeadMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSumByHead()); + thisMonthAccountSumByDetailMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSumByDetail()); + } + for (AccountVo4Sum currentAmount: currentAmountList) { + currentAccountSumMap.put(currentAmount.getId(), currentAmount.getAccountSum()); + currentAccountSumByHeadMap.put(currentAmount.getId(), currentAmount.getAccountSumByHead()); + currentAccountSumByDetailMap.put(currentAmount.getId(), currentAmount.getAccountSumByDetail()); + } + if (null != list) { + for (AccountVo4List al : list) { + DecimalFormat df = new DecimalFormat(".##"); + BigDecimal thisMonthAmount = thisMonthAccountSumMap.get(al.getId()) + .add(thisMonthAccountSumByHeadMap.get(al.getId())) + .add(thisMonthAccountSumByDetailMap.get(al.getId())) + .add(getManyAccountSumParse(al.getId(), thisMonthManyAmountList)); + String thisMonthAmountFmt = "0"; + if ((thisMonthAmount.compareTo(BigDecimal.ZERO))!=0) { + thisMonthAmountFmt = df.format(thisMonthAmount); + } + al.setThisMonthAmount(thisMonthAmountFmt); //本月发生额 + BigDecimal currentAmount = currentAccountSumMap.get(al.getId()) + .add(currentAccountSumByHeadMap.get(al.getId())) + .add(currentAccountSumByDetailMap.get(al.getId())) + .add(getManyAccountSumParse(al.getId(), currentManyAmountList)) + .add(al.getInitialAmount()) ; + al.setCurrentAmount(currentAmount); + } + } + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertAccount(JSONObject obj, HttpServletRequest request)throws Exception { + Account account = JSONObject.parseObject(obj.toJSONString(), Account.class); + if(account.getInitialAmount() == null) { + account.setInitialAmount(BigDecimal.ZERO); + } + List accountList = getAccountByParam(null, null); + if(accountList.size() == 0) { + account.setIsDefault(true); + } else { + account.setIsDefault(false); + } + account.setEnabled(true); + int result=0; + try{ + result = accountMapper.insertSelective(account); + logService.insertLog("账户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(account.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateAccount(JSONObject obj, HttpServletRequest request)throws Exception { + Account account = JSONObject.parseObject(obj.toJSONString(), Account.class); + int result=0; + try{ + result = accountMapper.updateByPrimaryKeySelective(account); + logService.insertLog("账户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(account.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteAccount(Long id, HttpServletRequest request) throws Exception{ + return batchDeleteAccountByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAccount(String ids, HttpServletRequest request)throws Exception { + return batchDeleteAccountByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAccountByIds(String ids) throws Exception{ + int result=0; + String [] idArray=ids.split(","); + //校验财务主表 tbl_accounthead + List accountHeadList=null; + try{ + accountHeadList = accountHeadMapperEx.getAccountHeadListByAccountIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(accountHeadList!=null&&accountHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,AccountIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //校验财务子表 tbl_accountitem + List accountItemList=null; + try{ + accountItemList = accountItemMapperEx.getAccountItemListByAccountIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(accountItemList!=null&&accountItemList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,AccountIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //校验单据主表 tbl_depot_head + List depotHeadList =null; + try{ + depotHeadList = depotHeadMapperEx.getDepotHeadListByAccountIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(depotHeadList!=null&&depotHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,AccountIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getAccountListByIds(ids); + for(Account account: list){ + sb.append("[").append(account.getName()).append("]"); + } + logService.insertLog("账户", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + //校验通过执行删除操作 + try{ + result = accountMapperEx.batchDeleteAccountByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + AccountExample example = new AccountExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list = accountMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public List findBySelect()throws Exception { + AccountExample example = new AccountExample(); + example.createCriteria().andEnabledEqualTo(true).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id desc"); + List list=null; + try{ + list = accountMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + /** + * 单个账户的金额求和-入库和出库 + * @return + */ + public BigDecimal getAccountSum(Long accountId, String beginTime, String endTime, Boolean forceFlag) { + return accountMapperEx.getAccountSum(accountId, beginTime, endTime, forceFlag); + } + + /** + * 单个账户的金额求和-收入、支出、转账的单据表头的合计 + * @return + */ + public BigDecimal getAccountSumByHead(Long accountId, String beginTime, String endTime, Boolean forceFlag) { + return accountMapperEx.getAccountSumByHead(accountId, beginTime, endTime, forceFlag); + } + + /** + * 单个账户的金额求和-收款、付款、转账、收预付款的单据明细的合计 + * @return + */ + public BigDecimal getAccountSumByDetail(Long accountId, String beginTime, String endTime, Boolean forceFlag) { + return accountMapperEx.getAccountSumByDetail(accountId, beginTime, endTime, forceFlag); + } + + /** + * 单个账户的金额求和-多账户的明细合计 + * @return + */ + public BigDecimal getManyAccountSum(Long accountId, String beginTime, String endTime, Boolean forceFlag) { + BigDecimal accountSum = BigDecimal.ZERO; + List dataList = accountMapperEx.getManyAccountSum(accountId, beginTime, endTime, forceFlag); + if (dataList != null) { + for (DepotHead depotHead : dataList) { + if(depotHead != null) { + String accountIdList = depotHead.getAccountIdList(); + String accountMoneyList = depotHead.getAccountMoneyList(); + if(StringUtil.isNotEmpty(accountIdList) && StringUtil.isNotEmpty(accountMoneyList)) { + String[] aList = accountIdList.split(","); + String[] amList = accountMoneyList.split(","); + for (int i = 0; i < aList.length; i++) { + if (aList[i].equals(accountId.toString())) { + if(amList.length>0) { + accountSum = accountSum.add(new BigDecimal(amList[i])); + } + } + } + } + } + } + } + return accountSum; + } + + /** + * 单个账户的金额求和-多账户的明细合计(格式化) + * @return + */ + public BigDecimal getManyAccountSumParse(Long accountId, List manyAmountList) { + BigDecimal accountSum = BigDecimal.ZERO; + if (manyAmountList != null) { + for (DepotHead depotHead : manyAmountList) { + String accountIdList = depotHead.getAccountIdList(); + String accountMoneyList = depotHead.getAccountMoneyList(); + if(StringUtil.isNotEmpty(accountIdList) && StringUtil.isNotEmpty(accountMoneyList)) { + String[] aList = accountIdList.split(","); + String[] amList = accountMoneyList.split(","); + for (int i = 0; i < aList.length; i++) { + if (aList[i].equals(accountId.toString())) { + if(amList.length>0) { + accountSum = accountSum.add(new BigDecimal(amList[i])); + } + } + } + } + } + } + return accountSum; + } + + public List findAccountInOutList(Long accountId, String number, String beginTime, String endTime, + Boolean forceFlag, Integer offset, Integer rows) throws Exception{ + List list=null; + try{ + list = accountMapperEx.findAccountInOutList(accountId, number, beginTime, endTime, forceFlag, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int findAccountInOutListCount(Long accountId, String number, String beginTime, String endTime, Boolean forceFlag) throws Exception{ + int result=0; + try{ + result = accountMapperEx.findAccountInOutListCount(accountId, number, beginTime, endTime, forceFlag); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateIsDefault(Long accountId) throws Exception{ + int result=0; + try{ + //全部取消默认 + Account allAccount = new Account(); + allAccount.setIsDefault(false); + AccountExample allExample = new AccountExample(); + allExample.createCriteria(); + accountMapper.updateByExampleSelective(allAccount, allExample); + //给指定账户设为默认 + Account account = new Account(); + account.setIsDefault(true); + AccountExample example = new AccountExample(); + example.createCriteria().andIdEqualTo(accountId); + accountMapper.updateByExampleSelective(account, example); + logService.insertLog("账户",BusinessConstants.LOG_OPERATION_TYPE_EDIT+accountId, + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + result = 1; + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public Map getAccountMap() throws Exception { + List accountList = getAccount(); + Map accountMap = new HashMap<>(); + for(Account account : accountList){ + accountMap.put(account.getId(), account.getName()); + } + return accountMap; + } + + public String getAccountStrByIdAndMoney(Map accountMap, String accountIdList, String accountMoneyList){ + StringBuffer sb = new StringBuffer(); + List idList = StringUtil.strToLongList(accountIdList); + List moneyList = StringUtil.strToBigDecimalList(accountMoneyList); + for (int i = 0; i < idList.size(); i++) { + Long id = idList.get(i); + BigDecimal money = moneyList.get(i).abs(); + sb.append(accountMap.get(id) + "(" + money + "元) "); + } + return sb.toString(); + } + + public List listWithBalance(String name, String serialNo) throws Exception { + List list = null; + try{ + PageUtils.startPage(); + list = accountMapperEx.selectByConditionAccount(name, serialNo, null); + String timeStr = Tools.getCurrentMonth(); + String bTime = Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME; + String eTime = Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME; + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Map thisMonthAccountSumMap = new HashMap<>(); + Map thisMonthAccountSumByHeadMap = new HashMap<>(); + Map thisMonthAccountSumByDetailMap = new HashMap<>(); + Map currentAccountSumMap = new HashMap<>(); + Map currentAccountSumByHeadMap = new HashMap<>(); + Map currentAccountSumByDetailMap = new HashMap<>(); + PageDomain pageDomain = TableSupport.buildPageRequest(); + int offset = (pageDomain.getCurrentPage() - 1) * pageDomain.getPageSize(); + int rows = pageDomain.getPageSize(); + List thisMonthAmountList = accountMapperEx.getAccountSumByParam(name, serialNo, bTime, eTime, forceFlag, offset, rows); + List currentAmountList = accountMapperEx.getAccountSumByParam(name, serialNo, null, null, forceFlag, offset, rows); + List thisMonthManyAmountList = accountMapperEx.getManyAccountSumByParam(bTime, eTime, forceFlag); + List currentManyAmountList = accountMapperEx.getManyAccountSumByParam(null, null, forceFlag); + for (AccountVo4Sum thisMonthAmount: thisMonthAmountList) { + thisMonthAccountSumMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSum()); + thisMonthAccountSumByHeadMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSumByHead()); + thisMonthAccountSumByDetailMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSumByDetail()); + } + for (AccountVo4Sum currentAmount: currentAmountList) { + currentAccountSumMap.put(currentAmount.getId(), currentAmount.getAccountSum()); + currentAccountSumByHeadMap.put(currentAmount.getId(), currentAmount.getAccountSumByHead()); + currentAccountSumByDetailMap.put(currentAmount.getId(), currentAmount.getAccountSumByDetail()); + } + if (null != list) { + for (AccountVo4List al : list) { + DecimalFormat df = new DecimalFormat(".##"); + BigDecimal thisMonthAmount = thisMonthAccountSumMap.get(al.getId()) + .add(thisMonthAccountSumByHeadMap.get(al.getId())) + .add(thisMonthAccountSumByDetailMap.get(al.getId())) + .add(getManyAccountSumParse(al.getId(), thisMonthManyAmountList)); + String thisMonthAmountFmt = "0"; + if ((thisMonthAmount.compareTo(BigDecimal.ZERO))!=0) { + thisMonthAmountFmt = df.format(thisMonthAmount); + } + al.setThisMonthAmount(thisMonthAmountFmt); //本月发生额 + BigDecimal currentAmount = currentAccountSumMap.get(al.getId()) + .add(currentAccountSumByHeadMap.get(al.getId())) + .add(currentAccountSumByDetailMap.get(al.getId())) + .add(getManyAccountSumParse(al.getId(), currentManyAmountList)) + .add(al.getInitialAmount()); + al.setCurrentAmount(currentAmount); + } + } + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public Map getStatistics(String name, String serialNo) { + Map map = new HashMap<>(); + try { + List list = getAccountByParam(name, serialNo); + String timeStr = Tools.getCurrentMonth(); + String bTime = Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME; + String eTime = Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME; + BigDecimal allMonthAmount = BigDecimal.ZERO; + BigDecimal allCurrentAmount = BigDecimal.ZERO; + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Map thisMonthAccountSumMap = new HashMap<>(); + Map thisMonthAccountSumByHeadMap = new HashMap<>(); + Map thisMonthAccountSumByDetailMap = new HashMap<>(); + Map currentAccountSumMap = new HashMap<>(); + Map currentAccountSumByHeadMap = new HashMap<>(); + Map currentAccountSumByDetailMap = new HashMap<>(); + List thisMonthAmountList = accountMapperEx.getAccountSumByParam(name, serialNo, bTime, eTime, forceFlag, null, null); + List currentAmountList = accountMapperEx.getAccountSumByParam(name, serialNo, null, null, forceFlag, null, null); + List thisMonthManyAmountList = accountMapperEx.getManyAccountSumByParam(bTime, eTime, forceFlag); + List currentManyAmountList = accountMapperEx.getManyAccountSumByParam(null, null, forceFlag); + for (AccountVo4Sum thisMonthAmount: thisMonthAmountList) { + thisMonthAccountSumMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSum()); + thisMonthAccountSumByHeadMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSumByHead()); + thisMonthAccountSumByDetailMap.put(thisMonthAmount.getId(), thisMonthAmount.getAccountSumByDetail()); + } + for (AccountVo4Sum currentAmount: currentAmountList) { + currentAccountSumMap.put(currentAmount.getId(), currentAmount.getAccountSum()); + currentAccountSumByHeadMap.put(currentAmount.getId(), currentAmount.getAccountSumByHead()); + currentAccountSumByDetailMap.put(currentAmount.getId(), currentAmount.getAccountSumByDetail()); + } + if (null != list) { + for (Account a : list) { + BigDecimal monthAmount = thisMonthAccountSumMap.get(a.getId()) + .add(thisMonthAccountSumByHeadMap.get(a.getId())) + .add(thisMonthAccountSumByDetailMap.get(a.getId())) + .add(getManyAccountSumParse(a.getId(), thisMonthManyAmountList)); + BigDecimal currentAmount = currentAccountSumMap.get(a.getId()) + .add(currentAccountSumByHeadMap.get(a.getId())) + .add(currentAccountSumByDetailMap.get(a.getId())) + .add(getManyAccountSumParse(a.getId(), currentManyAmountList)) + .add(a.getInitialAmount()); + allMonthAmount = allMonthAmount.add(monthAmount); + allCurrentAmount = allCurrentAmount.add(currentAmount); + } + } + map.put("allMonthAmount", priceFormat(allMonthAmount)); //本月发生额 + map.put("allCurrentAmount", priceFormat(allCurrentAmount)); //当前总金额 + } catch (Exception e) { + JshException.readFail(logger, e); + } + return map; + } + + /** + * 价格格式化 + * @param price + * @return + */ + private String priceFormat(BigDecimal price) { + String priceFmt = "0"; + DecimalFormat df = new DecimalFormat(".##"); + if ((price.compareTo(BigDecimal.ZERO))!=0) { + priceFmt = df.format(price); + } + return priceFmt; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids)throws Exception { + logService.insertLog("账户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ENABLED).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List accountIds = StringUtil.strToLongList(ids); + Account account = new Account(); + account.setEnabled(status); + AccountExample example = new AccountExample(); + example.createCriteria().andIdIn(accountIds); + int result=0; + try{ + result = accountMapper.updateByExampleSelective(account, example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/AssetManagementService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/AssetManagementService.java new file mode 100644 index 0000000..a06938b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/AssetManagementService.java @@ -0,0 +1,628 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.Asset; +import com.reallin.smt.datasource.entities.AssetCategory; +import com.reallin.smt.datasource.entities.AssetDevice; +import com.reallin.smt.datasource.entities.AssetInventory; +import com.reallin.smt.datasource.entities.AssetInventoryDetail; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.AssetManagementMapper; +import com.reallin.smt.datasource.vo.InventoryOperatorOption; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.utils.PageUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashSet; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ThreadLocalRandom; + +/** + * 资产管理业务。盘点单创建时固化台账快照,确保历史盘点结果可追溯。 + */ +@Service +public class AssetManagementService { + public static final String STATUS_DRAFT = "DRAFT"; + public static final String STATUS_ACCEPTED = "ACCEPTED"; + public static final String STATUS_IN_PROGRESS = "IN_PROGRESS"; + public static final String STATUS_PENDING_AUDIT = "PENDING_AUDIT"; + public static final String STATUS_COMPLETED = "COMPLETED"; + public static final String STATUS_CLOSED = "CLOSED"; + + @Resource + private AssetManagementMapper mapper; + @Resource + private UserService userService; + @Resource + private LogService logService; + + private User currentUser() throws Exception { + User user = userService.getCurrentUser(); + if (user == null) { + throw businessError("无法获取当前用户信息"); + } + return user; + } + + public List listAssets(String keyword, Long categoryId, String status) throws Exception { + currentUser(); + PageUtils.startPage(); + return mapper.selectAssets(keyword, categoryId, status); + } + + public Map assetDashboard() throws Exception { + currentUser(); + Map data = new HashMap<>(); + data.put("summary", mapper.selectAssetDashboardSummary()); + data.put("categoryDistribution", mapper.selectAssetCategoryDistribution()); + data.put("statusDistribution", mapper.selectAssetStatusDistribution()); + data.put("departmentDistribution", mapper.selectAssetDepartmentDistribution()); + data.put("deviceCategoryDistribution", mapper.selectDeviceCategoryDistribution()); + data.put("recentInventories", mapper.selectRecentAssetInventories()); + data.put("updatedAt", new Date()); + return data; + } + + public List assetOptions() throws Exception { + currentUser(); + return mapper.selectAssets(null, null, null); + } + + public List assetCategoryOptions() throws Exception { + currentUser(); + return mapper.selectAssetCategories(null, true); + } + + public List listAssetCategories(String keyword) throws Exception { + currentUser(); + return mapper.selectAssetCategories(keyword, null); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int saveAssetCategory(JSONObject json) throws Exception { + User user = currentUser(); + AssetCategory record = json.toJavaObject(AssetCategory.class); + require(record.getCategoryCode(), "种类编码不能为空"); + require(record.getCategoryName(), "种类名称不能为空"); + record.setCategoryCode(record.getCategoryCode().trim().toUpperCase(Locale.ROOT)); + record.setCategoryName(record.getCategoryName().trim()); + if (mapper.countAssetCategoryCode(record.getCategoryCode(), record.getId()) > 0) { + throw businessError("种类编码已存在"); + } + if (mapper.countAssetCategoryName(record.getCategoryName(), record.getId()) > 0) { + throw businessError("种类名称已存在"); + } + if (record.getSort() == null) record.setSort(100); + if (record.getEnabled() == null) record.setEnabled(true); + record.setUpdater(user.getId()); + if (record.getId() == null) { + record.setCreator(user.getId()); + return mapper.insertAssetCategory(record); + } + if (mapper.selectAssetCategoryById(record.getId()) == null) throw businessError("资产种类不存在"); + return mapper.updateAssetCategory(record); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteAssetCategory(Long id) throws Exception { + User user = currentUser(); + AssetCategory category = mapper.selectAssetCategoryById(id); + if (category == null) throw businessError("资产种类不存在"); + if (mapper.countAssetsByCategory(id) > 0) throw businessError("该种类下仍有资产,不能删除"); + return mapper.deleteAssetCategory(id, user.getId()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int saveAsset(JSONObject json) throws Exception { + User user = currentUser(); + Asset record = json.toJavaObject(Asset.class); + require(record.getAssetCode(), "资产编号不能为空"); + require(record.getAssetName(), "资产名称不能为空"); + if (record.getCategoryId() == null) throw businessError("请选择资产种类"); + AssetCategory category = mapper.selectAssetCategoryById(record.getCategoryId()); + if (category == null || !Boolean.TRUE.equals(category.getEnabled())) { + throw businessError("选择的资产种类不存在或已停用"); + } + if (mapper.countAssetCode(record.getAssetCode().trim(), record.getId()) > 0) { + throw businessError("资产编号已存在"); + } + record.setAssetCode(record.getAssetCode().trim()); + record.setAssetCategory(category.getCategoryName()); + record.setUpdater(user.getId()); + if (record.getQuantity() == null) record.setQuantity(BigDecimal.ONE); + if (record.getOriginalValue() == null) record.setOriginalValue(BigDecimal.ZERO); + if (isBlank(record.getUnit())) record.setUnit("项"); + if (isBlank(record.getStatus())) record.setStatus("IN_USE"); + int result; + if (record.getId() == null) { + record.setCreator(user.getId()); + if (isBlank(record.getSource())) record.setSource("MANUAL"); + result = mapper.insertAsset(record); + } else { + ensureAsset(record.getId()); + result = mapper.updateAsset(record); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteAsset(Long id) throws Exception { + User user = currentUser(); + ensureAsset(id); + if (mapper.countLinkedDevices(id) > 0) throw businessError("该资产仍关联设备,不能删除"); + if (mapper.countOpenInventoryTarget("ASSET", id) > 0) throw businessError("该资产存在未关结的盘点任务,不能删除"); + int result = mapper.deleteAsset(id, user.getId()); + logService.insertLog("资产台账", "删除资产[" + id + "]", currentRequest()); + return result; + } + + public List listDevices(String keyword, String category, String status) throws Exception { + currentUser(); + PageUtils.startPage(); + return mapper.selectDevices(keyword, category, status); + } + + public List deviceOptions() throws Exception { + currentUser(); + return mapper.selectDeviceOptions(); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int saveDevice(JSONObject json) throws Exception { + User user = currentUser(); + AssetDevice record = json.toJavaObject(AssetDevice.class); + require(record.getDeviceCode(), "设备编号不能为空"); + require(record.getDeviceName(), "设备名称不能为空"); + if (mapper.countDeviceCode(record.getDeviceCode().trim(), record.getId()) > 0) { + throw businessError("设备编号已存在"); + } + if (record.getAssetId() != null) ensureAsset(record.getAssetId()); + record.setDeviceCode(record.getDeviceCode().trim()); + record.setUpdater(user.getId()); + if (isBlank(record.getStatus())) record.setStatus("IN_USE"); + if (record.getId() == null) { + record.setCreator(user.getId()); + return mapper.insertDevice(record); + } + ensureDevice(record.getId()); + return mapper.updateDevice(record); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteDevice(Long id) throws Exception { + User user = currentUser(); + ensureDevice(id); + if (mapper.countOpenInventoryTarget("DEVICE", id) > 0) throw businessError("该设备存在未关结的盘点任务,不能删除"); + int result = mapper.deleteDevice(id, user.getId()); + logService.insertLog("设备台账", "删除设备[" + id + "]", currentRequest()); + return result; + } + + public List listInventories(String keyword, String status, String scopeType, + String plannedStart, String plannedEnd, + Long inventoryUserId) throws Exception { + currentUser(); + PageUtils.startPage(); + return mapper.selectInventories(keyword, status, scopeType, plannedStart, plannedEnd, + inventoryUserId); + } + + public List inventoryOperatorOptions() throws Exception { + currentUser(); + return mapper.selectInventoryOperators(); + } + + public List listInventoryDetails(Long inventoryId, String detailStatus, + String keyword) throws Exception { + currentUser(); + ensureInventory(inventoryId); + PageUtils.startPage(); + List details = mapper.selectInventoryDetails(inventoryId, detailStatus, keyword); + Map> images = new HashMap<>(); + for (Map row : mapper.selectInventoryDetailImages(inventoryId)) { + Long detailId = safeLong(firstValue(row, "detailId", "DETAILID", "detail_id")); + Object path = firstValue(row, "filePath", "FILEPATH", "file_path"); + if (detailId != null && path != null && !isBlank(path.toString())) { + images.computeIfAbsent(detailId, key -> new ArrayList<>()) + .add("/apis/systemConfig/static/" + path.toString().replace('\\', '/')); + } + } + for (AssetInventoryDetail detail : details) { + detail.setImageUrls(images.getOrDefault(detail.getId(), java.util.Collections.emptyList())); + if ("SURPLUS".equals(detail.getInventoryStatus()) || "SHORTAGE".equals(detail.getInventoryStatus())) { + detail.setInventoryStatus("ABNORMAL"); + } + } + return details; + } + + /** + * 创建盘点单及快照。externalRequestId 用于协同服务重试幂等。 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public AssetInventory createInventory(JSONObject json, String defaultSource) throws Exception { + User user = currentUser(); + AssetInventory input = json == null ? new AssetInventory() : json.toJavaObject(AssetInventory.class); + if (isBlank(input.getExternalRequestId()) == false) { + AssetInventory existing = mapper.selectInventoryByExternalRequestId(input.getExternalRequestId()); + if (existing != null) return existing; + } + boolean specifiedTargets = json != null && (json.containsKey("assetIds") || json.containsKey("deviceIds")); + Set assetIds = idSet(json, "assetIds"); + Set deviceIds = idSet(json, "deviceIds"); + if (specifiedTargets && assetIds.isEmpty() && deviceIds.isEmpty()) { + throw businessError("请至少选择一项资产或设备"); + } + String scope = specifiedTargets ? selectedScope(assetIds, deviceIds) : normalizeScope(input.getScopeType()); + List assets = ("ASSET".equals(scope) || "ALL".equals(scope)) + ? mapper.selectAssets(null, null, null) : java.util.Collections.emptyList(); + List devices = ("DEVICE".equals(scope) || "ALL".equals(scope)) + ? mapper.selectDeviceOptions() : java.util.Collections.emptyList(); + if (specifiedTargets) { + assets.removeIf(asset -> !assetIds.contains(asset.getId())); + devices.removeIf(device -> !deviceIds.contains(device.getId())); + if (assets.size() != assetIds.size() || devices.size() != deviceIds.size()) { + throw businessError("选择的资产或设备不存在或已停用"); + } + } + if (assets.isEmpty() && devices.isEmpty()) { + throw businessError("无可创建盘点任务的台账数据,请先维护资产或设备信息"); + } + Date now = new Date(); + Date plannedAt = input.getPlannedAt() == null ? now : input.getPlannedAt(); + Date deadline = input.getDeadline(); + InventoryOperatorOption inventoryOperator = null; + if ("MANUAL".equals(defaultSource)) { + require(input.getPlanName(), "请输入计划名称"); + if (input.getPlannedAt() == null || deadline == null) { + throw businessError("请选择计划开始时间和计划结束时间"); + } + if (!plannedAt.before(deadline)) throw businessError("计划结束时间必须晚于计划开始时间"); + if (input.getInventoryUserId() == null) throw businessError("请选择盘点操作人员"); + } else if (deadline == null) { + deadline = new Date(plannedAt.getTime() + 7L * 24 * 60 * 60 * 1000); + } + if (input.getInventoryUserId() != null) { + inventoryOperator = mapper.selectInventoryOperatorById(input.getInventoryUserId()); + if (inventoryOperator == null) { + throw businessError("\u9009\u62e9\u7684\u76d8\u70b9\u8d26\u53f7\u4e0d\u5b58\u5728\u6216\u5df2\u5220\u9664"); + } + } + AssetInventory inventory = new AssetInventory(); + inventory.setInventoryNo(nextInventoryNo()); + inventory.setPlanName(isBlank(input.getPlanName()) ? "资产盘点-" + new SimpleDateFormat("yyyyMMdd").format(now) : input.getPlanName()); + inventory.setScopeType(scope); + inventory.setPlannedAt(plannedAt); + inventory.setDeadline(deadline); + inventory.setStatus(STATUS_DRAFT); + inventory.setTotalCount(assets.size() + devices.size()); + inventory.setInventoriedCount(0); + inventory.setNormalCount(0); + inventory.setAbnormalCount(0); + inventory.setInventoryUserId(inventoryOperator == null ? null : inventoryOperator.getId()); + inventory.setInventoryUserName(inventoryOperator == null ? "待分配" : inventoryOperator.getName()); + inventory.setSource(isBlank(input.getSource()) ? defaultSource : input.getSource()); + inventory.setExternalRequestId(input.getExternalRequestId()); + inventory.setRemark(input.getRemark()); + inventory.setCreator(user.getId()); + mapper.insertInventory(inventory); + for (Asset asset : assets) mapper.insertInventoryDetail(toDetail(inventory, asset)); + for (AssetDevice device : devices) mapper.insertInventoryDetail(toDetail(inventory, device)); + logService.insertLog("资产盘点", "创建盘点单[" + inventory.getInventoryNo() + "]", currentRequest()); + return inventory; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public AssetInventory startInventory(Long id) throws Exception { + User user = currentUser(); + AssetInventory inventory = ensureInventory(id); + if (!STATUS_DRAFT.equals(inventory.getStatus()) && !STATUS_ACCEPTED.equals(inventory.getStatus())) { + throw businessError("只有草稿或待盘点状态的盘点单可以开始盘点"); + } + inventory.setStatus(STATUS_IN_PROGRESS); + inventory.setStartedAt(new Date()); + inventory.setUpdater(user.getId()); + mapper.updateInventory(inventory); + return inventory; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public AssetInventory recordInventory(JSONObject json) throws Exception { + User user = currentUser(); + Long inventoryId = json.getLong("inventoryId"); + Long detailId = json.getLong("id"); + String targetCode = json.getString("targetCode"); + AssetInventory inventory = ensureInventory(inventoryId); + if (STATUS_DRAFT.equals(inventory.getStatus()) || STATUS_ACCEPTED.equals(inventory.getStatus())) { + inventory.setStatus(STATUS_IN_PROGRESS); + inventory.setStartedAt(new Date()); + inventory.setUpdater(user.getId()); + mapper.updateInventory(inventory); + } + if (!STATUS_IN_PROGRESS.equals(inventory.getStatus())) throw businessError("当前盘点单不能继续盘点"); + AssetInventoryDetail detail = mapper.selectInventoryDetail(detailId, inventoryId, targetCode); + if (detail == null) throw businessError("盘点明细不存在或编码不属于当前盘点单"); + detail.setActualQuantity(json.getBigDecimal("actualQuantity") == null ? detail.getBookQuantity() : json.getBigDecimal("actualQuantity")); + detail.setActualDepartment(isBlank(json.getString("actualDepartment")) ? detail.getBookDepartment() : json.getString("actualDepartment")); + detail.setActualLocation(isBlank(json.getString("actualLocation")) ? detail.getBookLocation() : json.getString("actualLocation")); + detail.setRemark(json.getString("remark")); + detail.setInventoryStatus(resolveDetailStatus(json.getString("inventoryStatus"), detail)); + detail.setInventoryTime(new Date()); + detail.setInventoryUserId(user.getId()); + detail.setInventoryUserName(user.getUsername()); + mapper.updateInventoryDetail(detail); + if ("DEVICE".equals(detail.getTargetType())) mapper.updateDeviceInventoryTime(detail.getTargetId()); + refreshInventoryCounters(inventory, user.getId()); + return mapper.selectInventoryById(inventoryId); + } + + /** + * 接收外部盘点服务的单项回传,同时兼容原设备项目的字段名称。 + * 同一明细重复回传时直接返回当前盘点单,避免重复计数。 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public AssetInventory recordInventoryFromCollaboration(JSONObject json) throws Exception { + User user = currentUser(); + JSONObject input = json == null ? new JSONObject() : json; + Long inventoryId = safeLong(input.get("inventoryId")); + AssetInventory inventory = inventoryId == null ? null : mapper.selectInventoryById(inventoryId); + if (inventory == null) { + String inventoryNo = firstNotBlank(input.getString("inventoryNo"), input.getString("inventoryDoc")); + if (!isBlank(inventoryNo)) inventory = mapper.selectInventoryByNo(inventoryNo); + } + if (inventory == null) throw businessError("盘点单不存在,请传入有效的 inventoryId 或 inventoryNo"); + + Long detailId = safeLong(input.get("detailId")); + if (detailId == null) detailId = safeLong(input.get("id")); + String targetCode = firstNotBlank(input.getString("targetCode"), input.getString("deviceSn"), + input.getString("deviceCode"), input.getString("assetCode")); + if (detailId == null && isBlank(targetCode)) { + throw businessError("请传入 detailId 或资产/设备编码"); + } + AssetInventoryDetail detail = mapper.selectInventoryDetail(detailId, inventory.getId(), targetCode); + if (detail == null) throw businessError("盘点明细不存在,请传入有效的 detailId 或资产/设备编码"); + if (!"PENDING".equals(detail.getInventoryStatus())) { + return mapper.selectInventoryById(inventory.getId()); + } + + JSONObject record = new JSONObject(); + record.put("inventoryId", inventory.getId()); + record.put("id", detail.getId()); + record.put("targetCode", detail.getTargetCode()); + record.put("actualQuantity", input.getBigDecimal("actualQuantity") == null + ? detail.getBookQuantity() : input.getBigDecimal("actualQuantity")); + record.put("actualDepartment", firstNotBlank(input.getString("actualDepartment"), input.getString("useDept"))); + record.put("actualLocation", firstNotBlank(input.getString("actualLocation"), input.getString("usePlace"))); + record.put("inventoryStatus", collaborationDetailStatus(input.getString("inventoryStatus"))); + record.put("remark", input.getString("remark")); + return recordInventory(record); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public AssetInventory submitInventory(Long id) throws Exception { + User user = currentUser(); + AssetInventory inventory = ensureInventory(id); + if (!STATUS_IN_PROGRESS.equals(inventory.getStatus())) throw businessError("只有盘点中单据可以提审"); + refreshInventoryCounters(inventory, user.getId()); + inventory = mapper.selectInventoryById(id); + if (inventory.getInventoriedCount() == null || !inventory.getInventoriedCount().equals(inventory.getTotalCount())) { + throw businessError("仍有未盘点明细,不能提审"); + } + inventory.setStatus(STATUS_PENDING_AUDIT); + inventory.setCompletedAt(new Date()); + inventory.setUpdater(user.getId()); + mapper.updateInventory(inventory); + return inventory; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public AssetInventory auditInventory(Long id, boolean approved, String remark) throws Exception { + User user = currentUser(); + AssetInventory inventory = ensureInventory(id); + if (!STATUS_PENDING_AUDIT.equals(inventory.getStatus())) throw businessError("只有待审核盘点单可以审核"); + inventory.setStatus(approved ? STATUS_COMPLETED : STATUS_IN_PROGRESS); + inventory.setAuditUserId(user.getId()); + inventory.setAuditTime(new Date()); + inventory.setRemark(isBlank(remark) ? inventory.getRemark() : remark); + inventory.setUpdater(user.getId()); + mapper.updateInventory(inventory); + return inventory; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public AssetInventory closeInventory(Long id) throws Exception { + User user = currentUser(); + AssetInventory inventory = ensureInventory(id); + if (STATUS_CLOSED.equals(inventory.getStatus())) return inventory; + inventory.setStatus(STATUS_CLOSED); + inventory.setUpdater(user.getId()); + mapper.updateInventory(inventory); + return inventory; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteInventory(Long id) throws Exception { + User user = currentUser(); + AssetInventory inventory = ensureInventory(id); + if (!STATUS_DRAFT.equals(inventory.getStatus())) throw businessError("只能删除草稿状态的盘点单"); + return mapper.deleteInventory(id, user.getId()); + } + + private void refreshInventoryCounters(AssetInventory inventory, Long userId) { + Map counts = mapper.countInventoryDetails(inventory.getId()); + inventory.setTotalCount(number(counts, "totalCount", "TOTALCOUNT")); + inventory.setInventoriedCount(number(counts, "inventoriedCount", "INVENTORIEDCOUNT")); + inventory.setNormalCount(number(counts, "normalCount", "NORMALCOUNT")); + inventory.setAbnormalCount(number(counts, "abnormalCount", "ABNORMALCOUNT")); + inventory.setUpdater(userId); + mapper.updateInventory(inventory); + } + + private AssetInventoryDetail toDetail(AssetInventory inventory, Asset asset) { + AssetInventoryDetail detail = baseDetail(inventory); + detail.setTargetType("ASSET"); + detail.setTargetId(asset.getId()); + detail.setTargetCode(asset.getAssetCode()); + detail.setTargetName(asset.getAssetName()); + detail.setModel(asset.getSpecification()); + detail.setBookQuantity(asset.getQuantity() == null ? BigDecimal.ONE : asset.getQuantity()); + detail.setBookDepartment(asset.getUseDepartment()); + detail.setBookLocation(asset.getLocation()); + return detail; + } + + private AssetInventoryDetail toDetail(AssetInventory inventory, AssetDevice device) { + AssetInventoryDetail detail = baseDetail(inventory); + detail.setTargetType("DEVICE"); + detail.setTargetId(device.getId()); + detail.setTargetCode(device.getDeviceCode()); + detail.setTargetName(device.getDeviceName()); + detail.setModel(device.getModel()); + detail.setBookQuantity(BigDecimal.ONE); + detail.setBookDepartment(device.getUseDepartment()); + detail.setBookLocation(device.getLocation()); + return detail; + } + + private AssetInventoryDetail baseDetail(AssetInventory inventory) { + AssetInventoryDetail detail = new AssetInventoryDetail(); + detail.setInventoryId(inventory.getId()); + detail.setInventoryStatus("PENDING"); + detail.setActualQuantity(BigDecimal.ZERO); + return detail; + } + + private String resolveDetailStatus(String requested, AssetInventoryDetail detail) { + if (!isBlank(requested) && ("NORMAL".equals(requested) || "INVENTORIED".equals(requested) + || "ABNORMAL".equals(requested))) return requested; + int compared = detail.getActualQuantity().compareTo(detail.getBookQuantity()); + if (compared != 0) return "ABNORMAL"; + boolean placeChanged = !same(detail.getBookLocation(), detail.getActualLocation()) + || !same(detail.getBookDepartment(), detail.getActualDepartment()); + return placeChanged ? "ABNORMAL" : "NORMAL"; + } + + private Asset ensureAsset(Long id) { + Asset record = mapper.selectAssetById(id); + if (record == null) throw businessError("资产不存在"); + return record; + } + + private AssetDevice ensureDevice(Long id) { + AssetDevice record = mapper.selectDeviceById(id); + if (record == null) throw businessError("设备不存在"); + return record; + } + + private AssetInventory ensureInventory(Long id) { + if (id == null) throw businessError("盘点单ID不能为空"); + AssetInventory record = mapper.selectInventoryById(id); + if (record == null) throw businessError("盘点单不存在"); + return record; + } + + private String nextInventoryNo() { + return "PD" + new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).format(new Date()) + + String.format("%03d", ThreadLocalRandom.current().nextInt(1000)); + } + + private static String normalizeScope(String value) { + if ("ASSET".equalsIgnoreCase(value)) return "ASSET"; + if ("ALL".equalsIgnoreCase(value)) return "ALL"; + return "DEVICE"; + } + + private static Set idSet(JSONObject json, String key) { + Set result = new HashSet<>(); + if (json == null) return result; + JSONArray values = json.getJSONArray(key); + if (values == null) return result; + for (Object value : values) { + if (value != null) result.add(Long.valueOf(value.toString())); + } + return result; + } + + private static String selectedScope(Set assetIds, Set deviceIds) { + if (!assetIds.isEmpty() && !deviceIds.isEmpty()) return "ALL"; + return assetIds.isEmpty() ? "DEVICE" : "ASSET"; + } + + private static String collaborationDetailStatus(String value) { + if ("NORMAL".equalsIgnoreCase(value) || "ABNORMAL".equalsIgnoreCase(value)) { + return value.toUpperCase(Locale.ROOT); + } + if ("SURPLUS".equalsIgnoreCase(value) || "SHORTAGE".equalsIgnoreCase(value)) return "ABNORMAL"; + return "INVENTORIED"; + } + + private static Object firstValue(Map row, String... keys) { + for (String key : keys) { + if (row.containsKey(key)) return row.get(key); + } + return null; + } + + private static Long safeLong(Object value) { + if (value == null || isBlank(value.toString())) return null; + try { + return Long.valueOf(value.toString()); + } catch (NumberFormatException ignored) { + return null; + } + } + + private static String firstNotBlank(String... values) { + if (values != null) for (String value : values) { + if (!isBlank(value)) return value; + } + return null; + } + + private static int number(Map map, String... keys) { + if (map != null) for (String key : keys) { + Object value = map.get(key); + if (value instanceof Number) return ((Number) value).intValue(); + if (value != null) return Integer.parseInt(value.toString()); + } + return 0; + } + + private static void require(String value, String message) { + if (isBlank(value)) throw businessError(message); + } + + private static boolean isBlank(String value) { + return value == null || value.trim().isEmpty(); + } + + private static boolean same(String first, String second) { + String left = first == null ? "" : first.trim(); + String right = second == null ? "" : second.trim(); + return left.equals(right); + } + + private static BusinessRunTimeException businessError(String message) { + return new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, message); + } + + private static HttpServletRequest currentRequest() { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + return attributes == null ? null : attributes.getRequest(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/CustomerCategoryService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/CustomerCategoryService.java new file mode 100644 index 0000000..8e53272 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/CustomerCategoryService.java @@ -0,0 +1,132 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.CustomerCategory; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.CustomerCategoryMapper; +import com.reallin.smt.datasource.mappers.CustomerCategoryMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class CustomerCategoryService { + private Logger logger = LoggerFactory.getLogger(CustomerCategoryService.class); + + @Resource + private CustomerCategoryMapper customerCategoryMapper; + + @Resource + private CustomerCategoryMapperEx customerCategoryMapperEx; + + @Resource + private LogService logService; + + @Resource + private UserService userService; + + public CustomerCategory getCustomerCategory(Long id) throws Exception { + CustomerCategory result = null; + try { + result = customerCategoryMapper.selectByPrimaryKey(id); + } catch (Exception e) { + JshException.readFail(logger, e); + } + return result; + } + + public List select(String categoryName, Long parentId) throws Exception { + List list = new ArrayList<>(); + try { + PageUtils.startPage(); + list = customerCategoryMapperEx.selectByCondition(categoryName, parentId); + } catch (Exception e) { + JshException.readFail(logger, e); + } + return list; + } + + public List getTreeList() throws Exception { + List list = new ArrayList<>(); + try { + list = customerCategoryMapperEx.getTreeList(); + } catch (Exception e) { + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertCustomerCategory(JSONObject obj, HttpServletRequest request) throws Exception { + CustomerCategory category = JSONObject.parseObject(obj.toJSONString(), CustomerCategory.class); + int result = 0; + try { + category.setEnabled(true); + User userInfo = userService.getCurrentUser(); + category.setCreator(userInfo == null ? null : userInfo.getId()); + result = customerCategoryMapper.insertSelective(category); + logService.insertLog("客户分类", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(category.getCategoryName()).toString(), request); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateCustomerCategory(JSONObject obj, HttpServletRequest request) throws Exception { + CustomerCategory category = JSONObject.parseObject(obj.toJSONString(), CustomerCategory.class); + int result = 0; + try { + result = customerCategoryMapper.updateByPrimaryKeySelective(category); + logService.insertLog("客户分类", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(category.getCategoryName()).toString(), request); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteCustomerCategory(Long id, HttpServletRequest request) throws Exception { + return batchDeleteByIds(id.toString(), request); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteByIds(String ids, HttpServletRequest request) throws Exception { + int result = 0; + String[] idArray = ids.split(","); + + // 记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + for (String idStr : idArray) { + CustomerCategory category = getCustomerCategory(Long.parseLong(idStr)); + if (category != null) { + sb.append("[").append(category.getCategoryName()).append("]"); + } + } + logService.insertLog("客户分类", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + + User userInfo = userService.getCurrentUser(); + try { + result = customerCategoryMapperEx.batchDeleteByIds(new Date(), userInfo == null ? null : userInfo.getId(), idArray); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/CustomerContactService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/CustomerContactService.java new file mode 100644 index 0000000..7c88cac --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/CustomerContactService.java @@ -0,0 +1,144 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.CustomerContact; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.CustomerContactMapper; +import com.reallin.smt.datasource.mappers.CustomerContactMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class CustomerContactService { + private Logger logger = LoggerFactory.getLogger(CustomerContactService.class); + + @Resource + private CustomerContactMapper customerContactMapper; + + @Resource + private CustomerContactMapperEx customerContactMapperEx; + + @Resource + private LogService logService; + + @Resource + private UserService userService; + + public CustomerContact getCustomerContact(Long id) throws Exception { + CustomerContact result = null; + try { + result = customerContactMapper.selectByPrimaryKey(id); + } catch (Exception e) { + JshException.readFail(logger, e); + } + return result; + } + + public List selectByCustomerId(Long customerId) throws Exception { + List list = new ArrayList<>(); + try { + list = customerContactMapper.selectByCustomerId(customerId); + } catch (Exception e) { + JshException.readFail(logger, e); + } + return list; + } + + public List select(Long customerId, String contactName) throws Exception { + List list = new ArrayList<>(); + try { + PageUtils.startPage(); + list = customerContactMapperEx.selectByCondition(customerId, contactName); + } catch (Exception e) { + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertCustomerContact(JSONObject obj, HttpServletRequest request) throws Exception { + CustomerContact contact = JSONObject.parseObject(obj.toJSONString(), CustomerContact.class); + int result = 0; + try { + User userInfo = userService.getCurrentUser(); + contact.setCreator(userInfo == null ? null : userInfo.getId()); + result = customerContactMapper.insertSelective(contact); + logService.insertLog("客户联系人", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(contact.getContactName()).toString(), request); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateCustomerContact(JSONObject obj, HttpServletRequest request) throws Exception { + CustomerContact contact = JSONObject.parseObject(obj.toJSONString(), CustomerContact.class); + int result = 0; + try { + result = customerContactMapper.updateByPrimaryKeySelective(contact); + logService.insertLog("客户联系人", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(contact.getContactName()).toString(), request); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteCustomerContact(Long id, HttpServletRequest request) throws Exception { + return batchDeleteByIds(id.toString(), request); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteByIds(String ids, HttpServletRequest request) throws Exception { + int result = 0; + String[] idArray = ids.split(","); + + // 记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + for (String idStr : idArray) { + CustomerContact contact = getCustomerContact(Long.parseLong(idStr)); + if (contact != null) { + sb.append("[").append(contact.getContactName()).append("]"); + } + } + logService.insertLog("客户联系人", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + + User userInfo = userService.getCurrentUser(); + try { + result = customerContactMapperEx.batchDeleteByIds(new Date(), userInfo == null ? null : userInfo.getId(), idArray); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteByCustomerId(Long customerId, HttpServletRequest request) throws Exception { + int result = 0; + try { + result = customerContactMapperEx.deleteByCustomerId(customerId); + logService.insertLog("客户联系人", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append("[批量删除]").toString(), request); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/DashboardService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/DashboardService.java new file mode 100644 index 0000000..8374549 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/DashboardService.java @@ -0,0 +1,189 @@ +package com.reallin.smt.service; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +@Service +public class DashboardService { + @Resource + private JdbcTemplate jdbcTemplate; + public Map getOperationOverview() { + // SMT 当前为单公司部署,首页看板按全库业务数据统计,不按租户过滤。 + Long tenantId = null; + Map result = new LinkedHashMap<>(); + + Map headquartersInbound = depotSummary("总部入库", "1", tenantId, true); + Map purchaseInbound = depotSummary("采购", "1", tenantId, false); + Map saleOrder = depotSummary("销售订单", "1','2','3", tenantId, false); + Map shipment = shipmentSummary(tenantId); + + result.put("headquartersInbound", headquartersInbound); + result.put("purchaseInbound", purchaseInbound); + result.put("saleOrder", saleOrder); + result.put("shipment", shipment); + result.put("topProducts", topProducts(tenantId)); + result.put("monthlyTrend", monthlyTrend(tenantId)); + result.put("recentDocuments", recentDocuments(tenantId)); + return result; + } + + private Map depotSummary(String subType, String statuses, Long tenantId, boolean headquarters) { + String quantityExpression = headquarters ? "abs(i.qty)" : "abs(i.oper_number)"; + String itemTable = headquarters ? "tbl_headquarters_inbound_item" : "tbl_depot_item"; + String sql = "select count(distinct h.id) documentCount, coalesce(sum(" + quantityExpression + "),0) quantity, " + + "coalesce(sum(abs(h.total_price)),0) amount, max(h.oper_time) latestTime " + + "from tbl_depot_head h join " + itemTable + " i on i.header_id=h.id and ifnull(i.delete_flag,'0')<>'1' " + + "where h.sub_type=? and h.status in ('" + statuses + "') and ifnull(h.delete_flag,'0')<>'1'"; + List args = new ArrayList<>(); + args.add(subType); + if (tenantId != null) { + sql += " and h.tenant_id=?"; + args.add(tenantId); + } + return jdbcTemplate.queryForMap(sql, args.toArray()); + } + + private Map shipmentSummary(Long tenantId) { + String sql = "select count(distinct s.id) documentCount, coalesce(sum(abs(i.actual_quantity)),0) quantity, " + + "max(s.ship_time) latestTime from tbl_sale_shipment s join tbl_sale_shipment_item i " + + "on i.shipment_id=s.id and ifnull(i.delete_flag,'0')<>'1' " + + "where s.status in ('2','3') and ifnull(s.delete_flag,'0')<>'1'"; + List args = new ArrayList<>(); + if (tenantId != null) { + sql += " and s.tenant_id=?"; + args.add(tenantId); + } + return jdbcTemplate.queryForMap(sql, args.toArray()); + } + + private List> topProducts(Long tenantId) { + String sql = "select coalesce(nullif(i.material_name,''),'未命名商品') materialName, " + + "coalesce(nullif(i.model,''),nullif(i.standard,''),'—') specification, " + + "coalesce(sum(abs(i.actual_quantity)),0) quantity, count(distinct s.id) shipmentCount " + + "from tbl_sale_shipment s join tbl_sale_shipment_item i on i.shipment_id=s.id " + + "where s.status in ('2','3') and ifnull(s.delete_flag,'0')<>'1' and ifnull(i.delete_flag,'0')<>'1'"; + List args = new ArrayList<>(); + if (tenantId != null) { + sql += " and s.tenant_id=?"; + args.add(tenantId); + } + sql += " group by i.material_name, i.model, i.standard order by quantity desc limit 10"; + return jdbcTemplate.queryForList(sql, args.toArray()); + } + + private List> monthlyTrend(Long tenantId) { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.DAY_OF_MONTH, 1); + calendar.add(Calendar.MONTH, -5); + SimpleDateFormat keyFormat = new SimpleDateFormat("yyyy-MM"); + Map> months = new LinkedHashMap<>(); + for (int index = 0; index < 6; index++) { + String month = keyFormat.format(calendar.getTime()); + Map row = new LinkedHashMap<>(); + row.put("month", month); + row.put("inbound", 0); + row.put("ordered", 0); + row.put("shipped", 0); + months.put(month, row); + calendar.add(Calendar.MONTH, 1); + } + + mergeDepotMonthly(months, "总部入库", "1", "inbound", tenantId, true); + mergeDepotMonthly(months, "采购", "1", "inbound", tenantId, false); + mergeDepotMonthly(months, "销售订单", "1','2','3", "ordered", tenantId, false); + + String shipmentSql = "select date_format(s.ship_time,'%Y-%m') month, coalesce(sum(abs(i.actual_quantity)),0) value " + + "from tbl_sale_shipment s join tbl_sale_shipment_item i on i.shipment_id=s.id " + + "where s.status in ('2','3') and s.ship_time>=date_sub(date_format(curdate(),'%Y-%m-01'), interval 5 month) " + + "and ifnull(s.delete_flag,'0')<>'1' and ifnull(i.delete_flag,'0')<>'1'"; + List args = new ArrayList<>(); + if (tenantId != null) { + shipmentSql += " and s.tenant_id=?"; + args.add(tenantId); + } + shipmentSql += " group by date_format(s.ship_time,'%Y-%m')"; + mergeRows(months, jdbcTemplate.queryForList(shipmentSql, args.toArray()), "shipped", false); + return new ArrayList<>(months.values()); + } + + private void mergeDepotMonthly(Map> months, String subType, String statuses, + String field, Long tenantId, boolean headquarters) { + String itemTable = headquarters ? "tbl_headquarters_inbound_item" : "tbl_depot_item"; + String quantity = headquarters ? "i.qty" : "i.oper_number"; + String sql = "select date_format(h.oper_time,'%Y-%m') month, coalesce(sum(abs(" + quantity + ")),0) value " + + "from tbl_depot_head h join " + itemTable + " i on i.header_id=h.id " + + "where h.sub_type=? and h.status in ('" + statuses + "') " + + "and h.oper_time>=date_sub(date_format(curdate(),'%Y-%m-01'), interval 5 month) " + + "and ifnull(h.delete_flag,'0')<>'1' and ifnull(i.delete_flag,'0')<>'1'"; + List args = new ArrayList<>(); + args.add(subType); + if (tenantId != null) { + sql += " and h.tenant_id=?"; + args.add(tenantId); + } + sql += " group by date_format(h.oper_time,'%Y-%m')"; + mergeRows(months, jdbcTemplate.queryForList(sql, args.toArray()), field, true); + } + + private void mergeRows(Map> months, List> rows, + String field, boolean add) { + for (Map source : rows) { + Map target = months.get(String.valueOf(source.get("month"))); + if (target == null) { + continue; + } + double value = ((Number) source.get("value")).doubleValue(); + if (add && target.get(field) instanceof Number) { + value += ((Number) target.get(field)).doubleValue(); + } + target.put(field, value); + } + } + + private List> recentDocuments(Long tenantId) { + List> rows = new ArrayList<>(); + addRecentDepot(rows, "总部入库", "总部入库", "1", tenantId); + addRecentDepot(rows, "采购入库", "采购", "1", tenantId); + addRecentDepot(rows, "销售订单", "销售订单", "1','2','3", tenantId); + + String sql = "select '实际发货' stage, s.shipment_number number, s.ship_time operTime, " + + "coalesce(sum(abs(i.actual_quantity)),0) quantity, s.status status from tbl_sale_shipment s " + + "join tbl_sale_shipment_item i on i.shipment_id=s.id where s.status in ('2','3') " + + "and ifnull(s.delete_flag,'0')<>'1' and ifnull(i.delete_flag,'0')<>'1'"; + List args = new ArrayList<>(); + if (tenantId != null) { + sql += " and s.tenant_id=?"; + args.add(tenantId); + } + sql += " group by s.id, s.shipment_number, s.ship_time, s.status order by s.ship_time desc limit 3"; + rows.addAll(jdbcTemplate.queryForList(sql, args.toArray())); + rows.sort((left, right) -> String.valueOf(right.get("operTime")).compareTo(String.valueOf(left.get("operTime")))); + return rows.size() > 8 ? new ArrayList<>(rows.subList(0, 8)) : rows; + } + + private void addRecentDepot(List> rows, String stage, String subType, + String statuses, Long tenantId) { + String itemTable = "总部入库".equals(subType) ? "tbl_headquarters_inbound_item" : "tbl_depot_item"; + String quantity = "总部入库".equals(subType) ? "i.qty" : "i.oper_number"; + String sql = "select '" + stage + "' stage, h.number, h.oper_time operTime, " + + "coalesce(sum(abs(" + quantity + ")),0) quantity, h.status from tbl_depot_head h " + + "join " + itemTable + " i on i.header_id=h.id where h.sub_type=? and h.status in ('" + statuses + "') " + + "and ifnull(h.delete_flag,'0')<>'1' and ifnull(i.delete_flag,'0')<>'1'"; + List args = new ArrayList<>(); + args.add(subType); + if (tenantId != null) { + sql += " and h.tenant_id=?"; + args.add(tenantId); + } + sql += " group by h.id, h.number, h.oper_time, h.status order by h.oper_time desc limit 3"; + rows.addAll(jdbcTemplate.queryForList(sql, args.toArray())); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/DeliveryPlanService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/DeliveryPlanService.java new file mode 100644 index 0000000..3db9218 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/DeliveryPlanService.java @@ -0,0 +1,316 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.DeliveryPlan; +import com.reallin.smt.datasource.entities.DeliveryPlanItem; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.DeliveryPlanMapper; +import com.reallin.smt.datasource.vo.DeliveryPlanVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.utils.PageUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class DeliveryPlanService { + + public static final String STATUS_WAIT_SHIPMENT = "0"; + public static final String STATUS_PART_SHIPMENT = "1"; + public static final String STATUS_FINISHED = "2"; + + @Resource + private DeliveryPlanMapper deliveryPlanMapper; + @Resource + private DepotHeadService depotHeadService; + @Resource + private SequenceService sequenceService; + @Resource + private UserService userService; + @Resource + private LogService logService; + + public List select(String planNumber, String sourceBillNumber, String saleOrderNumber, + String sourceType, String status, String beginTime, String endTime) { + PageUtils.startPage(); + return deliveryPlanMapper.selectList(planNumber, sourceBillNumber, saleOrderNumber, sourceType, status, + beginTime, endTime); + } + + public JSONObject getDetail(Long id) { + DeliveryPlan plan = getExistingPlan(id); + JSONObject obj = new JSONObject(); + obj.put("info", plan); + obj.put("rows", deliveryPlanMapper.selectItemsByPlanId(id)); + return obj; + } + + public List getSourceItems(Long sourceBillId) { + DepotHead sourceBill = getValidSourceBill(sourceBillId); + List sourceItems = deliveryPlanMapper.selectBillItemsForPlan(sourceBill.getId()); + List rows = new ArrayList<>(); + for (DeliveryPlanItem item : sourceItems) { + BigDecimal remaining = safe(item.getPlanQuantity()) + .subtract(safe(deliveryPlanMapper.getPlannedQuantityBySourceItemId(item.getSourceItemId(), null))); + if (remaining.compareTo(BigDecimal.ZERO) > 0) { + item.setPlanQuantity(remaining); + item.setShippedQuantity(BigDecimal.ZERO); + rows.add(item); + } + } + return rows; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int createFromSourceBill(JSONObject obj, HttpServletRequest request) throws Exception { + Long sourceBillId = obj.getLong("sourceBillId"); + DepotHead sourceBill = getValidSourceBill(sourceBillId); + User user = userService.getCurrentUser(); + + DeliveryPlan plan = new DeliveryPlan(); + plan.setPlanNumber("JH" + sequenceService.buildOnlyNumber()); + plan.setSourceType(getSourceType(sourceBill)); + plan.setSourceBillId(sourceBill.getId()); + plan.setSourceBillNumber(sourceBill.getNumber()); + plan.setSaleOrderNumber(sourceBill.getLinkNumber()); + plan.setCustomerId(sourceBill.getOrganId()); + plan.setStatus(STATUS_WAIT_SHIPMENT); + plan.setPlannedDeliveryTime(obj.getDate("plannedDeliveryTime")); + plan.setAdjustReason(obj.getString("adjustReason")); + plan.setRemark(obj.getString("remark")); + plan.setCreateTime(new Date()); + plan.setCreator(user == null ? null : user.getId()); + plan.setTenantId(sourceBill.getTenantId()); + plan.setDeleteFlag("0"); + deliveryPlanMapper.insertSelective(plan); + + List sourceItems = deliveryPlanMapper.selectBillItemsForPlan(sourceBill.getId()); + Map sourceMap = sourceItems.stream() + .collect(Collectors.toMap(DeliveryPlanItem::getSourceItemId, item -> item, (a, b) -> a)); + List rows = parseItems(obj.getJSONArray("rows"), sourceMap, plan.getId(), null); + if (rows.isEmpty()) { + for (DeliveryPlanItem source : sourceItems) { + BigDecimal remaining = safe(source.getPlanQuantity()) + .subtract(safe(deliveryPlanMapper.getPlannedQuantityBySourceItemId(source.getSourceItemId(), null))); + if (remaining.compareTo(BigDecimal.ZERO) > 0) { + rows.add(buildPlanItem(source, plan.getId(), remaining)); + } + } + } + if (rows.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "该出库单没有可编制交货计划的数量"); + } + deliveryPlanMapper.batchInsertItems(rows); + logService.insertLog("交货计划管理", "新增交货计划[" + plan.getPlanNumber() + "]", request); + return 1; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchCreateFromSourceBill(JSONObject obj, HttpServletRequest request) throws Exception { + JSONArray ids = obj.getJSONArray("sourceBillIds"); + if (ids == null || ids.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请选择需要转交货计划的出库单"); + } + int count = 0; + for (int i = 0; i < ids.size(); i++) { + JSONObject item = new JSONObject(); + item.put("sourceBillId", ids.getLong(i)); + item.put("remark", obj.getString("remark")); + createFromSourceBill(item, request); + count++; + } + return count; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int adjustPlan(JSONObject obj, HttpServletRequest request) throws Exception { + DeliveryPlan old = getExistingPlan(obj.getLong("id")); + if (STATUS_FINISHED.equals(old.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "已完成的交货计划不能调整"); + } + Date plannedDeliveryTime = obj.getDate("plannedDeliveryTime"); + if (plannedDeliveryTime == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "计划交货时间不能为空"); + } + String adjustReason = obj.getString("adjustReason"); + if (adjustReason == null || adjustReason.trim().isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "调整原因不能为空"); + } + JSONArray requestRows = obj.getJSONArray("rows"); + if (requestRows == null || requestRows.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "交货计划明细不能为空"); + } + DeliveryPlan update = new DeliveryPlan(); + update.setId(old.getId()); + update.setPlannedDeliveryTime(plannedDeliveryTime); + update.setAdjustReason(adjustReason.trim()); + update.setRemark(obj.getString("remark")); + deliveryPlanMapper.updateByPrimaryKeySelective(update); + + if (!requestRows.isEmpty()) { + List currentItems = deliveryPlanMapper.selectItemsByPlanId(old.getId()); + Map currentMap = currentItems.stream() + .collect(Collectors.toMap(DeliveryPlanItem::getSourceItemId, item -> item, (a, b) -> a)); + List sourceItems = deliveryPlanMapper.selectBillItemsForPlan(old.getSourceBillId()); + Map sourceMap = sourceItems.stream() + .collect(Collectors.toMap(DeliveryPlanItem::getSourceItemId, item -> item, (a, b) -> a)); + for (int i = 0; i < requestRows.size(); i++) { + JSONObject row = requestRows.getJSONObject(i); + Long sourceItemId = row.getLong("sourceItemId"); + DeliveryPlanItem current = currentMap.get(sourceItemId); + DeliveryPlanItem source = sourceMap.get(sourceItemId); + if (current == null || source == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "交货计划明细来源不能为空"); + } + BigDecimal planQuantity = row.getBigDecimal("planQuantity"); + if (planQuantity == null || planQuantity.compareTo(BigDecimal.ZERO) <= 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + source.getMaterialName() + " 计划数量必须大于0"); + } + BigDecimal committedQuantity = safe(deliveryPlanMapper.getCommittedQuantityByPlanItemId(current.getId())); + if (planQuantity.compareTo(committedQuantity) < 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + source.getMaterialName() + " 计划数量不能小于已创建发货通知/已发货数量 " + committedQuantity); + } + BigDecimal otherPlanQuantity = safe(deliveryPlanMapper + .getPlannedQuantityBySourceItemId(sourceItemId, old.getId())); + BigDecimal maxQuantity = safe(source.getPlanQuantity()).subtract(otherPlanQuantity); + if (planQuantity.compareTo(maxQuantity) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + source.getMaterialName() + " 累计计划数量不能大于销售出库数量 " + source.getPlanQuantity()); + } + deliveryPlanMapper.updateItemPlanQuantity(current.getId(), planQuantity, row.getString("remark")); + } + } + logService.insertLog("交货计划管理", "调整交货计划[" + old.getPlanNumber() + "]", request); + return 1; + } + + public DeliveryPlan getExistingPlan(Long id) { + if (id == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "交货计划不存在"); + } + DeliveryPlan plan = deliveryPlanMapper.selectByPrimaryKey(id); + if (plan == null || "1".equals(plan.getDeleteFlag())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "交货计划不存在"); + } + return plan; + } + + public void refreshPlanStatus(Long planId) { + List rows = deliveryPlanMapper.selectItemsByPlanId(planId); + boolean hasShipped = false; + boolean allFinished = true; + for (DeliveryPlanItem row : rows) { + BigDecimal shipped = safe(deliveryPlanMapper.getShippedQuantityByPlanItemId(row.getId())); + if (shipped.compareTo(BigDecimal.ZERO) > 0) { + hasShipped = true; + } + if (shipped.compareTo(safe(row.getPlanQuantity())) < 0) { + allFinished = false; + } + } + DeliveryPlan update = new DeliveryPlan(); + update.setId(planId); + update.setStatus(allFinished ? STATUS_FINISHED : (hasShipped ? STATUS_PART_SHIPMENT : STATUS_WAIT_SHIPMENT)); + deliveryPlanMapper.updateByPrimaryKeySelective(update); + } + + private DepotHead getValidSourceBill(Long sourceBillId) { + if (sourceBillId == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请选择出库单"); + } + DepotHead sourceBill; + try { + sourceBill = depotHeadService.getDepotHead(sourceBillId); + } catch (Exception e) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "出库单不存在"); + } + if (sourceBill == null || "1".equals(sourceBill.getDeleteFlag())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "出库单不存在"); + } + if (!BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(sourceBill.getType()) + || (!BusinessConstants.SUB_TYPE_SALES.equals(sourceBill.getSubType()) + && !BusinessConstants.SUB_TYPE_RETAIL.equals(sourceBill.getSubType()))) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只能针对销售出库或零售出库编制交货计划"); + } + if (!isApprovedSourceStatus(sourceBill.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有已审核出库单才能编制交货计划"); + } + return sourceBill; + } + + private boolean isApprovedSourceStatus(String status) { + return "1".equals(status) || "2".equals(status) || "3".equals(status); + } + + private String getSourceType(DepotHead sourceBill) { + return BusinessConstants.SUB_TYPE_RETAIL.equals(sourceBill.getSubType()) ? "retail" : "sale"; + } + + private List parseItems(JSONArray arr, Map sourceMap, + Long planId, Long excludePlanId) { + List rows = new ArrayList<>(); + if (arr == null || arr.isEmpty()) { + return rows; + } + for (int i = 0; i < arr.size(); i++) { + JSONObject row = arr.getJSONObject(i); + Long sourceItemId = row.getLong("sourceItemId"); + DeliveryPlanItem source = sourceMap.get(sourceItemId); + if (source == null) { + continue; + } + BigDecimal planQuantity = row.getBigDecimal("planQuantity"); + BigDecimal remaining = safe(source.getPlanQuantity()) + .subtract(safe(deliveryPlanMapper.getPlannedQuantityBySourceItemId(sourceItemId, excludePlanId))); + if (planQuantity == null || planQuantity.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + if (planQuantity.compareTo(remaining) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + source.getMaterialName() + " 计划数量不能大于剩余可计划数量 " + remaining); + } + DeliveryPlanItem item = buildPlanItem(source, planId, planQuantity); + item.setRemark(row.getString("remark")); + rows.add(item); + } + return rows; + } + + private DeliveryPlanItem buildPlanItem(DeliveryPlanItem source, Long planId, BigDecimal planQuantity) { + DeliveryPlanItem item = new DeliveryPlanItem(); + item.setPlanId(planId); + item.setSourceItemId(source.getSourceItemId()); + item.setMaterialId(source.getMaterialId()); + item.setMaterialExtendId(source.getMaterialExtendId()); + item.setBarCode(source.getBarCode()); + item.setMaterialName(source.getMaterialName()); + item.setStandard(source.getStandard()); + item.setModel(source.getModel()); + item.setUnit(source.getUnit()); + item.setBatchNumber(source.getBatchNumber()); + item.setSnList(source.getSnList()); + item.setPlanQuantity(safe(planQuantity)); + item.setShippedQuantity(BigDecimal.ZERO); + item.setDepotId(source.getDepotId()); + item.setRemark(source.getRemark()); + item.setTenantId(source.getTenantId()); + item.setDeleteFlag("0"); + return item; + } + + private BigDecimal safe(BigDecimal value) { + return value == null ? BigDecimal.ZERO : value; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/DepotHeadService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/DepotHeadService.java new file mode 100644 index 0000000..122abc3 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/DepotHeadService.java @@ -0,0 +1,2014 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.DepotHeadMapper; +import com.reallin.smt.datasource.mappers.DepotHeadMapperEx; +import com.reallin.smt.datasource.mappers.DepotItemMapperEx; +import com.reallin.smt.datasource.vo.*; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.ExcelUtils; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import com.reallin.smt.utils.Tools; +import jxl.Workbook; +import jxl.write.WritableWorkbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.*; +import java.util.stream.Collectors; + +import static com.reallin.smt.utils.Tools.getCenternTime; +import static com.reallin.smt.utils.Tools.getNow3; + +@Service +public class DepotHeadService { + private Logger logger = LoggerFactory.getLogger(DepotHeadService.class); + + @Resource + private DepotHeadMapper depotHeadMapper; + @Resource + private DepotHeadMapperEx depotHeadMapperEx; + @Resource + private UserService userService; + @Resource + private RoleService roleService; + @Resource + private DepotService depotService; + @Resource + DepotItemService depotItemService; + @Resource + private SupplierService supplierService; + @Resource + private UserBusinessService userBusinessService; + @Resource + private SystemConfigService systemConfigService; + @Resource + private SerialNumberService serialNumberService; + @Resource + private OrgaUserRelService orgaUserRelService; + @Resource + private PersonService personService; + @Resource + private AccountService accountService; + @Resource + private AccountHeadService accountHeadService; + @Resource + private AccountItemService accountItemService; + @Resource + private SequenceService sequenceService; + @Resource + private RedisService redisService; + @Resource + DepotItemMapperEx depotItemMapperEx; + @Resource + private LogService logService; + @Value(value="${file.exportTmp}") + private String fileExportTmp; + + public DepotHead getDepotHead(long id)throws Exception { + DepotHead result=null; + try{ + result=depotHeadMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getDepotHead()throws Exception { + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=depotHeadMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String type, String subType, String hasDebt, String hasLastDebt, String status, String purchaseStatus, String number, String linkApply, String linkNumber, + String beginTime, String endTime, String materialParam, Long organId, Long creator, Long depotId, Long accountId, String salesMan, String remark) throws Exception { + List list = new ArrayList<>(); + try{ + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + String billCategory = getBillCategory(subType); + // 单据列表默认查询当前租户的全部仓库和操作员;仍可通过 depotId/creator 参数手动筛选。 + String [] depotArray = null; + String [] creatorArray = null; + String [] statusArray = StringUtil.isNotEmpty(status) ? status.split(",") : null; + String [] purchaseStatusArray = StringUtil.isNotEmpty(purchaseStatus) ? purchaseStatus.split(",") : null; + String [] organArray = getOrganArray(subType, purchaseStatus); + //以销定购,查看全部数据 + creatorArray = StringUtil.isNotEmpty(purchaseStatus) ? null: creatorArray; + Map personMap = personService.getPersonMap(); + Map accountMap = accountService.getAccountMap(); + beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + PageUtils.startPage(); + list = depotHeadMapperEx.selectByConditionDepotHead(type, subType, creatorArray, hasDebt, hasLastDebt, + statusArray, purchaseStatusArray, number, linkApply, linkNumber, beginTime, endTime, + materialParam, organId, organArray, creator, depotId, depotArray, accountId, salesMan, remark); + if (null != list) { + List idList = new ArrayList<>(); + List numberList = new ArrayList<>(); + for (DepotHeadVo4List dh : list) { + idList.add(dh.getId()); + numberList.add(dh.getNumber()); + } + //通过批量查询去构造map + Map finishDepositMap = getFinishDepositMapByNumberList(numberList); + Map financialBillPriceMap = getFinancialBillPriceMapByBillIdList(idList); + Map billSizeMap = getBillSizeMapByLinkNumberList(numberList); + Map materialsListMap = findMaterialsListMapByHeaderIdList(idList); + Map materialCountListMap = getMaterialCountListMapByHeaderIdList(idList); + for (DepotHeadVo4List dh : list) { + if(accountMap!=null && StringUtil.isNotEmpty(dh.getAccountIdList()) && StringUtil.isNotEmpty(dh.getAccountMoneyList())) { + String accountStr = accountService.getAccountStrByIdAndMoney(accountMap, dh.getAccountIdList(), dh.getAccountMoneyList()); + dh.setAccountName(accountStr); + } + if(dh.getAccountIdList() != null) { + String accountidlistStr = dh.getAccountIdList().replace("[", "").replace("]", "").replaceAll("\"", ""); + dh.setAccountIdList(accountidlistStr); + } + if(dh.getAccountMoneyList() != null) { + String accountmoneylistStr = dh.getAccountMoneyList().replace("[", "").replace("]", "").replaceAll("\"", ""); + dh.setAccountMoneyList(accountmoneylistStr); + } + if(dh.getChangeAmount() != null) { + dh.setChangeAmount(roleService.parseBillPriceByLimit(dh.getChangeAmount().abs(), billCategory, priceLimit, request)); + } else { + dh.setChangeAmount(BigDecimal.ZERO); + } + if(dh.getTotalPrice() != null) { + BigDecimal lastTotalPrice = BusinessConstants.SUB_TYPE_CHECK_ENTER.equals(dh.getSubType())|| + BusinessConstants.SUB_TYPE_REPLAY.equals(dh.getSubType())?dh.getTotalPrice():dh.getTotalPrice().abs(); + dh.setTotalPrice(roleService.parseBillPriceByLimit(lastTotalPrice, billCategory, priceLimit, request)); + } + BigDecimal discountLastMoney = dh.getDiscountLastMoney()!=null?dh.getDiscountLastMoney():BigDecimal.ZERO; + dh.setDiscountLastMoney(roleService.parseBillPriceByLimit(discountLastMoney, billCategory, priceLimit, request)); + BigDecimal backAmount = dh.getBackAmount()!=null?dh.getBackAmount():BigDecimal.ZERO; + dh.setBackAmount(roleService.parseBillPriceByLimit(backAmount, billCategory, priceLimit, request)); + if(dh.getDeposit() == null) { + dh.setDeposit(BigDecimal.ZERO); + } else { + dh.setDeposit(roleService.parseBillPriceByLimit(dh.getDeposit(), billCategory, priceLimit, request)); + } + //已经完成的欠款 + if(finishDepositMap!=null) { + BigDecimal finishDeposit = finishDepositMap.get(dh.getNumber()) != null ? finishDepositMap.get(dh.getNumber()) : BigDecimal.ZERO; + dh.setFinishDeposit(roleService.parseBillPriceByLimit(finishDeposit, billCategory, priceLimit, request)); + } + //欠款计算 + BigDecimal otherMoney = dh.getOtherMoney()!=null?dh.getOtherMoney():BigDecimal.ZERO; + BigDecimal deposit = dh.getDeposit()!=null?dh.getDeposit():BigDecimal.ZERO; + BigDecimal changeAmount = dh.getChangeAmount()!=null?dh.getChangeAmount():BigDecimal.ZERO; + BigDecimal debt = discountLastMoney.add(otherMoney).subtract((deposit.add(changeAmount))); + dh.setDebt(roleService.parseBillPriceByLimit(debt, billCategory, priceLimit, request)); + //最终欠款的金额 + //TODO 暂时还是先通过计算获取,半年后改成从数据库直接去读last_dept time:20260601 + if(financialBillPriceMap!=null) { + BigDecimal financialBillPrice = financialBillPriceMap.get(dh.getId())!=null?financialBillPriceMap.get(dh.getId()):BigDecimal.ZERO; + BigDecimal lastDebt = debt.subtract(financialBillPrice); + dh.setLastDebt(roleService.parseBillPriceByLimit(lastDebt, billCategory, priceLimit, request)); + } + //是否有退款单 + if(billSizeMap!=null) { + Integer billListSize = billSizeMap.get(dh.getNumber()); + dh.setHasBackFlag(billListSize!=null && billListSize>0); + } + if(StringUtil.isNotEmpty(dh.getSalesMan())) { + dh.setSalesManStr(personService.getPersonByMapAndIds(personMap,dh.getSalesMan())); + } + if(dh.getOperTime() != null) { + dh.setOperTimeStr(getCenternTime(dh.getOperTime())); + } + //商品信息简述 + if(materialsListMap!=null) { + dh.setMaterialsList(materialsListMap.get(dh.getId())); + } + //商品总数量 + if(materialCountListMap!=null) { + dh.setMaterialCount(materialCountListMap.get(dh.getId())); + } + //以销定购的情况(不能显示销售单据的金额和客户名称) + if(StringUtil.isNotEmpty(purchaseStatus)) { + dh.setOrganName("****"); + dh.setTotalPrice(null); + dh.setDiscountLastMoney(null); + } + } + } + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + /** + * 根据单据类型获取仓库数组 + * @param subType + * @return + * @throws Exception + */ + public String[] getDepotArray(String subType) throws Exception { + return null; + } + + /** + * 根据角色类型获取操作员数组 + * @return + * @throws Exception + */ + public String[] getCreatorArray() throws Exception { + return null; + } + + /** + * 根据角色类型获取操作员数组 + * @param organizationId + * @return + * @throws Exception + */ + public String[] getCreatorArrayByOrg(Long organizationId) throws Exception { + List userIdList = orgaUserRelService.getUserIdListByOrgId(organizationId); + if(userIdList.size()>0) { + List userIdStrList = userIdList.stream().map(Object::toString).collect(Collectors.toList()); + return StringUtil.listToStringArray(userIdStrList); + } else { + return "-1".split(","); + } + } + + /** + * 获取部门数组 + * @return + */ + public String[] getOrganArray(String subType, String purchaseStatus) throws Exception { + return null; + } + + /** + * 根据角色类型获取操作员 + * @return + * @throws Exception + */ + public String getCreatorByCurrentUser() throws Exception { + return ""; + } + + public Map getFinishDepositMapByNumberList(List numberList) { + Map finishDepositMap = new HashMap<>(); + if(numberList.size()>0) { + List list = depotHeadMapperEx.getFinishDepositByNumberList(numberList); + if(list!=null && list.size()>0) { + for (FinishDepositVo finishDepositVo : list) { + if(finishDepositVo!=null) { + finishDepositMap.put(finishDepositVo.getNumber(), finishDepositVo.getFinishDeposit()); + } + } + } + } + return finishDepositMap; + } + + public Map getBillSizeMapByLinkNumberList(List numberList) throws Exception { + Map billListMap = new HashMap<>(); + if(numberList.size()>0) { + List list = getBillListByLinkNumberList(numberList); + if(list!=null && list.size()>0) { + for (DepotHead depotHead : list) { + if(depotHead!=null) { + billListMap.put(depotHead.getLinkNumber(), list.size()); + } + } + } + } + return billListMap; + } + + public Map getFinancialBillPriceMapByBillIdList(List idList) { + Map billListMap = new HashMap<>(); + if(!idList.isEmpty()) { + List list = accountHeadService.getFinancialBillPriceByBillIdList(idList); + if(list!=null && !list.isEmpty()) { + for (AccountItem accountItem : list) { + if(accountItem!=null) { + billListMap.put(accountItem.getBillId(), accountItem.getEachAmount().abs()); + } + } + } + } + return billListMap; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertDepotHead(JSONObject obj, HttpServletRequest request)throws Exception { + DepotHead depotHead = JSONObject.parseObject(obj.toJSONString(), DepotHead.class); + forceHiddenPaymentAmountToZero(depotHead); + depotHead.setCreateTime(new Timestamp(System.currentTimeMillis())); + depotHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); + int result=0; + try{ + result=depotHeadMapper.insert(depotHead); + logService.insertLog("单据", BusinessConstants.LOG_OPERATION_TYPE_ADD, request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateDepotHead(JSONObject obj, HttpServletRequest request) throws Exception{ + DepotHead depotHead = JSONObject.parseObject(obj.toJSONString(), DepotHead.class); + forceHiddenPaymentAmountToZero(depotHead); + DepotHead dh=null; + try{ + dh = depotHeadMapper.selectByPrimaryKey(depotHead.getId()); + }catch(Exception e){ + JshException.readFail(logger, e); + } + depotHead.setStatus(dh.getStatus()); + depotHead.setCreateTime(dh.getCreateTime()); + int result=0; + try{ + result = depotHeadMapper.updateByPrimaryKey(depotHead); + logService.insertLog("单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(depotHead.getId()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteDepotHead(Long id, HttpServletRequest request)throws Exception { + return batchDeleteBillByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDepotHead(String ids, HttpServletRequest request)throws Exception { + return batchDeleteBillByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteBillByIds(String ids)throws Exception { + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List dhList = getDepotHeadListByIds(ids); + for(DepotHead depotHead: dhList){ + //只有未审核的单据才能被删除 + if(!"0".equals(depotHead.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_UN_AUDIT_DELETE_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_UN_AUDIT_DELETE_FAILED_MSG)); + } + //检查有没有被财务单据关联 + List ahList = accountHeadService.getFinancialBillNoByBillId(depotHead.getId()); + if (!ahList.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_FINANCIAL_ASSOCIATED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_FINANCIAL_ASSOCIATED_MSG, depotHead.getNumber(), ahList.get(0).getBillNo())); + } + } + for(DepotHead depotHead: dhList){ + sb.append("[").append(depotHead.getNumber()).append("]"); + User userInfo = userService.getCurrentUser(); + //删除入库单据,先校验序列号是否出库,如果未出库则同时删除序列号,如果已出库则不能删除单据 + if (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())) { + List depotItemList = depotItemMapperEx.findDepotItemListBydepotheadId(depotHead.getId(), BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED); + if (depotItemList != null && depotItemList.size() > 0) { + //单据明细里面存在序列号商品 + int serialNumberSellCount = depotHeadMapperEx.getSerialNumberBySell(depotHead.getNumber()); + if (serialNumberSellCount > 0) { + //已出库则不能删除单据 + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_SERIAL_IS_SELL_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_SERIAL_IS_SELL_MSG, depotHead.getNumber())); + } else { + //删除序列号 + SerialNumberExample example = new SerialNumberExample(); + example.createCriteria().andInBillNoEqualTo(depotHead.getNumber()); + serialNumberService.deleteByExample(example); + } + } + } + //删除出库数据回收序列号 + if (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType()) + && !BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubType())) { + //查询单据子表列表 + List depotItemList = depotItemMapperEx.findDepotItemListBydepotheadId(depotHead.getId(), BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED); + /**回收序列号*/ + if (depotItemList != null && depotItemList.size() > 0) { + for (DepotItem depotItem : depotItemList) { + //BasicNumber=OperNumber*ratio + serialNumberService.cancelSerialNumber(depotItem.getMaterialId(), depotHead.getNumber(), (depotItem.getBasicNumber() == null ? 0 : depotItem.getBasicNumber()).intValue(), userInfo); + } + } + } + List list = depotItemService.getListByHeaderId(depotHead.getId()); + //删除单据子表数据 + depotItemMapperEx.batchDeleteDepotItemByDepotHeadIds(new Long[]{depotHead.getId()}); + //删除单据主表信息 + batchDeleteDepotHeadByIds(depotHead.getId().toString()); + //将关联的单据置为审核状态-针对采购入库、销售出库、盘点复盘、其它入库、其它出库 + if(StringUtil.isNotEmpty(depotHead.getLinkNumber())){ + if((BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_PURCHASE.equals(depotHead.getSubType())) + || (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType())) + || (BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_REPLAY.equals(depotHead.getSubType())) + || (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_OTHER.equals(depotHead.getSubType())) + || (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_OTHER.equals(depotHead.getSubType()))) { + String status = BusinessConstants.BILLS_STATUS_AUDIT; + //查询除当前单据之外的关联单据列表 + List exceptCurrentList = getListByLinkNumberExceptCurrent(depotHead.getLinkNumber(), depotHead.getNumber(), depotHead.getType()); + if(exceptCurrentList!=null && exceptCurrentList.size()>0) { + status = BusinessConstants.BILLS_STATUS_SKIPING; + } + DepotHead dh = new DepotHead(); + dh.setStatus(status); + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andNumberEqualTo(depotHead.getLinkNumber()); + depotHeadMapper.updateByExampleSelective(dh, example); + } + } + //将关联的单据置为审核状态-针对请购单转采购订单的情况 + if(StringUtil.isNotEmpty(depotHead.getLinkApply())){ + if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) { + String status = BusinessConstants.BILLS_STATUS_AUDIT; + //查询除当前单据之外的关联单据列表 + List exceptCurrentList = getListByLinkApplyExceptCurrent(depotHead.getLinkApply(), depotHead.getNumber(), depotHead.getType()); + if(exceptCurrentList!=null && exceptCurrentList.size()>0) { + status = BusinessConstants.BILLS_STATUS_SKIPING; + } + DepotHead dh = new DepotHead(); + dh.setStatus(status); + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andNumberEqualTo(depotHead.getLinkApply()); + depotHeadMapper.updateByExampleSelective(dh, example); + } + } + //将关联的销售订单单据置为未采购状态-针对销售订单转采购订单的情况 + if(StringUtil.isNotEmpty(depotHead.getLinkNumber())){ + if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) { + DepotHead dh = new DepotHead(); + //获取分批操作后单据的商品和商品数量(汇总) + List batchList = depotItemMapperEx.getBatchBillDetailMaterialSum(depotHead.getLinkNumber(), "normal", depotHead.getType()); + if(batchList.size()>0) { + dh.setPurchaseStatus(BusinessConstants.PURCHASE_STATUS_SKIPING); + } else { + dh.setPurchaseStatus(BusinessConstants.PURCHASE_STATUS_UN_AUDIT); + } + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andNumberEqualTo(depotHead.getLinkNumber()); + depotHeadMapper.updateByExampleSelective(dh, example); + } + } + //对于零售出库单据,更新会员的预收款信息 + if (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType()) + && BusinessConstants.SUB_TYPE_RETAIL.equals(depotHead.getSubType())){ + if(BusinessConstants.PAY_TYPE_PREPAID.equals(depotHead.getPayType())) { + if (depotHead.getOrganId() != null) { + //更新会员预付款 + supplierService.updateAdvanceIn(depotHead.getOrganId()); + } + } + } + for (DepotItem depotItem : list) { + //更新当前库存 + depotItemService.updateCurrentStock(depotItem); + //更新当前成本价 + depotItemService.updateCurrentUnitPrice(depotItem); + } + } + //路径列表 + List pathList = new ArrayList<>(); + for(DepotHead depotHead: dhList){ + if(StringUtil.isNotEmpty(depotHead.getFileName())) { + pathList.add(depotHead.getFileName()); + } + } + //逻辑删除文件 + systemConfigService.deleteFileByPathList(pathList); + logService.insertLog("单据", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + return 1; + } + + /** + * 删除单据主表信息 + * @param ids + * @return + * @throws Exception + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDepotHeadByIds(String ids)throws Exception { + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + int result=0; + try{ + result = depotHeadMapperEx.batchDeleteDepotHeadByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public List getDepotHeadListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andIdIn(idList); + list = depotHeadMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + /** + * 校验单据编号是否存在 + * @param id + * @param number + * @return + * @throws Exception + */ + public int checkIsBillNumberExist(Long id, String number)throws Exception { + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andIdNotEqualTo(id).andNumberEqualTo(number).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = null; + try{ + list = depotHeadMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchForceClose(String ids, HttpServletRequest request) throws Exception { + int result = 0; + StringBuilder billNoStr = new StringBuilder(); + List idList = StringUtil.strToLongList(ids); + for(Long id: idList) { + DepotHead depotHead = getDepotHead(id); + //状态里面不包含部分不能强制结单 + if(!"3".equals(depotHead.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_FORCE_CLOSE_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_FORCE_CLOSE_FAILED_MSG, depotHead.getNumber())); + } else { + billNoStr.append(depotHead.getNumber()).append(" "); + } + } + if(idList.size()>0) { + DepotHead depotHead = new DepotHead(); + //完成状态 + depotHead.setStatus("2"); + //给备注后面追加:强制结单 + String remark = StringUtil.isNotEmpty(depotHead.getRemark())? depotHead.getRemark() + "[强制结单]": "[强制结单]"; + depotHead.setRemark(remark); + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andIdIn(idList); + result = depotHeadMapper.updateByExampleSelective(depotHead, example); + //记录日志 + String billNos = billNoStr.toString(); + if(StringUtil.isNotEmpty(billNos)) { + logService.insertLog("单据", "强制结单:" + billNos, + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchForceClosePurchase(String ids, HttpServletRequest request) throws Exception { + int result = 0; + StringBuilder billNoStr = new StringBuilder(); + List idList = StringUtil.strToLongList(ids); + for(Long id: idList) { + DepotHead depotHead = getDepotHead(id); + //状态里面不包含部分不能强制结单 + if(!"3".equals(depotHead.getPurchaseStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_FORCE_CLOSE_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_FORCE_CLOSE_FAILED_MSG, depotHead.getNumber())); + } else { + billNoStr.append(depotHead.getNumber()).append(" "); + } + } + if(idList.size()>0) { + DepotHead depotHead = new DepotHead(); + //完成状态 + depotHead.setPurchaseStatus("2"); + //给备注后面追加:强制结单-以销定购 + String remark = StringUtil.isNotEmpty(depotHead.getRemark())? depotHead.getRemark() + "[强制结单-以销定购]": "[强制结单-以销定购]"; + depotHead.setRemark(remark); + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andIdIn(idList); + result = depotHeadMapper.updateByExampleSelective(depotHead, example); + //记录日志 + String billNos = billNoStr.toString(); + if(StringUtil.isNotEmpty(billNos)) { + logService.insertLog("单据", "强制结单-以销定购:" + billNos, + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetLastDebt(String ids, HttpServletRequest request) throws Exception { + int result = 0; + StringBuilder billNoStr = new StringBuilder(); + List idList = StringUtil.strToLongList(ids); + for(Long id: idList) { + DepotHead dh = getDepotHead(id); + BigDecimal debt = getDebtByBill(dh); + if(debt.compareTo(BigDecimal.ZERO)!=0) { + //更新最终欠款 + updateLastDebtByBillId(debt, id); + billNoStr.append(dh.getNumber()).append(" "); + } + result = 1; + } + //记录日志 + String billNos = billNoStr.toString(); + if(StringUtil.isNotEmpty(billNos)) { + logService.insertLog("单据", "修正最终欠款:" + billNos, + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetLastDeposit(String ids, HttpServletRequest request) throws Exception { + int result = 0; + StringBuilder billNoStr = new StringBuilder(); + List idList = StringUtil.strToLongList(ids); + for(Long id: idList) { + DepotHead dh = getDepotHead(id); + //订单中的原订金 + BigDecimal originalDeposit = dh.getChangeAmount()!=null?dh.getChangeAmount().abs():BigDecimal.ZERO; + if(originalDeposit.compareTo(BigDecimal.ZERO)!=0) { + //更新剩余订金 + updateLastDepositByNumber(dh.getNumber()); + billNoStr.append(dh.getNumber()).append(" "); + } + result = 1; + } + //记录日志 + String billNos = billNoStr.toString(); + if(StringUtil.isNotEmpty(billNos)) { + logService.insertLog("单据", "修正剩余订金:" + billNos, + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + return result; + } + + /** + * 获取单据的本次欠款 + * @param dh + * @return + */ + public BigDecimal getDebtByBill(DepotHead dh) { + BigDecimal discountLastMoney = dh.getDiscountLastMoney()!=null? dh.getDiscountLastMoney():BigDecimal.ZERO; + BigDecimal otherMoney = dh.getOtherMoney()!=null? dh.getOtherMoney():BigDecimal.ZERO; + BigDecimal deposit = dh.getDeposit()!=null? dh.getDeposit():BigDecimal.ZERO; + BigDecimal changeAmount = dh.getChangeAmount()!=null? dh.getChangeAmount().abs():BigDecimal.ZERO; + //本次欠款 + return discountLastMoney.add(otherMoney).subtract((deposit.add(changeAmount))); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(String status, String depotHeadIDs)throws Exception { + int result = 0; + boolean forceApprovalFlag = systemConfigService.getForceApprovalFlag(); + boolean minusStockFlag = systemConfigService.getMinusStockFlag(); + boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + List dhIds = new ArrayList<>(); + List noList = new ArrayList<>(); + List ids = StringUtil.strToLongList(depotHeadIDs); + for(Long id: ids) { + DepotHead depotHead = getDepotHead(id); + if("0".equals(status)){ + //进行反审核操作 + if("1".equals(depotHead.getStatus()) && "0".equals(depotHead.getPurchaseStatus())) { + dhIds.add(id); + noList.add(depotHead.getNumber()); + } else if("2".equals(depotHead.getPurchaseStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_PURCHASE_STATUS_TWO_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_PURCHASE_STATUS_TWO_MSG)); + } else if("3".equals(depotHead.getPurchaseStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_PURCHASE_STATUS_THREE_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_PURCHASE_STATUS_THREE_MSG)); + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_AUDIT_TO_UN_AUDIT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_AUDIT_TO_UN_AUDIT_FAILED_MSG)); + } + } else if("1".equals(status)){ + //进行审核操作 + if("0".equals(depotHead.getStatus())) { + dhIds.add(id); + noList.add(depotHead.getNumber()); + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_UN_AUDIT_TO_AUDIT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_UN_AUDIT_TO_AUDIT_FAILED_MSG)); + } + } + // 开启强审核,并且没有开启负库存: + // 1、开启出入库管理,销售出库和采购退货单据审核的时候不做校验,其它出库做校验; + // 2、未开启出入库管理,销售出库、采购退货和其它出库单据审核的时候都做校验。 + if("1".equals(status)) { + if(forceApprovalFlag && !minusStockFlag) { + if(inOutManageFlag) { + if("出库".equals(depotHead.getType()) && "其它".equals(depotHead.getSubType())) { + //校验单据中的商品库存是否不足 + depotItemService.checkMaterialStock(depotHead.getNumber(), depotHead.getId()); + } + } else { + if(("出库".equals(depotHead.getType()) && "销售".equals(depotHead.getSubType())) + || ("出库".equals(depotHead.getType()) && "采购退货".equals(depotHead.getSubType())) + || "出库".equals(depotHead.getType()) && "其它".equals(depotHead.getSubType())) { + //校验单据中的商品库存是否不足 + depotItemService.checkMaterialStock(depotHead.getNumber(), depotHead.getId()); + } + } + } + } + } + if(!dhIds.isEmpty()) { + DepotHead depotHead = new DepotHead(); + depotHead.setStatus(status); + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andIdIn(dhIds); + result = depotHeadMapper.updateByExampleSelective(depotHead, example); + //更新当前库存 + if(systemConfigService.getForceApprovalFlag()) { + for(Long dhId: dhIds) { + DepotHead currentHead = getDepotHead(dhId); + if (isShipmentDeferredStockBill(currentHead)) { + continue; + } + List list = depotItemService.getListByHeaderId(dhId); + for (DepotItem depotItem : list) { + depotItemService.updateCurrentStock(depotItem); + } + } + } + //记录日志 + if(!noList.isEmpty() && ("0".equals(status) || "1".equals(status))) { + String statusStr = status.equals("1")?"[审核]":"[反审核]"; + logService.insertLog("单据", + new StringBuffer(statusStr).append(String.join(", ", noList)).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + } + return result; + } + + private boolean isShipmentDeferredStockBill(DepotHead depotHead) { + return depotHead != null + && "出库".equals(depotHead.getType()) + && ("销售".equals(depotHead.getSubType()) || "零售".equals(depotHead.getSubType())); + } + + public Map findMaterialsListMapByHeaderIdList(List idList)throws Exception { + Map materialsListMap = new HashMap<>(); + if(idList.size()>0) { + List list = depotHeadMapperEx.findMaterialsListMapByHeaderIdList(idList); + for (MaterialsListVo materialsListVo : list) { + String materialsList = materialsListVo.getMaterialsList(); + if(StringUtil.isNotEmpty(materialsList)) { + materialsList = materialsList.replace(",",","); + } + materialsListMap.put(materialsListVo.getHeaderId(), materialsList); + } + } + return materialsListMap; + } + + public Map getMaterialCountListMapByHeaderIdList(List idList)throws Exception { + Map materialCountListMap = new HashMap<>(); + if(idList.size()>0) { + List list = depotHeadMapperEx.getMaterialCountListByHeaderIdList(idList); + for(MaterialCountVo materialCountVo : list){ + materialCountListMap.put(materialCountVo.getHeaderId(), materialCountVo.getMaterialCount()); + } + } + return materialCountListMap; + } + + public List findInOutDetail(String beginTime, String endTime, String type, String[] creatorArray, + String[] organArray, List categoryList, Boolean forceFlag, Boolean inOutManageFlag, + String materialParam, List depotList, Integer oId, String number, + Long creator, String remark, String column, String order, Integer offset, Integer rows) throws Exception{ + List list = null; + try{ + list =depotHeadMapperEx.findInOutDetail(beginTime, endTime, type, creatorArray, organArray, categoryList, forceFlag, inOutManageFlag, + materialParam, depotList, oId, number, creator, remark, column, order, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int findInOutDetailCount(String beginTime, String endTime, String type, String[] creatorArray, + String[] organArray, List categoryList, Boolean forceFlag, Boolean inOutManageFlag, String materialParam, List depotList, Integer oId, String number, + Long creator, String remark) throws Exception{ + int result = 0; + try{ + result =depotHeadMapperEx.findInOutDetailCount(beginTime, endTime, type, creatorArray, organArray, categoryList, forceFlag, inOutManageFlag, + materialParam, depotList, oId, number, creator, remark); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public DepotHeadVo4InDetail findInOutDetailStatistic(String beginTime, String endTime, String type, String [] creatorArray, + String [] organArray, List categoryList, Boolean forceFlag, Boolean inOutManageFlag, + String materialParam, List depotList, Integer oId, String number, + Long creator, String remark) throws Exception{ + DepotHeadVo4InDetail item = new DepotHeadVo4InDetail(); + try{ + List list =depotHeadMapperEx.findInOutDetailStatistic(beginTime, endTime, type, creatorArray, organArray, categoryList, forceFlag, inOutManageFlag, + materialParam, depotList, oId, number, creator, remark); + if(list.size()>0) { + item.setOperNumber(list.get(0).getOperNumber()); + item.setAllPrice(list.get(0).getAllPrice()); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return item; + } + + public List findInOutMaterialCount(String beginTime, String endTime, String type, List categoryList, + Boolean forceFlag, Boolean inOutManageFlag, String materialParam, + List depotList, Long organizationId, Integer oId, String column, String order, + Integer offset, Integer rows)throws Exception { + List list = null; + try{ + String [] creatorArray = getCreatorArray(); + if(creatorArray == null && organizationId != null) { + creatorArray = getCreatorArrayByOrg(organizationId); + } + String subType = "出库".equals(type)? "销售" : ""; + String [] organArray = getOrganArray(subType, ""); + list =depotHeadMapperEx.findInOutMaterialCount(beginTime, endTime, type, categoryList, forceFlag, inOutManageFlag, materialParam, depotList, oId, + creatorArray, organArray, column, order, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int findInOutMaterialCountTotal(String beginTime, String endTime, String type, List categoryList, + Boolean forceFlag, Boolean inOutManageFlag, String materialParam, + List depotList, Long organizationId, Integer oId)throws Exception { + int result = 0; + try{ + String [] creatorArray = getCreatorArray(); + if(creatorArray == null && organizationId != null) { + creatorArray = getCreatorArrayByOrg(organizationId); + } + String subType = "出库".equals(type)? "销售" : ""; + String [] organArray = getOrganArray(subType, ""); + result =depotHeadMapperEx.findInOutMaterialCountTotal(beginTime, endTime, type, categoryList, forceFlag, inOutManageFlag, materialParam, depotList, oId, + creatorArray, organArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public DepotHeadVo4InOutMCount findInOutMaterialCountStatistic(String beginTime, String endTime, String type, List categoryList, + Boolean forceFlag, Boolean inOutManageFlag, String materialParam, + List depotList, Long organizationId, Integer oId) throws Exception { + DepotHeadVo4InOutMCount item = new DepotHeadVo4InOutMCount(); + try{ + String [] creatorArray = getCreatorArray(); + if(creatorArray == null && organizationId != null) { + creatorArray = getCreatorArrayByOrg(organizationId); + } + String subType = "出库".equals(type)? "销售" : ""; + String [] organArray = getOrganArray(subType, ""); + List list = depotHeadMapperEx.findInOutMaterialCountStatistic(beginTime, endTime, type, categoryList, + forceFlag, inOutManageFlag, materialParam, depotList, oId, creatorArray, organArray); + if(list.size()>0) { + item.setNumSum(list.get(0).getNumSum()); + item.setPriceSum(list.get(0).getPriceSum()); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return item; + } + + public List findAllocationDetail(String beginTime, String endTime, String subType, String number, + String [] creatorArray, List categoryList, Boolean forceFlag, String materialParam, List depotList, List depotFList, + String remark, String column, String order, Integer offset, Integer rows) throws Exception{ + List list = null; + try{ + list =depotHeadMapperEx.findAllocationDetail(beginTime, endTime, subType, number, creatorArray, categoryList, forceFlag, + materialParam, depotList, depotFList, remark, column, order, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int findAllocationDetailCount(String beginTime, String endTime, String subType, String number, + String [] creatorArray, List categoryList, Boolean forceFlag, String materialParam, List depotList, List depotFList, + String remark) throws Exception{ + int result = 0; + try{ + result =depotHeadMapperEx.findAllocationDetailCount(beginTime, endTime, subType, number, creatorArray, categoryList, forceFlag, + materialParam, depotList, depotFList, remark); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public DepotHeadVo4InDetail findAllocationStatistic(String beginTime, String endTime, String subType, String number, + String [] creatorArray, List categoryList, Boolean forceFlag, String materialParam, List depotList, List depotFList, + String remark) throws Exception{ + DepotHeadVo4InDetail item = new DepotHeadVo4InDetail(); + try{ + List list =depotHeadMapperEx.findAllocationStatistic(beginTime, endTime, subType, number, creatorArray, categoryList, forceFlag, + materialParam, depotList, depotFList, remark); + if(list.size()>0) { + item.setOperNumber(list.get(0).getOperNumber()); + item.setAllPrice(list.get(0).getAllPrice()); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return item; + } + + public List getStatementAccount(String beginTime, String endTime, Integer organId, String [] organArray, + Integer hasDebt, String supplierType, String type, String subType, String typeBack, + String subTypeBack, String billType, Integer offset, Integer rows) { + List list = null; + try{ + list = depotHeadMapperEx.getStatementAccount(beginTime, endTime, organId, organArray, hasDebt, supplierType, type, subType,typeBack, subTypeBack, billType, offset, rows); + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int getStatementAccountCount(String beginTime, String endTime, Integer organId, String [] organArray, + Integer hasDebt, String supplierType, String type, String subType, String typeBack, String subTypeBack, String billType) { + int result = 0; + try{ + result = depotHeadMapperEx.getStatementAccountCount(beginTime, endTime, organId, organArray, hasDebt, supplierType, type, subType,typeBack, subTypeBack, billType); + } catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getStatementAccountTotalPay(String beginTime, String endTime, Integer organId, String [] organArray, + Integer hasDebt, String supplierType, String type, String subType, + String typeBack, String subTypeBack, String billType) { + List list = null; + try{ + list = depotHeadMapperEx.getStatementAccountTotalPay(beginTime, endTime, organId, organArray, hasDebt, supplierType, type, subType,typeBack, subTypeBack, billType); + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int getNeedCount(String supplierType) throws Exception { + String beginTime = Tools.parseDayToTime(Tools.getYearBegin(), BusinessConstants.DAY_FIRST_TIME); + String endTime = Tools.getCenternTime(new Date()); + if (("客户").equals(supplierType)) { + return getNeedCountByCondition(beginTime, endTime, "客户", "出库", "销售", "入库", "销售退货", "收款") + + getNeedCountByCondition(beginTime, endTime, "会员", "出库", "零售", "", "", "收款"); + } else if (("供应商").equals(supplierType)) { + return getNeedCountByCondition(beginTime, endTime, "供应商", "入库", "采购", "出库", "采购退货", "付款") + + getNeedCountByCondition(beginTime, endTime, "会员", "入库", "零售退货", "", "", "付款"); + } + return getNeedCountByCondition(beginTime, endTime, supplierType, "", "", "", "", ""); + } + + private int getNeedCountByCondition(String beginTime, String endTime, String supplierType, String type, + String subType, String typeBack, String subTypeBack, String billType) throws Exception { + String [] organArray = getOrganArray(subType, ""); + return getStatementAccountCount(beginTime, endTime, null, organArray, + 1, supplierType, type, subType,typeBack, subTypeBack, billType); + } + + public List getDetailByNumber(String number, HttpServletRequest request)throws Exception { + List resList = new ArrayList<>(); + try{ + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + Map personMap = personService.getPersonMap(); + Map accountMap = accountService.getAccountMap(); + List list = depotHeadMapperEx.getDetailByNumber(number); + if (null != list) { + List idList = new ArrayList<>(); + List numberList = new ArrayList<>(); + for (DepotHeadVo4List dh : list) { + idList.add(dh.getId()); + numberList.add(dh.getNumber()); + } + //通过批量查询去构造map + Map billSizeMap = getBillSizeMapByLinkNumberList(numberList); + Map materialsListMap = findMaterialsListMapByHeaderIdList(idList); + Map materialCountListMap = getMaterialCountListMapByHeaderIdList(idList); + DepotHeadVo4List dh = list.get(0); + String billCategory = getBillCategory(dh.getSubType()); + if(accountMap!=null && StringUtil.isNotEmpty(dh.getAccountIdList()) && StringUtil.isNotEmpty(dh.getAccountMoneyList())) { + String accountStr = accountService.getAccountStrByIdAndMoney(accountMap, dh.getAccountIdList(), dh.getAccountMoneyList()); + dh.setAccountName(accountStr); + } + if(dh.getAccountIdList() != null) { + String accountidlistStr = dh.getAccountIdList().replace("[", "").replace("]", "").replaceAll("\"", ""); + dh.setAccountIdList(accountidlistStr); + } + if(dh.getAccountMoneyList() != null) { + String accountmoneylistStr = dh.getAccountMoneyList().replace("[", "").replace("]", "").replaceAll("\"", ""); + dh.setAccountMoneyList(accountmoneylistStr); + } + if(dh.getChangeAmount() != null) { + dh.setChangeAmount(roleService.parseBillPriceByLimit(dh.getChangeAmount().abs(), billCategory, priceLimit, request)); + } else { + dh.setChangeAmount(BigDecimal.ZERO); + } + if(dh.getTotalPrice() != null) { + dh.setTotalPrice(roleService.parseBillPriceByLimit(dh.getTotalPrice().abs(), billCategory, priceLimit, request)); + } + BigDecimal discountLastMoney = dh.getDiscountLastMoney()!=null?dh.getDiscountLastMoney():BigDecimal.ZERO; + dh.setDiscountLastMoney(roleService.parseBillPriceByLimit(discountLastMoney, billCategory, priceLimit, request)); + BigDecimal backAmount = dh.getBackAmount()!=null?dh.getBackAmount():BigDecimal.ZERO; + dh.setBackAmount(roleService.parseBillPriceByLimit(backAmount, billCategory, priceLimit, request)); + if(dh.getDeposit() == null) { + dh.setDeposit(BigDecimal.ZERO); + } else { + dh.setDeposit(roleService.parseBillPriceByLimit(dh.getDeposit(), billCategory, priceLimit, request)); + } + //欠款计算 + BigDecimal otherMoney = dh.getOtherMoney()!=null?dh.getOtherMoney():BigDecimal.ZERO; + BigDecimal deposit = dh.getDeposit()!=null?dh.getDeposit():BigDecimal.ZERO; + BigDecimal changeAmount = dh.getChangeAmount()!=null?dh.getChangeAmount():BigDecimal.ZERO; + BigDecimal debt = discountLastMoney.add(otherMoney).subtract((deposit.add(changeAmount))); + dh.setDebt(roleService.parseBillPriceByLimit(debt, billCategory, priceLimit, request)); + //是否有退款单 + if(billSizeMap!=null) { + Integer billListSize = billSizeMap.get(dh.getNumber()); + dh.setHasBackFlag(billListSize!=null && billListSize>0); + } + if(StringUtil.isNotEmpty(dh.getSalesMan())) { + dh.setSalesManStr(personService.getPersonByMapAndIds(personMap,dh.getSalesMan())); + } + if(dh.getOperTime() != null) { + dh.setOperTimeStr(getCenternTime(dh.getOperTime())); + } + //商品信息简述 + if(materialsListMap!=null) { + dh.setMaterialsList(materialsListMap.get(dh.getId())); + } + //商品总数量 + if(materialCountListMap!=null) { + dh.setMaterialCount(materialCountListMap.get(dh.getId())); + } + User creatorUser = userService.getUser(dh.getCreator()); + if(creatorUser!=null) { + dh.setCreatorName(creatorUser.getUsername()); + } + resList.add(dh); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return resList; + } + + /** + * 查询除当前单据之外的关联单据列表 + * @param linkNumber + * @param number + * @return + * @throws Exception + */ + public List getListByLinkNumberExceptCurrent(String linkNumber, String number, String type)throws Exception { + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andLinkNumberEqualTo(linkNumber).andNumberNotEqualTo(number).andTypeEqualTo(type) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + return depotHeadMapper.selectByExample(example); + } + + /** + * 查询除当前单据之外的关联单据列表 + * @param linkApply + * @param number + * @return + * @throws Exception + */ + public List getListByLinkApplyExceptCurrent(String linkApply, String number, String type)throws Exception { + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andLinkApplyEqualTo(linkApply).andNumberNotEqualTo(number).andTypeEqualTo(type) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + return depotHeadMapper.selectByExample(example); + } + + /** + * 根据原单号查询关联的单据列表(批量) + * @param linkNumberList + * @return + * @throws Exception + */ + public List getBillListByLinkNumberList(List linkNumberList)throws Exception { + if(linkNumberList!=null && linkNumberList.size()>0) { + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andLinkNumberIn(linkNumberList).andSubTypeLike("退货").andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + return depotHeadMapper.selectByExample(example); + } else { + return new ArrayList<>(); + } + } + + /** + * 根据原单号查询关联的单据列表 + * @param linkNumber + * @return + * @throws Exception + */ + public List getBillListByLinkNumber(String linkNumber)throws Exception { + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andLinkNumberEqualTo(linkNumber).andSubTypeLike("退货").andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + return depotHeadMapper.selectByExample(example); + } + + /** + * 新增单据主表及单据子表信息 + * @param beanJson + * @param rows + * @param request + * @throws Exception + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void addDepotHeadAndDetail(String beanJson, String rows, + HttpServletRequest request) throws Exception { + /**处理单据主表数据*/ + DepotHead depotHead = JSONObject.parseObject(beanJson, DepotHead.class); + forceHiddenPaymentAmountToZero(depotHead); + //判断用户是否已经登录过,登录过不再处理 + User userInfo=userService.getCurrentUser(); + //通过redis去校验重复 + checkExistByRedis(userInfo, depotHead); + //校验单号是否重复 + if(checkIsBillNumberExist(0L, depotHead.getNumber())>0) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_MSG)); + } + //校验是否同时录入关联请购单号和关联订单号 + if(StringUtil.isNotEmpty(depotHead.getLinkNumber()) && StringUtil.isNotEmpty(depotHead.getLinkApply())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_REPEAT_NO_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_ITEM_EXIST_REPEAT_NO_FAILED_MSG)); + } + String subType = depotHead.getSubType(); + //结算账户校验 + if("采购".equals(subType) || "采购退货".equals(subType) || "销售".equals(subType) || "销售退货".equals(subType)) { + if (StringUtil.isEmpty(depotHead.getAccountIdList()) && depotHead.getAccountId() == null) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_ACCOUNT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_ACCOUNT_FAILED_MSG)); + } + } + depotHead.setCreator(userInfo==null?null:userInfo.getId()); + depotHead.setCreateTime(new Timestamp(System.currentTimeMillis())); + if(StringUtil.isEmpty(depotHead.getStatus())) { + depotHead.setStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); + } + depotHead.setLastDeposit(BigDecimal.ZERO); + depotHead.setPurchaseStatus(BusinessConstants.BILLS_STATUS_UN_AUDIT); + depotHead.setPayType(depotHead.getPayType()==null?"现付":depotHead.getPayType()); + if(StringUtil.isNotEmpty(depotHead.getAccountIdList())){ + depotHead.setAccountIdList(depotHead.getAccountIdList().replace("[", "").replace("]", "").replaceAll("\"", "")); + } + if(StringUtil.isNotEmpty(depotHead.getAccountMoneyList())) { + //校验多账户的结算金额 + String accountMoneyList = depotHead.getAccountMoneyList().replace("[", "").replace("]", "").replaceAll("\"", ""); + BigDecimal sum = StringUtil.getArrSum(accountMoneyList.split(",")); + BigDecimal manyAccountSum = sum.abs(); + if(manyAccountSum.compareTo(depotHead.getChangeAmount().abs())!=0) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_MANY_ACCOUNT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_MANY_ACCOUNT_FAILED_MSG)); + } + depotHead.setAccountMoneyList(accountMoneyList); + } + //校验累计扣除订金是否超出订单中的金额 + if(depotHead.getDeposit()!=null && StringUtil.isNotEmpty(depotHead.getLinkNumber())) { + BigDecimal finishDeposit = depotHeadMapperEx.getFinishDepositByNumberExceptCurrent(depotHead.getLinkNumber(), depotHead.getNumber()); + //订单中的订金金额 + BigDecimal changeAmount = getDepotHead(depotHead.getLinkNumber()).getChangeAmount(); + if(changeAmount!=null) { + BigDecimal preDeposit = changeAmount.abs(); + if(depotHead.getDeposit().add(finishDeposit).compareTo(preDeposit)>0) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_DEPOSIT_OVER_PRE_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_DEPOSIT_OVER_PRE_MSG)); + } + } + } + //校验附件的数量 + if(StringUtil.isNotEmpty(depotHead.getFileName())) { + String[] fileArr = depotHead.getFileName().split(","); + if(fileArr.length>4) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_FILE_NUM_LIMIT_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_FILE_NUM_LIMIT_MSG, 4)); + } + } + depotHeadMapper.insertSelective(depotHead); + /**入库和出库处理预付款信息*/ + if(BusinessConstants.PAY_TYPE_PREPAID.equals(depotHead.getPayType())){ + if(depotHead.getOrganId()!=null) { + BigDecimal currentAdvanceIn = supplierService.getSupplier(depotHead.getOrganId()).getAdvanceIn(); + if(currentAdvanceIn.compareTo(depotHead.getTotalPrice())>=0) { + //更新会员的预付款 + supplierService.updateAdvanceIn(depotHead.getOrganId()); + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_MEMBER_PAY_LACK_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_MEMBER_PAY_LACK_MSG)); + } + } + } + //根据单据编号查询单据id + DepotHeadExample dhExample = new DepotHeadExample(); + dhExample.createCriteria().andNumberEqualTo(depotHead.getNumber()).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = depotHeadMapper.selectByExample(dhExample); + if(list!=null) { + Long headId = list.get(0).getId(); + /*入库和出库处理单据子表信息*/ + depotItemService.saveDetials(rows,headId, "add", null, request); + /*更新最终欠款*/ + updateLastDebtByBillId(depotHead.getDebt(), headId); + /*更新剩余订金*/ + updateLastDepositByNumber(depotHead.getLinkNumber()); + } + String statusStr = depotHead.getStatus().equals("1")?"[审核]":""; + logService.insertLog("单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(depotHead.getNumber()).append(statusStr).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + + /** + * 更新单据主表及单据子表信息 + * @param beanJson + * @param rows + * @param request + * @throws Exception + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateDepotHeadAndDetail(String beanJson, String rows,HttpServletRequest request)throws Exception { + /**更新单据主表信息*/ + DepotHead depotHead = JSONObject.parseObject(beanJson, DepotHead.class); + forceHiddenPaymentAmountToZero(depotHead); + //判断用户是否已经登录过,登录过不再处理 + User userInfo=userService.getCurrentUser(); + //通过redis去校验重复 + checkExistByRedis(userInfo, depotHead); + //校验单号是否重复 + if(checkIsBillNumberExist(depotHead.getId(), depotHead.getNumber())>0) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_BILL_NUMBER_EXIST_MSG)); + } + //校验是否同时录入关联请购单号和关联订单号 + if(StringUtil.isNotEmpty(depotHead.getLinkNumber()) && StringUtil.isNotEmpty(depotHead.getLinkApply())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_REPEAT_NO_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_ITEM_EXIST_REPEAT_NO_FAILED_MSG)); + } + //校验单据状态,如果不是未审核则提示 + if(!"0".equals(getDepotHead(depotHead.getId()).getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BILL_CANNOT_EDIT_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_BILL_CANNOT_EDIT_MSG)); + } + //获取之前的关联单据信息 + DepotHead preDepotHead = getDepotHead(depotHead.getId()); + //获取之前的会员id + Long preOrganId = getDepotHead(depotHead.getId()).getOrganId(); + String subType = depotHead.getSubType(); + //结算账户校验 + if("采购".equals(subType) || "采购退货".equals(subType) || "销售".equals(subType) || "销售退货".equals(subType)) { + if (StringUtil.isEmpty(depotHead.getAccountIdList()) && depotHead.getAccountId() == null) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_ACCOUNT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_ACCOUNT_FAILED_MSG)); + } + } + if(StringUtil.isNotEmpty(depotHead.getAccountIdList())){ + depotHead.setAccountIdList(depotHead.getAccountIdList().replace("[", "").replace("]", "").replaceAll("\"", "")); + } + if(StringUtil.isNotEmpty(depotHead.getAccountMoneyList())) { + //校验多账户的结算金额 + String accountMoneyList = depotHead.getAccountMoneyList().replace("[", "").replace("]", "").replaceAll("\"", ""); + BigDecimal sum = StringUtil.getArrSum(accountMoneyList.split(",")); + BigDecimal manyAccountSum = sum.abs(); + if(manyAccountSum.compareTo(depotHead.getChangeAmount().abs())!=0) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_MANY_ACCOUNT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_MANY_ACCOUNT_FAILED_MSG)); + } + depotHead.setAccountMoneyList(accountMoneyList); + } + //校验累计扣除订金是否超出订单中的金额 + if(depotHead.getDeposit()!=null && StringUtil.isNotEmpty(depotHead.getLinkNumber())) { + BigDecimal finishDeposit = depotHeadMapperEx.getFinishDepositByNumberExceptCurrent(depotHead.getLinkNumber(), depotHead.getNumber()); + //订单中的订金金额 + BigDecimal changeAmount = getDepotHead(depotHead.getLinkNumber()).getChangeAmount(); + if(changeAmount!=null) { + BigDecimal preDeposit = changeAmount.abs(); + if(depotHead.getDeposit().add(finishDeposit).compareTo(preDeposit)>0) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_DEPOSIT_OVER_PRE_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_DEPOSIT_OVER_PRE_MSG)); + } + } + } + //校验附件的数量 + if(StringUtil.isNotEmpty(depotHead.getFileName())) { + String[] fileArr = depotHead.getFileName().split(","); + if(fileArr.length>4) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_FILE_NUM_LIMIT_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_FILE_NUM_LIMIT_MSG, 4)); + } + } + depotHeadMapper.updateByPrimaryKeySelective(depotHead); + //如果存在多账户结算需要将原账户的id置空 + if(StringUtil.isNotEmpty(depotHead.getAccountIdList())) { + depotHeadMapperEx.setAccountIdToNull(depotHead.getId()); + } + /**入库和出库处理预付款信息*/ + if(BusinessConstants.PAY_TYPE_PREPAID.equals(depotHead.getPayType())){ + if(depotHead.getOrganId()!=null){ + BigDecimal currentAdvanceIn = supplierService.getSupplier(depotHead.getOrganId()).getAdvanceIn(); + if(currentAdvanceIn.compareTo(depotHead.getTotalPrice())>=0) { + //更新会员的预付款 + supplierService.updateAdvanceIn(depotHead.getOrganId()); + if(null != preOrganId && !preOrganId.equals(depotHead.getOrganId())) { + //更新之前会员的预付款 + supplierService.updateAdvanceIn(preOrganId); + } + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_MEMBER_PAY_LACK_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_MEMBER_PAY_LACK_MSG)); + } + } + } + /*入库和出库处理单据子表信息*/ + depotItemService.saveDetials(rows,depotHead.getId(), "update", preDepotHead, request); + /*更新最终欠款*/ + updateLastDebtByBillId(depotHead.getDebt(), depotHead.getId()); + /*更新剩余订金*/ + updateLastDepositByNumber(depotHead.getLinkNumber()); + String statusStr = depotHead.getStatus().equals("1")?"[审核]":""; + logService.insertLog("单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(depotHead.getNumber()).append(statusStr).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + + /** Purchase order, sale order, purchase in and sale out hide payment input on the frontend. */ + private void forceHiddenPaymentAmountToZero(DepotHead depotHead) { + if (BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType()) + || BusinessConstants.SUB_TYPE_SALES_ORDER.equals(depotHead.getSubType()) + || BusinessConstants.SUB_TYPE_PURCHASE.equals(depotHead.getSubType()) + || BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType())) { + depotHead.setChangeAmount(BigDecimal.ZERO); + } + if (BusinessConstants.SUB_TYPE_PURCHASE.equals(depotHead.getSubType()) + || BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType())) { + BigDecimal discountLastMoney = nullToZero(depotHead.getDiscountLastMoney()); + BigDecimal otherMoney = nullToZero(depotHead.getOtherMoney()); + BigDecimal deposit = nullToZero(depotHead.getDeposit()); + depotHead.setDebt(discountLastMoney.add(otherMoney).subtract(deposit)); + } + } + + /** + * 通过redis去校验重复 + * @param userInfo + * @param depotHead + */ + private void checkExistByRedis(User userInfo, DepotHead depotHead) { + String keyNo = userInfo.getLoginName() + "_" + depotHead.getNumber(); + String keyValue = redisService.getCacheObject(keyNo); + if(StringUtil.isNotEmpty(keyValue)) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_SUBMIT_REPEAT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_SUBMIT_REPEAT_FAILED_MSG)); + } else { + redisService.storageKeyWithTime(keyNo, depotHead.getNumber(), 2L); + } + } + + /** + * 更新最终欠款 + * @param billId + * @return + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateLastDebtByBillId(BigDecimal debt, Long billId) throws Exception { + BigDecimal financialBillPrice = accountHeadService.getFinancialBillPriceByBillId(billId); + if(debt!=null && financialBillPrice!=null) { + DepotHead dh = new DepotHead(); + dh.setId(billId); + dh.setLastDebt(debt.subtract(financialBillPrice)); + depotHeadMapper.updateByPrimaryKeySelective(dh); + } + } + + /** + * 更新剩余订金 + * @param linkNumber + * @return + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateLastDepositByNumber(String linkNumber) throws Exception { + if(StringUtil.isNotEmpty(linkNumber)) { + DepotHead originalBill = getDepotHead(linkNumber); + //订单中的原订金 + BigDecimal originalDeposit = originalBill.getChangeAmount()!=null?originalBill.getChangeAmount().abs():BigDecimal.ZERO; + BigDecimal allDeposit = depotHeadMapperEx.getAllDepositByLinkNumber(linkNumber); + if(allDeposit != null) { + DepotHead dh = new DepotHead(); + dh.setId(originalBill.getId()); + dh.setLastDeposit(originalDeposit.subtract(allDeposit)); + depotHeadMapper.updateByPrimaryKeySelective(dh); + } + } + } + + public Map getBuyAndSaleStatistics(String today, String monthFirstDay, String yesterdayBegin, String yesterdayEnd, + String yearBegin, String yearEnd, HttpServletRequest request) throws Exception { + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + String[] creatorArray = getCreatorArray(); + List inOutPriceVoList = depotHeadMapperEx.getBuyAndSaleStatisticsList(yearBegin, yearEnd, creatorArray, forceFlag); + + String[] periods = {"today", "month", "yesterday", "year"}; + String[] types = {"Buy", "BuyBack", "Sale", "SaleBack", "RetailSale", "RetailSaleBack"}; + + Map statistics = new HashMap<>(); + + // 初始化 statistics Map + for (String period : periods) { + for (String type : types) { + statistics.put(period + type, BigDecimal.ZERO); + } + } + + Date todayDate = Tools.strToDate(today); + Date monthFirstDate = Tools.strToDate(monthFirstDay); + Date yesterdayStartDate = Tools.strToDate(yesterdayBegin); + Date yesterdayEndDate = Tools.strToDate(yesterdayEnd); + Date yearStartDate = Tools.strToDate(yearBegin); + Date yearEndDate = Tools.strToDate(yearEnd); + + for (InOutPriceVo item : inOutPriceVoList) { + Date operTime = item.getOperTime(); + BigDecimal discountLastMoney = nullToZero(item.getDiscountLastMoney()); + BigDecimal totalPriceAbs = nullToZero(item.getTotalPrice()).abs(); + + if (isWithinRange(operTime, todayDate, Tools.strToDate(getNow3()))) { + updateStatistics(statistics, item, "today", discountLastMoney, totalPriceAbs); + } + + if (isWithinRange(operTime, monthFirstDate, Tools.strToDate(getNow3()))) { + updateStatistics(statistics, item, "month", discountLastMoney, totalPriceAbs); + } + + if (isWithinRange(operTime, yesterdayStartDate, yesterdayEndDate)) { + updateStatistics(statistics, item, "yesterday", discountLastMoney, totalPriceAbs); + } + + if (isWithinRange(operTime, yearStartDate, yearEndDate)) { + updateStatistics(statistics, item, "year", discountLastMoney, totalPriceAbs); + } + } + + Map result = new HashMap<>(); + for (String period : periods) { + result.put(period + "Buy", roleService.parseHomePriceByLimit(statistics.get(period + "Buy").subtract(statistics.get(period + "BuyBack")), "buy", priceLimit, "***", request)); + result.put(period + "Sale", roleService.parseHomePriceByLimit(statistics.get(period + "Sale").subtract(statistics.get(period + "SaleBack")), "sale", priceLimit, "***", request)); + result.put(period + "RetailSale", roleService.parseHomePriceByLimit(statistics.get(period + "RetailSale").subtract(statistics.get(period + "RetailSaleBack")), "retail", priceLimit, "***", request)); + } + + return result; + } + + private boolean isWithinRange(Date operTime, Date startDate, Date endDate) { + return operTime.compareTo(startDate) >= 0 && operTime.compareTo(endDate) <= 0; + } + + private BigDecimal nullToZero(BigDecimal value) { + return value == null ? BigDecimal.ZERO : value; + } + + private void updateStatistics(Map statistics, InOutPriceVo item, String period, BigDecimal discountLastMoney, BigDecimal totalPriceAbs) { + switch (item.getType()) { + case "入库": + switch (item.getSubType()) { + case "采购": + statistics.put(period + "Buy", statistics.get(period + "Buy").add(discountLastMoney)); + break; + case "销售退货": + statistics.put(period + "SaleBack", statistics.get(period + "SaleBack").add(discountLastMoney)); + break; + case "零售退货": + statistics.put(period + "RetailSaleBack", statistics.get(period + "RetailSaleBack").add(totalPriceAbs)); + break; + } + break; + case "出库": + switch (item.getSubType()) { + case "采购退货": + statistics.put(period + "BuyBack", statistics.get(period + "BuyBack").add(discountLastMoney)); + break; + case "销售": + statistics.put(period + "Sale", statistics.get(period + "Sale").add(discountLastMoney)); + break; + case "零售": + statistics.put(period + "RetailSale", statistics.get(period + "RetailSale").add(totalPriceAbs)); + break; + } + break; + } + } + + + public DepotHead getDepotHead(String number)throws Exception { + DepotHead depotHead = new DepotHead(); + try{ + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andNumberEqualTo(number).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = depotHeadMapper.selectByExample(example); + if(null!=list && list.size()>0) { + depotHead = list.get(0); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return depotHead; + } + + public List debtList(Long organId, String materialParam, String number, String beginTime, String endTime, + String status, String type, String subType, Integer offset, Integer rows) { + List resList = new ArrayList<>(); + try{ + String depotIds = depotService.findDepotStrByCurrentUser(); + String [] depotArray=depotIds.split(","); + String [] creatorArray = getCreatorArray(); + beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + List list=depotHeadMapperEx.debtList(organId, creatorArray, status, number, type, subType, + beginTime, endTime, materialParam, depotArray, offset, rows); + if (null != list) { + resList = parseDebtBillList(list); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return resList; + } + + public int debtListCount(Long organId, String materialParam, String number, String beginTime, String endTime, + String status, String type, String subType) { + int total = 0; + try { + String depotIds = depotService.findDepotStrByCurrentUser(); + String[] depotArray = depotIds.split(","); + String[] creatorArray = getCreatorArray(); + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime, BusinessConstants.DAY_LAST_TIME); + total = depotHeadMapperEx.debtListCount(organId, creatorArray, status, number, type, subType, + beginTime, endTime, materialParam, depotArray); + } catch(Exception e){ + JshException.readFail(logger, e); + } + return total; + } + + public void debtExport(Long organId, String materialParam, String number, String type, String subType, + String beginTime, String endTime, String status, String mpList, + HttpServletRequest request, HttpServletResponse response) { + try { + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + String billCategory = getBillCategory(subType); + String depotIds = depotService.findDepotStrByCurrentUser(); + String[] depotArray = depotIds.split(","); + String[] creatorArray = getCreatorArray(); + status = StringUtil.isNotEmpty(status) ? status : null; + beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime, BusinessConstants.DAY_LAST_TIME); + List dhList = new ArrayList<>(); + List list = depotHeadMapperEx.debtList(organId, creatorArray, status, number, type, subType, + beginTime, endTime, materialParam, depotArray, null, null); + if (null != list) { + dhList = parseDebtBillList(list); + } + //生成Excel文件 + String fileName = "单据信息"; + File file = new File(fileExportTmp + fileName); + WritableWorkbook wtwb = Workbook.createWorkbook(file); + String oneTip = ""; + String sheetOneStr = ""; + if("采购".equals(subType)) { + oneTip = "供应商对账列表"; + sheetOneStr = "供应商,单据编号,关联单据,商品信息,单据日期,操作员,单据金额,本单欠款,已付欠款,待付欠款,备注"; + } else if("出库".equals(type) && "销售".equals(subType)) { + oneTip = "客户对账列表"; + sheetOneStr = "客户,单据编号,关联单据,商品信息,单据日期,操作员,单据金额,本单欠款,已收欠款,待收欠款,备注"; + } + if(StringUtil.isNotEmpty(beginTime) && StringUtil.isNotEmpty(endTime)) { + oneTip = oneTip + "(" + beginTime + "至" + endTime + ")"; + } + List sheetOneList = StringUtil.strToStringList(sheetOneStr); + String[] sheetOneArr = StringUtil.listToStringArray(sheetOneList); + List idList = new ArrayList<>(); + List billList = new ArrayList<>(); + Map billListCacheVoMap = new HashMap<>(); + for (DepotHeadVo4List dh : dhList) { + idList.add(dh.getId()); + BillListCacheVo billListCacheVo = new BillListCacheVo(); + billListCacheVo.setNumber(dh.getNumber()); + billListCacheVo.setOrganName(dh.getOrganName()); + billListCacheVo.setOperTimeStr(getCenternTime(dh.getOperTime())); + billListCacheVoMap.put(dh.getId(), billListCacheVo); + String[] objs = new String[sheetOneArr.length]; + objs[0] = dh.getOrganName(); + objs[1] = dh.getNumber(); + objs[2] = dh.getLinkNumber(); + objs[3] = dh.getMaterialsList(); + objs[4] = dh.getOperTimeStr(); + objs[5] = dh.getUserName(); + BigDecimal discountLastMoney = dh.getDiscountLastMoney() == null ? BigDecimal.ZERO : dh.getDiscountLastMoney(); + BigDecimal otherMoney = dh.getOtherMoney() == null ? BigDecimal.ZERO : dh.getOtherMoney(); + BigDecimal deposit = dh.getDeposit() == null ? BigDecimal.ZERO : dh.getDeposit(); + objs[6] = parseDecimalToStr(discountLastMoney.add(otherMoney).subtract(deposit), 2); + objs[7] = parseDecimalToStr(dh.getNeedDebt(), 2); + objs[8] = parseDecimalToStr(dh.getFinishDebt(), 2); + objs[9] = parseDecimalToStr(dh.getDebt(), 2); + objs[10] = dh.getRemark(); + billList.add(objs); + } + ExcelUtils.exportObjectsManySheet(wtwb, oneTip, sheetOneArr, "单据列表", 0, billList); + //导出明细数据 + if(idList.size()>0) { + List dataList = depotItemMapperEx.getBillDetailListByIds(idList); + String twoTip = ""; + String sheetTwoStr = ""; + if ("采购".equals(subType)) { + twoTip = "供应商单据明细"; + sheetTwoStr = "供应商,单据编号,单据日期,仓库名称,条码,名称,规格,型号,颜色,品牌,制造商," + mpList + ",单位,序列号,批号,有效期,多属性,数量,单价,金额,税率(%),税额,价税合计,重量,备注"; + } else if ("销售".equals(subType)) { + twoTip = "客户单据明细"; + sheetTwoStr = "客户,单据编号,单据日期,仓库名称,条码,名称,规格,型号,颜色,品牌,制造商," + mpList + ",单位,序列号,批号,有效期,多属性,数量,单价,金额,税率(%),税额,价税合计,重量,备注"; + } + if (StringUtil.isNotEmpty(beginTime) && StringUtil.isNotEmpty(endTime)) { + twoTip = twoTip + "(" + beginTime + "至" + endTime + ")"; + } + List sheetTwoList = StringUtil.strToStringList(sheetTwoStr); + String[] sheetTwoArr = StringUtil.listToStringArray(sheetTwoList); + List billDetail = new ArrayList<>(); + for (DepotItemVo4WithInfoEx diEx : dataList) { + String[] objs = new String[sheetTwoArr.length]; + BillListCacheVo billListCacheVo = billListCacheVoMap.get(diEx.getHeaderId()); + objs[0] = billListCacheVo != null ? billListCacheVo.getOrganName() : ""; + objs[1] = billListCacheVo != null ? billListCacheVo.getNumber() : ""; + objs[2] = billListCacheVo != null ? billListCacheVo.getOperTimeStr() : ""; + objs[3] = diEx.getDepotId() == null ? "" : diEx.getDepotName(); + objs[4] = diEx.getBarCode(); + objs[5] = diEx.getMName(); + objs[6] = diEx.getMStandard(); + objs[7] = diEx.getMModel(); + objs[8] = diEx.getMColor(); + objs[9] = diEx.getBrand(); + objs[10] = diEx.getMMfrs(); + objs[11] = diEx.getMOtherField1(); + objs[12] = diEx.getMOtherField2(); + objs[13] = diEx.getMOtherField3(); + objs[14] = diEx.getMaterialUnit(); + objs[15] = diEx.getSnList(); + objs[16] = diEx.getBatchNumber(); + objs[17] = Tools.parseDateToStr(diEx.getExpirationDate()); + objs[18] = diEx.getSku(); + objs[19] = parseDecimalToStr(diEx.getOperNumber(), 2); + objs[20] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getUnitPrice(), billCategory, priceLimit, request), 2); + objs[21] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getAllPrice(), billCategory, priceLimit, request), 2); + objs[22] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxRate(), billCategory, priceLimit, request), 2); + objs[23] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxMoney(), billCategory, priceLimit, request), 2); + objs[24] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxLastMoney(), billCategory, priceLimit, request), 2); + BigDecimal allWeight = diEx.getBasicNumber() == null || diEx.getWeight() == null ? BigDecimal.ZERO : diEx.getBasicNumber().multiply(diEx.getWeight()); + objs[25] = parseDecimalToStr(allWeight, 2); + objs[26] = diEx.getRemark(); + billDetail.add(objs); + } + ExcelUtils.exportObjectsManySheet(wtwb, twoTip, sheetTwoArr, "单据明细", 1, billDetail); + } + wtwb.write(); + wtwb.close(); + ExcelUtils.downloadExcel(file, file.getName(), response); + } catch(Exception e){ + JshException.readFail(logger, e); + } + } + + public List parseDebtBillList(List list) throws Exception { + List idList = new ArrayList<>(); + List dhList = new ArrayList<>(); + for (DepotHeadVo4List dh : list) { + idList.add(dh.getId()); + } + //通过批量查询去构造map + Map materialsListMap = findMaterialsListMapByHeaderIdList(idList); + for (DepotHeadVo4List dh : list) { + if(dh.getChangeAmount() != null) { + dh.setChangeAmount(dh.getChangeAmount().abs()); + } + if(dh.getTotalPrice() != null) { + dh.setTotalPrice(dh.getTotalPrice().abs()); + } + if(dh.getDeposit() == null) { + dh.setDeposit(BigDecimal.ZERO); + } + if(dh.getOperTime() != null) { + dh.setOperTimeStr(getCenternTime(dh.getOperTime())); + } + BigDecimal discountLastMoney = dh.getDiscountLastMoney()!=null?dh.getDiscountLastMoney():BigDecimal.ZERO; + BigDecimal otherMoney = dh.getOtherMoney()!=null?dh.getOtherMoney():BigDecimal.ZERO; + BigDecimal deposit = dh.getDeposit()!=null?dh.getDeposit():BigDecimal.ZERO; + BigDecimal changeAmount = dh.getChangeAmount()!=null?dh.getChangeAmount().abs():BigDecimal.ZERO; + if (BusinessConstants.SUB_TYPE_RETAIL.equals(dh.getSubType()) + || BusinessConstants.SUB_TYPE_RETAIL_RETURN.equals(dh.getSubType())) { + changeAmount = BigDecimal.ZERO; + } + //本单欠款(如果退货则为负数) + dh.setNeedDebt(discountLastMoney.add(otherMoney).subtract(deposit.add(changeAmount))); + if(BusinessConstants.SUB_TYPE_PURCHASE_RETURN.equals(dh.getSubType()) || BusinessConstants.SUB_TYPE_SALES_RETURN.equals(dh.getSubType())) { + dh.setNeedDebt(BigDecimal.ZERO.subtract(dh.getNeedDebt())); + } + BigDecimal needDebt = dh.getNeedDebt()!=null?dh.getNeedDebt():BigDecimal.ZERO; + BigDecimal finishDebt = accountItemService.getEachAmountByBillId(dh.getId()); + finishDebt = finishDebt!=null?finishDebt:BigDecimal.ZERO; + //已收欠款 + dh.setFinishDebt(finishDebt); + //待收欠款 + dh.setDebt(needDebt.subtract(finishDebt)); + //商品信息简述 + if(materialsListMap!=null) { + dh.setMaterialsList(materialsListMap.get(dh.getId())); + } + dhList.add(dh); + } + return dhList; + } + + public String getBillCategory(String subType) { + if(subType.equals("零售") || subType.equals("零售退货")) { + return "retail"; + } else if(subType.equals("销售订单") || subType.equals("销售") || subType.equals("销售退货")) { + return "sale"; + } else { + return "buy"; + } + } + + /** + * 格式化金额样式 + * @param decimal + * @param num + * @return + */ + private String parseDecimalToStr(BigDecimal decimal, Integer num) { + return decimal == null ? "" : decimal.setScale(num, BigDecimal.ROUND_HALF_UP).toString(); + } + + private String parseStatusToStr(String status, String type) { + if(StringUtil.isNotEmpty(status)) { + if("purchase".equals(type)) { + switch (status) { + case "2": + return "完成采购"; + case "3": + return "部分采购"; + } + } else if("sale".equals(type)) { + switch (status) { + case "2": + return "完成销售"; + case "3": + return "部分销售"; + } + } + switch (status) { + case "0": + return "未审核"; + case "1": + return "已审核"; + case "9": + return "审核中"; + } + } + return ""; + } + + public List waitBillList(String number, String materialParam, String type, String subType, + String beginTime, String endTime, String status, int offset, int rows) { + List resList = new ArrayList<>(); + try{ + String [] depotArray = getDepotArray("其它"); + //给仓管可以看全部的单据(此时可以通过分配仓库去控制权限) + String [] creatorArray = null; + String [] subTypeArray = StringUtil.isNotEmpty(subType) ? subType.split(",") : null; + String [] statusArray = StringUtil.isNotEmpty(status) ? status.split(",") : null; + Map accountMap = accountService.getAccountMap(); + beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + List list = depotHeadMapperEx.waitBillList(type, subTypeArray, creatorArray, statusArray, number, beginTime, endTime, + materialParam, depotArray, offset, rows); + if (null != list) { + List idList = new ArrayList<>(); + for (DepotHeadVo4List dh : list) { + idList.add(dh.getId()); + } + //通过批量查询去构造map + Map materialsListMap = findMaterialsListMapByHeaderIdList(idList); + Map materialCountListMap = getMaterialCountListMapByHeaderIdList(idList); + for (DepotHeadVo4List dh : list) { + if(accountMap!=null && StringUtil.isNotEmpty(dh.getAccountIdList()) && StringUtil.isNotEmpty(dh.getAccountMoneyList())) { + String accountStr = accountService.getAccountStrByIdAndMoney(accountMap, dh.getAccountIdList(), dh.getAccountMoneyList()); + dh.setAccountName(accountStr); + } + if(dh.getOperTime() != null) { + dh.setOperTimeStr(getCenternTime(dh.getOperTime())); + } + //商品信息简述 + if(materialsListMap!=null) { + dh.setMaterialsList(materialsListMap.get(dh.getId())); + } + //商品总数量 + if(materialCountListMap!=null) { + dh.setMaterialCount(materialCountListMap.get(dh.getId())); + } + resList.add(dh); + } + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return resList; + } + + public Long waitBillCount(String number, String materialParam, String type, String subType, + String beginTime, String endTime, String status) { + Long result=null; + try{ + String [] depotArray = getDepotArray("其它"); + //给仓管可以看全部的单据(此时可以通过分配仓库去控制权限) + String [] creatorArray = null; + String [] subTypeArray = StringUtil.isNotEmpty(subType) ? subType.split(",") : null; + String [] statusArray = StringUtil.isNotEmpty(status) ? status.split(",") : null; + beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + result=depotHeadMapperEx.waitBillCount(type, subTypeArray, creatorArray, statusArray, number, beginTime, endTime, + materialParam, depotArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void batchAddDepotHeadAndDetail(String ids, HttpServletRequest request) throws Exception { + List dhList = getDepotHeadListByIds(ids); + StringBuilder sb = new StringBuilder(); + User userInfo=userService.getCurrentUser(); + for(DepotHead depotHead : dhList) { + String prefixNo = BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())?"QTRK":"QTCK"; + //关联单据单号 + String oldNumber = depotHead.getNumber(); + //校验单据最新状态不能进行批量操作 + if("0".equals(depotHead.getStatus()) || "2".equals(depotHead.getStatus()) || "9".equals(depotHead.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_NEW_STATUS_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_ITEM_EXIST_NEW_STATUS_FAILED_MSG, oldNumber, depotHead.getType())); + } + //校验是否是部分入库或者部分出库 + if("3".equals(depotHead.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_PARTIALLY_STATUS_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_ITEM_EXIST_PARTIALLY_STATUS_FAILED_MSG, oldNumber, depotHead.getType())); + } + depotHead.setLinkNumber(oldNumber); + //给单号重新赋值 + String number = prefixNo + sequenceService.buildOnlyNumber(); + depotHead.setNumber(number); + depotHead.setDefaultNumber(number); + depotHead.setOperTime(new Date()); + depotHead.setSubType(BusinessConstants.SUB_TYPE_OTHER); + depotHead.setChangeAmount(BigDecimal.ZERO); + depotHead.setTotalPrice(BigDecimal.ZERO); + depotHead.setDiscountLastMoney(BigDecimal.ZERO); + depotHead.setCreator(userInfo==null?null:userInfo.getId()); + depotHead.setOrganId(null); + depotHead.setAccountId(null); + depotHead.setAccountIdList(null); + depotHead.setAccountMoneyList(null); + depotHead.setFileName(null); + depotHead.setSalesMan(null); + depotHead.setStatus("0"); + depotHead.setTenantId(null); + //查询明细 + List itemList = depotItemService.getDetailList(depotHead.getId()); + depotHead.setId(null); + JSONArray rowArr = new JSONArray(); + for(DepotItemVo4WithInfoEx item: itemList) { + if("1".equals(item.getEnableSerialNumber())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_SERIAL_NUMBER_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_ITEM_EXIST_SERIAL_NUMBER_FAILED_MSG, oldNumber)); + } + if("1".equals(item.getEnableBatchNumber())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_BATCH_NUMBER_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_ITEM_EXIST_BATCH_NUMBER_FAILED_MSG, oldNumber)); + } + item.setUnitPrice(BigDecimal.ZERO); + item.setAllPrice(BigDecimal.ZERO); + item.setLinkId(item.getId()); + item.setTenantId(null); + String itemStr = JSONObject.toJSONString(item); + JSONObject itemObj = JSONObject.parseObject(itemStr); + itemObj.put("unit", itemObj.getString("materialUnit")); + rowArr.add(itemObj.toJSONString()); + } + String rows = rowArr.toJSONString(); + //新增其它入库单或其它出库单 + sb.append("[").append(depotHead.getNumber()).append("]"); + depotHeadMapper.insertSelective(depotHead); + //根据单据编号查询单据id + DepotHeadExample dhExample = new DepotHeadExample(); + dhExample.createCriteria().andNumberEqualTo(depotHead.getNumber()).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = depotHeadMapper.selectByExample(dhExample); + if(list!=null) { + Long headId = list.get(0).getId(); + /**入库和出库处理单据子表信息*/ + depotItemService.saveDetials(rows, headId, "add", null, request); + } + } + logService.insertLog("单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_BATCH_ADD).append(sb).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + + /** + * 快捷编辑单据 + * @param id 单据id + * @param remark 备注内容 + * @param request 请求对象 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void quickEditDepotHead(Long id, String remark, HttpServletRequest request) throws Exception { + try { + // 查询单据获取编号 + DepotHead oldDepotHead = depotHeadMapper.selectByPrimaryKey(id); + if (oldDepotHead == null) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_EDIT_FAILED_CODE, + ExceptionConstants.DEPOT_HEAD_EDIT_FAILED_MSG); + } + DepotHead depotHead = new DepotHead(); + depotHead.setId(id); + depotHead.setRemark(remark); + depotHeadMapper.updateByPrimaryKeySelective(depotHead); + // 记录日志,使用单据编号 + String oldRemark = StringUtil.isNotEmpty(oldDepotHead.getRemark())? ",原备注为:"+oldDepotHead.getRemark():""; + logService.insertLog("单据", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append("备注,单据编号:") + .append(oldDepotHead.getNumber()).append(oldRemark).toString(), + request); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/DepotItemService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/DepotItemService.java new file mode 100644 index 0000000..b0d0f88 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/DepotItemService.java @@ -0,0 +1,1567 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.*; +import com.reallin.smt.datasource.vo.*; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.StringUtil; +import com.reallin.smt.utils.Tools; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.*; + +@Service +public class DepotItemService { + private Logger logger = LoggerFactory.getLogger(DepotItemService.class); + + private final static String TYPE = "入库"; + private final static String SUM_TYPE = "number"; + private final static String IN = "in"; + private final static String OUT = "out"; + + @Resource + private DepotItemMapper depotItemMapper; + @Resource + private DepotItemMapperEx depotItemMapperEx; + @Resource + private MaterialService materialService; + @Resource + private MaterialExtendService materialExtendService; + @Resource + private SerialNumberMapperEx serialNumberMapperEx; + @Resource + private DepotHeadService depotHeadService; + @Resource + private DepotHeadMapper depotHeadMapper; + @Resource + private SerialNumberService serialNumberService; + @Resource + private UserService userService; + @Resource + private SystemConfigService systemConfigService; + @Resource + private DepotService depotService; + @Resource + private UnitService unitService; + @Resource + private MaterialCurrentStockMapper materialCurrentStockMapper; + @Resource + private MaterialCurrentStockMapperEx materialCurrentStockMapperEx; + @Resource + private LogService logService; + + public DepotItem getDepotItem(long id)throws Exception { + DepotItem result=null; + try{ + result=depotItemMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getDepotItem()throws Exception { + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=depotItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name, Integer type, String remark, int offset, int rows)throws Exception { + List list=null; + try{ + list=depotItemMapperEx.selectByConditionDepotItem(name, type, remark, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public Long countDepotItem(String name, Integer type, String remark) throws Exception{ + Long result =null; + try{ + result=depotItemMapperEx.countsByDepotItem(name, type, remark); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertDepotItem(JSONObject obj, HttpServletRequest request)throws Exception { + DepotItem depotItem = JSONObject.parseObject(obj.toJSONString(), DepotItem.class); + int result =0; + try{ + result=depotItemMapper.insertSelective(depotItem); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateDepotItem(JSONObject obj, HttpServletRequest request)throws Exception { + DepotItem depotItem = JSONObject.parseObject(obj.toJSONString(), DepotItem.class); + int result =0; + try{ + result=depotItemMapper.updateByPrimaryKeySelective(depotItem); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteDepotItem(Long id, HttpServletRequest request)throws Exception { + int result =0; + try{ + result=depotItemMapper.deleteByPrimaryKey(id); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDepotItem(String ids, HttpServletRequest request)throws Exception { + List idList = StringUtil.strToLongList(ids); + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andIdIn(idList); + int result =0; + try{ + result=depotItemMapper.deleteByExample(example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andIdNotEqualTo(id).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list =null; + try{ + list=depotItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public List findDetailByDepotIdsAndMaterialIdList(String depotIds, Boolean forceFlag, Boolean inOutManageFlag, String sku, String batchNumber, + String number, String beginTime, String endTime, Long mId, Integer offset, Integer rows)throws Exception { + String[] depotIdArrOld = null; + if(StringUtil.isNotEmpty(depotIds)) { + depotIdArrOld = depotIds.split(","); + } + List depotList = depotService.parseDepotListByArr(depotIdArrOld); + Long[] depotIdArray = StringUtil.listToLongArray(depotList); + List list =null; + try{ + list = depotItemMapperEx.findDetailByDepotIdsAndMaterialIdList(depotIdArray, forceFlag, inOutManageFlag, sku, batchNumber, number, beginTime, endTime, mId, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public Long findDetailByDepotIdsAndMaterialIdCount(String depotIds, Boolean forceFlag, Boolean inOutManageFlag, String sku, String batchNumber, + String number, String beginTime, String endTime, Long mId)throws Exception { + String[] depotIdArrOld = null; + if(StringUtil.isNotEmpty(depotIds)) { + depotIdArrOld = depotIds.split(","); + } + List depotList = depotService.parseDepotListByArr(depotIdArrOld); + Long[] depotIdArray = StringUtil.listToLongArray(depotList); + Long result =null; + try{ + result = depotItemMapperEx.findDetailByDepotIdsAndMaterialIdCount(depotIdArray, forceFlag, inOutManageFlag, sku, batchNumber, number, beginTime, endTime, mId); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertDepotItemWithObj(DepotItem depotItem)throws Exception { + int result =0; + try{ + result = depotItemMapper.insertSelective(depotItem); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateDepotItemWithObj(DepotItem depotItem)throws Exception { + int result =0; + try{ + result = depotItemMapper.updateByPrimaryKeySelective(depotItem); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public List getListByHeaderId(Long headerId)throws Exception { + List list =null; + try{ + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andHeaderIdEqualTo(headerId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + list = depotItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + /** + * 查询当前单据中指定商品的明细信息 + * @param headerId + * @param meId + * @return + * @throws Exception + */ + public DepotItem getItemByHeaderIdAndMaterial(Long headerId, Long meId)throws Exception { + DepotItem depotItem = new DepotItem(); + try{ + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andHeaderIdEqualTo(headerId).andMaterialExtendIdEqualTo(meId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = depotItemMapper.selectByExample(example); + if(list!=null && list.size()>0) { + depotItem = list.get(0); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return depotItem; + } + + /** + * 查询被关联订单中指定商品的明细信息 + * @param linkStr + * @param meId + * @return + * @throws Exception + */ + public DepotItem getPreItemByHeaderIdAndMaterial(String linkStr, Long meId, Long linkId)throws Exception { + DepotItem depotItem = new DepotItem(); + try{ + DepotHead depotHead = depotHeadService.getDepotHead(linkStr); + if(null!=depotHead && null!=depotHead.getId()) { + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andHeaderIdEqualTo(depotHead.getId()).andMaterialExtendIdEqualTo(meId).andIdEqualTo(linkId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = depotItemMapper.selectByExample(example); + if(list!=null && list.size()>0) { + depotItem = list.get(0); + } + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return depotItem; + } + + public List getDetailList(Long headerId)throws Exception { + List list =null; + try{ + list = depotItemMapperEx.getDetailList(headerId); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getInOutStock(String materialParam, List categoryIdList, String endTime, Integer offset, Integer rows)throws Exception { + List list =null; + try{ + list = depotItemMapperEx.getInOutStock(materialParam, categoryIdList, endTime, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int getInOutStockCount(String materialParam, List categoryIdList, String endTime)throws Exception { + int result=0; + try{ + result = depotItemMapperEx.getInOutStockCount(materialParam, categoryIdList, endTime); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getListWithBuyOrSale(String materialParam, String billType, + String beginTime, String endTime, String[] creatorArray, Long organId, String[] organArray, List categoryList, List depotList, Boolean forceFlag, Integer offset, Integer rows)throws Exception { + List list =null; + try{ + list = depotItemMapperEx.getListWithBuyOrSale(materialParam, billType, beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int getListWithBuyOrSaleCount(String materialParam, String billType, + String beginTime, String endTime, String[] creatorArray, Long organId, String[] organArray, List categoryList, List depotList, Boolean forceFlag)throws Exception { + int result=0; + try{ + result = depotItemMapperEx.getListWithBuyOrSaleCount(materialParam, billType, beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public BigDecimal buyOrSale(String type, String subType, Long meId, String beginTime, String endTime, + String[] creatorArray, Long organId, String [] organArray, List depotList, Boolean forceFlag, String sumType) throws Exception{ + BigDecimal result= BigDecimal.ZERO; + try{ + if (SUM_TYPE.equals(sumType)) { + result= depotItemMapperEx.buyOrSaleNumber(type, subType, meId, beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, sumType); + } else { + result= depotItemMapperEx.buyOrSalePrice(type, subType, meId, beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, sumType); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public BigDecimal buyOrSalePriceTotal(String type, String subType, String materialParam, String beginTime, String endTime, + String[] creatorArray, Long organId, String [] organArray, List categoryList, List depotList, Boolean forceFlag) throws Exception{ + BigDecimal result= BigDecimal.ZERO; + try{ + result= depotItemMapperEx.buyOrSalePriceTotal(type, subType, materialParam, beginTime, endTime, creatorArray, organId, organArray, categoryList, depotList, forceFlag); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + + } + + /** + * 统计采购、销售、零售的总金额列表 + * @param beginTime + * @param endTime + * @return + * @throws Exception + */ + public List inOrOutPriceList(String beginTime, String endTime) throws Exception{ + List result = new ArrayList<>(); + try{ + String [] creatorArray = depotHeadService.getCreatorArray(); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + result = depotItemMapperEx.inOrOutPriceList(beginTime, endTime, creatorArray, forceFlag); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void saveDetials(String rows, Long headerId, String actionType, DepotHead preDepotHead, HttpServletRequest request) throws Exception{ + //查询单据主表信息 + DepotHead depotHead =depotHeadMapper.selectByPrimaryKey(headerId); + //删除序列号和回收序列号 + deleteOrCancelSerialNumber(actionType, depotHead, headerId); + //删除单据的明细 + deleteDepotItemHeadId(headerId); + JSONArray rowArr = JSONArray.parseArray(rows); + if (null != rowArr && rowArr.size()>0) { + //针对组装单、拆卸单校验是否存在组合件和普通子件 + checkAssembleWithMaterialType(rowArr, depotHead.getSubType()); + //校验多行明细当中是否存在重复的序列号 + checkSerialNumberRepeatWithCurrent(rowArr); + List depotItemList = new ArrayList<>(); + for (int i = 0; i < rowArr.size(); i++) { + DepotItem depotItem = new DepotItem(); + JSONObject rowObj = JSONObject.parseObject(rowArr.getString(i)); + depotItem.setHeaderId(headerId); + String barCode = rowObj.getString("barCode"); + MaterialExtend materialExtend = materialExtendService.getInfoByBarCode(barCode); + if(materialExtend == null) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BARCODE_IS_NOT_EXIST_CODE, + String.format(ExceptionConstants.MATERIAL_BARCODE_IS_NOT_EXIST_MSG, barCode)); + } + depotItem.setMaterialId(materialExtend.getMaterialId()); + depotItem.setMaterialExtendId(materialExtend.getId()); + depotItem.setMaterialUnit(rowObj.getString("unit")); + Material material= materialService.getMaterial(depotItem.getMaterialId()); + if (BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber()) || + BusinessConstants.ENABLE_BATCH_NUMBER_ENABLED.equals(material.getEnableBatchNumber())) { + //组装拆卸单不能选择批号或序列号商品 + if(BusinessConstants.SUB_TYPE_ASSEMBLE.equals(depotHead.getSubType()) || + BusinessConstants.SUB_TYPE_DISASSEMBLE.equals(depotHead.getSubType())) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_ASSEMBLE_SELECT_ERROR_CODE, + String.format(ExceptionConstants.MATERIAL_ASSEMBLE_SELECT_ERROR_MSG, barCode)); + } + //调拨单不能选择批号或序列号商品(该场景走出库和入库单) + if(BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubType())) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_TRANSFER_SELECT_ERROR_CODE, + String.format(ExceptionConstants.MATERIAL_TRANSFER_SELECT_ERROR_MSG, barCode)); + } + //盘点业务不能选择批号或序列号商品(该场景走出库和入库单) + if(BusinessConstants.SUB_TYPE_CHECK_ENTER.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_REPLAY.equals(depotHead.getSubType())) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_STOCK_CHECK_ERROR_CODE, + String.format(ExceptionConstants.MATERIAL_STOCK_CHECK_ERROR_MSG, barCode)); + } + } + if (StringUtil.isExist(rowObj.get("snList"))) { + depotItem.setSnList(rowObj.getString("snList")); + if(StringUtil.isExist(rowObj.get("depotId"))) { + String [] snArray = depotItem.getSnList().split(","); + int operNum = rowObj.getInteger("operNumber"); + if(snArray.length == operNum) { + Long depotId = rowObj.getLong("depotId"); + BigDecimal inPrice = BigDecimal.ZERO; + if (StringUtil.isExist(rowObj.get("unitPrice"))) { + inPrice = rowObj.getBigDecimal("unitPrice"); + } + serialNumberService.addSerialNumberByBill(depotHead.getType(), depotHead.getSubType(), + depotHead.getNumber(), materialExtend.getMaterialId(), depotId, inPrice, depotItem.getSnList()); + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_SN_NUMBERE_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_SN_NUMBERE_FAILED_MSG, barCode)); + } + } + } else { + //入库或出库 + if (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType()) || + BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())) { + //序列号不能为空 + if (BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())) { + //如果开启出入库管理,并且类型等于采购、采购退货、销售、销售退货,则跳过 + if(systemConfigService.getInOutManageFlag() && + (BusinessConstants.SUB_TYPE_PURCHASE.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_PURCHASE_RETURN.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_SALES_RETURN.equals(depotHead.getSubType()))) { + //跳过 + } else { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_SERIAL_NUMBERE_EMPTY_CODE, + String.format(ExceptionConstants.MATERIAL_SERIAL_NUMBERE_EMPTY_MSG, barCode)); + } + } + } + } + if (StringUtil.isExist(rowObj.get("batchNumber"))) { + depotItem.setBatchNumber(rowObj.getString("batchNumber")); + } else { + //入库或出库 + if(BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType()) || + BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())) { + //批号不能为空 + if (BusinessConstants.ENABLE_BATCH_NUMBER_ENABLED.equals(material.getEnableBatchNumber())) { + //如果开启出入库管理,并且类型等于采购、采购退货、销售、销售退货,则跳过 + if(systemConfigService.getInOutManageFlag() && + (BusinessConstants.SUB_TYPE_PURCHASE.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_PURCHASE_RETURN.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_SALES_RETURN.equals(depotHead.getSubType()))) { + //跳过 + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BATCH_NUMBERE_EMPTY_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_BATCH_NUMBERE_EMPTY_MSG, barCode)); + } + } + } + } + if (StringUtil.isExist(rowObj.get("expirationDate"))) { + depotItem.setExpirationDate(rowObj.getDate("expirationDate")); + } + if (StringUtil.isExist(rowObj.get("sku"))) { + depotItem.setSku(rowObj.getString("sku")); + } + if (StringUtil.isExist(rowObj.get("linkId"))) { + depotItem.setLinkId(rowObj.getLong("linkId")); + } + //以下进行单位换算 + Unit unitInfo = materialService.findUnit(materialExtend.getMaterialId()); //查询多单位信息 + if (StringUtil.isExist(rowObj.get("operNumber"))) { + depotItem.setOperNumber(rowObj.getBigDecimal("operNumber")); + String unit = rowObj.get("unit").toString(); + BigDecimal oNumber = rowObj.getBigDecimal("operNumber"); + if (StringUtil.isNotEmpty(unitInfo.getName())) { + String basicUnit = unitInfo.getBasicUnit(); //基本单位 + if (unit.equals(basicUnit)) { //如果等于基本单位 + depotItem.setBasicNumber(oNumber); //数量一致 + } else if (unit.equals(unitInfo.getOtherUnit())) { //如果等于副单位 + depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatio())); //数量乘以比例 + } else if (unit.equals(unitInfo.getOtherUnitTwo())) { //如果等于副单位2 + depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatioTwo())); //数量乘以比例 + } else if (unit.equals(unitInfo.getOtherUnitThree())) { //如果等于副单位3 + depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatioThree())); //数量乘以比例 + } else { + depotItem.setBasicNumber(oNumber); //数量一致 + } + } else { + depotItem.setBasicNumber(oNumber); //其他情况 + } + } + //如果数量+已完成数量>原订单数量,给出预警(判断前提是存在关联订单|关联请购单) + String linkStr = StringUtil.isNotEmpty(depotHead.getLinkNumber())? depotHead.getLinkNumber(): depotHead.getLinkApply(); + if (StringUtil.isNotEmpty(linkStr) && StringUtil.isExist(rowObj.get("preNumber")) && StringUtil.isExist(rowObj.get("finishNumber"))) { + if("add".equals(actionType)) { + //在新增模式进行状态赋值 + BigDecimal preNumber = rowObj.getBigDecimal("preNumber"); + BigDecimal finishNumber = rowObj.getBigDecimal("finishNumber"); + if(depotItem.getOperNumber().add(finishNumber).compareTo(preNumber)>0) { + if(!systemConfigService.getOverLinkBillFlag()) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_MSG, barCode)); + } + } + } else if("update".equals(actionType)) { + //当前单据的类型 + String currentSubType = depotHead.getSubType(); + //在更新模式进行状态赋值 + String unit = rowObj.get("unit").toString(); + Long preHeaderId = depotHeadService.getDepotHead(linkStr).getId(); + if(null!=preHeaderId) { + //前一个单据的数量 + BigDecimal preNumber = getPreItemByHeaderIdAndMaterial(linkStr, depotItem.getMaterialExtendId(), depotItem.getLinkId()).getOperNumber(); + //除去此单据之外的已入库|已出库 + BigDecimal realFinishNumber = getRealFinishNumber(currentSubType, depotItem.getMaterialExtendId(), depotItem.getLinkId(), preHeaderId, headerId, unitInfo, unit); + if(preNumber!=null) { + if (depotItem.getOperNumber().add(realFinishNumber).compareTo(preNumber) > 0) { + if (!systemConfigService.getOverLinkBillFlag()) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_MSG, barCode)); + } + } + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_PRE_BILL_IS_CHANGE_CODE, + ExceptionConstants.DEPOT_ITEM_PRE_BILL_IS_CHANGE_MSG); + } + } + } + } + if (StringUtil.isExist(rowObj.get("unitPrice"))) { + BigDecimal unitPrice = rowObj.getBigDecimal("unitPrice"); + depotItem.setUnitPrice(unitPrice); + if(materialExtend.getLowDecimal()!=null) { + //零售或销售单价低于最低售价,进行提示 + if("零售".equals(depotHead.getSubType()) || "销售".equals(depotHead.getSubType())) { + if (unitPrice.compareTo(materialExtend.getLowDecimal()) < 0) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_UNIT_PRICE_LOW_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_UNIT_PRICE_LOW_MSG, barCode)); + } + } + } + } + //如果是销售出库、销售退货、零售出库、零售退货则给采购单价字段赋值(如果是批次商品,则要根据批号去找之前的入库价) + if(BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType()) || + BusinessConstants.SUB_TYPE_SALES_RETURN.equals(depotHead.getSubType()) || + BusinessConstants.SUB_TYPE_RETAIL.equals(depotHead.getSubType()) || + BusinessConstants.SUB_TYPE_RETAIL_RETURN.equals(depotHead.getSubType())) { + boolean moveAvgPriceFlag = systemConfigService.getMoveAvgPriceFlag(); + BigDecimal currentUnitPrice = materialCurrentStockMapperEx.getCurrentUnitPriceByMId(materialExtend.getMaterialId()); + currentUnitPrice = unitService.parseUnitPriceByUnit(currentUnitPrice, unitInfo, depotItem.getMaterialUnit()); + BigDecimal unitPrice = moveAvgPriceFlag? currentUnitPrice: materialExtend.getPurchaseDecimal(); + depotItem.setPurchaseUnitPrice(unitPrice); + if(StringUtil.isNotEmpty(depotItem.getBatchNumber())) { + depotItem.setPurchaseUnitPrice(getDepotItemByBatchNumber(depotItem.getMaterialExtendId(),depotItem.getBatchNumber()).getUnitPrice()); + } + } + if (StringUtil.isExist(rowObj.get("taxUnitPrice"))) { + depotItem.setTaxUnitPrice(rowObj.getBigDecimal("taxUnitPrice")); + } + if (StringUtil.isExist(rowObj.get("allPrice"))) { + depotItem.setAllPrice(rowObj.getBigDecimal("allPrice")); + } + if (StringUtil.isExist(rowObj.get("depotId"))) { + depotItem.setDepotId(rowObj.getLong("depotId")); + } else { + if(!BusinessConstants.SUB_TYPE_PURCHASE_APPLY.equals(depotHead.getSubType()) + && !BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType()) + && !BusinessConstants.SUB_TYPE_SALES_ORDER.equals(depotHead.getSubType())) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_DEPOT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_DEPOT_FAILED_MSG)); + } + } + if(BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubType())) { + if (StringUtil.isExist(rowObj.get("anotherDepotId"))) { + if(rowObj.getLong("anotherDepotId").equals(rowObj.getLong("depotId"))) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_ANOTHER_DEPOT_EQUAL_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_ANOTHER_DEPOT_EQUAL_FAILED_MSG)); + } else { + depotItem.setAnotherDepotId(rowObj.getLong("anotherDepotId")); + } + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_ANOTHER_DEPOT_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_ANOTHER_DEPOT_FAILED_MSG)); + } + } + if (StringUtil.isExist(rowObj.get("taxRate"))) { + depotItem.setTaxRate(rowObj.getBigDecimal("taxRate")); + } + if (StringUtil.isExist(rowObj.get("taxMoney"))) { + depotItem.setTaxMoney(rowObj.getBigDecimal("taxMoney")); + } + if (StringUtil.isExist(rowObj.get("taxLastMoney"))) { + depotItem.setTaxLastMoney(rowObj.getBigDecimal("taxLastMoney")); + } + if (StringUtil.isExist(rowObj.get("mType"))) { + depotItem.setMaterialType(rowObj.getString("mType")); + } + if (StringUtil.isExist(rowObj.get("remark"))) { + depotItem.setRemark(rowObj.getString("remark")); + } + //出库时判断库存是否充足 + if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){ + String stockMsg = material.getName() + "-" + barCode; + BigDecimal stock = getCurrentStockByParam(depotItem.getDepotId(),depotItem.getMaterialId()); + if(StringUtil.isNotEmpty(depotItem.getSku())) { + //对于sku商品要换个方式计算库存 + stock = getSkuStockByParam(depotItem.getDepotId(),depotItem.getMaterialExtendId(),null,null); + } + if(StringUtil.isNotEmpty(depotItem.getBatchNumber())) { + //对于批次商品要换个方式计算库存 + stock = getOneBatchNumberStock(depotItem.getDepotId(), barCode, depotItem.getBatchNumber()); + stockMsg += "-批号" + depotItem.getBatchNumber(); + } + BigDecimal thisRealNumber = depotItem.getBasicNumber()==null?BigDecimal.ZERO:depotItem.getBasicNumber(); + if(StringUtil.isNotEmpty(depotItem.getBatchNumber())) { + //对于批次商品,直接使用当前填写的数量 + thisRealNumber = depotItem.getOperNumber()==null?BigDecimal.ZERO:depotItem.getOperNumber(); + } + if(systemConfigService.getForceApprovalFlag() && "0".equals(depotHead.getStatus())) { + //如果开启强审核,并且没有保存的同时审核,则跳过库存判断 + } else { + if(!systemConfigService.getMinusStockFlag() && stock.compareTo(thisRealNumber)<0){ + //如果开启出入库管理,并且类型等于采购退货、销售,则跳过 + if(systemConfigService.getInOutManageFlag() && + (BusinessConstants.SUB_TYPE_PURCHASE_RETURN.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType()))) { + //跳过 + } else { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_STOCK_NOT_ENOUGH_CODE, + String.format(ExceptionConstants.MATERIAL_STOCK_NOT_ENOUGH_MSG, stockMsg)); + } + } + } + //出库时处理序列号 + if(!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubType())) { + //判断商品是否开启序列号,开启的售出序列号,未开启的跳过 + if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())) { + //如果开启出入库管理,并且类型等于采购、采购退货、销售、销售退货,则跳过 + if(systemConfigService.getInOutManageFlag() && + (BusinessConstants.SUB_TYPE_PURCHASE.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_PURCHASE_RETURN.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType()) + ||BusinessConstants.SUB_TYPE_SALES_RETURN.equals(depotHead.getSubType()))) { + //跳过 + } else { + //售出序列号,获得当前操作人 + User userInfo = userService.getCurrentUser(); + serialNumberService.checkAndUpdateSerialNumber(depotItem, depotHead.getNumber(), userInfo, StringUtil.toNull(depotItem.getSnList())); + } + } + } + } + depotItemList.add(depotItem); + } + //批量写入单据明细数据 + depotItemMapperEx.batchInsert(depotItemList); + for (DepotItem depotItem : depotItemList) { + //更新当前库存 + updateCurrentStock(depotItem); + //更新当前成本价 + updateCurrentUnitPrice(depotItem); + //更新商品的价格 + updateMaterialExtendPrice(depotItem.getMaterialExtendId(), depotHead.getSubType(), depotHead.getBillType(), depotItem.getUnitPrice()); + } + //如果关联单据号非空则更新订单的状态,单据类型:采购入库单、销售出库单、盘点复盘单、其它入库单、其它出库单 + if(BusinessConstants.SUB_TYPE_PURCHASE.equals(depotHead.getSubType()) + || BusinessConstants.SUB_TYPE_SALES.equals(depotHead.getSubType()) + || BusinessConstants.SUB_TYPE_REPLAY.equals(depotHead.getSubType()) + || BusinessConstants.SUB_TYPE_OTHER.equals(depotHead.getSubType())) { + if(StringUtil.isNotEmpty(depotHead.getLinkNumber())) { + //单据状态:是否全部完成 2-全部完成 3-部分完成(针对订单的分批出入库) + String billStatus = getBillStatusByParam(depotHead, depotHead.getLinkNumber(), "normal"); + changeBillStatus(depotHead.getLinkNumber(), billStatus); + if(preDepotHead!=null && StringUtil.isNotEmpty(preDepotHead.getLinkNumber()) && !preDepotHead.getLinkNumber().equals(depotHead.getLinkNumber())) { + String preBillStatus = getBillStatusByParam(preDepotHead, preDepotHead.getLinkNumber(), "normal"); + changeBillStatus(preDepotHead.getLinkNumber(), preBillStatus); + } + } + } + //当前单据类型为采购订单的逻辑 + if(BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) { + //如果关联单据号非空则更新订单的状态,此处针对销售订单转采购订单的场景 + if(StringUtil.isNotEmpty(depotHead.getLinkNumber())) { + String billStatus = getBillStatusByParam(depotHead, depotHead.getLinkNumber(), "normal"); + changeBillPurchaseStatus(depotHead.getLinkNumber(), billStatus); + if(preDepotHead!=null && StringUtil.isNotEmpty(preDepotHead.getLinkNumber()) && !preDepotHead.getLinkNumber().equals(depotHead.getLinkNumber())) { + String preBillStatus = getBillStatusByParam(preDepotHead, preDepotHead.getLinkNumber(), "normal"); + if(preBillStatus.equals(BusinessConstants.BILLS_STATUS_AUDIT)) { + //采购进度不存在已审核状态,需要转为未采购-0 + preBillStatus = BusinessConstants.BILLS_STATUS_UN_AUDIT; + } + changeBillPurchaseStatus(preDepotHead.getLinkNumber(), preBillStatus); + } + } + //如果关联单据号非空则更新订单的状态,此处针对请购单转采购订单的场景 + if(StringUtil.isNotEmpty(depotHead.getLinkApply())) { + String billStatus = getBillStatusByParam(depotHead, depotHead.getLinkApply(), "apply"); + changeBillStatus(depotHead.getLinkApply(), billStatus); + if(preDepotHead!=null && StringUtil.isNotEmpty(preDepotHead.getLinkApply()) && !preDepotHead.getLinkApply().equals(depotHead.getLinkApply())) { + String preBillStatus = getBillStatusByParam(preDepotHead, preDepotHead.getLinkApply(), "apply"); + changeBillStatus(preDepotHead.getLinkApply(), preBillStatus); + } + } + } + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_ROW_FAILED_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_ROW_FAILED_MSG)); + } + } + /** + * 判断单据的状态 + * 通过数组对比:原单据的商品和商品数量(汇总) 与 分批操作后单据的商品和商品数量(汇总) + * @param depotHead + * @param linkStr + * @return + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public String getBillStatusByParam(DepotHead depotHead, String linkStr, String linkType) { + String res = BusinessConstants.BILLS_STATUS_SKIPED; + //获取原单据的商品和商品数量(汇总) + List linkList = depotItemMapperEx.getLinkBillDetailMaterialSum(linkStr); + //获取分批操作后单据的商品和商品数量(汇总) + List batchList = depotItemMapperEx.getBatchBillDetailMaterialSum(linkStr, linkType, depotHead.getType()); + if(batchList.isEmpty()) { + //从未进行过分批操作 + res = BusinessConstants.BILLS_STATUS_AUDIT; + } else { + //将分批操作后的单据的商品和商品数据构造成Map + Map materialSumMap = new HashMap<>(); + for(DepotItemVo4MaterialAndSum materialAndSum : batchList) { + materialSumMap.put(materialAndSum.getMaterialExtendId(), materialAndSum.getOperNumber()); + } + for(DepotItemVo4MaterialAndSum materialAndSum : linkList) { + //过滤掉原单里面有数量为0的商品 + if(materialAndSum.getOperNumber().compareTo(BigDecimal.ZERO) != 0) { + BigDecimal materialSum = materialSumMap.get(materialAndSum.getMaterialExtendId()); + if (materialSum != null) { + if (materialSum.compareTo(materialAndSum.getOperNumber()) < 0) { + res = BusinessConstants.BILLS_STATUS_SKIPING; + } + } else { + res = BusinessConstants.BILLS_STATUS_SKIPING; + } + } + } + } + return res; + } + + /** + * 更新单据状态 + * @param linkStr + * @param billStatus + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void changeBillStatus(String linkStr, String billStatus) { + DepotHead depotHeadOrders = new DepotHead(); + depotHeadOrders.setStatus(billStatus); + DepotHeadExample example = new DepotHeadExample(); + List linkNoList = StringUtil.strToStringList(linkStr); + example.createCriteria().andNumberIn(linkNoList); + try{ + depotHeadMapper.updateByExampleSelective(depotHeadOrders, example); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE,ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + } + + /** + * 更新单据状态,此处针对销售订单转采购订单的场景 + * @param linkStr + * @param billStatus + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void changeBillPurchaseStatus(String linkStr, String billStatus) { + DepotHead depotHeadOrders = new DepotHead(); + depotHeadOrders.setPurchaseStatus(billStatus); + DepotHeadExample example = new DepotHeadExample(); + List linkNoList = StringUtil.strToStringList(linkStr); + example.createCriteria().andNumberIn(linkNoList); + try{ + depotHeadMapper.updateByExampleSelective(depotHeadOrders, example); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE,ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + } + + /** + * 根据批号查询单据明细信息 + * @param materialExtendId + * @param batchNumber + * @return + */ + public DepotItem getDepotItemByBatchNumber(Long materialExtendId, String batchNumber) { + List depotItemList = depotItemMapperEx.getDepotItemByBatchNumber(materialExtendId, batchNumber); + if(null != depotItemList && depotItemList.size() > 0){ + return depotItemList.get(0); + } else { + return new DepotItem(); + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void deleteDepotItemHeadId(Long headerId)throws Exception { + try{ + //1、查询删除前的单据明细 + List depotItemList = getListByHeaderId(headerId); + //2、删除单据明细 + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andHeaderIdEqualTo(headerId); + depotItemMapper.deleteByExample(example); + //3、计算删除之后单据明细中商品的库存 + for(DepotItem depotItem : depotItemList){ + updateCurrentStock(depotItem); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + } + + /** + * 删除序列号和回收序列号 + * @param actionType + * @throws Exception + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void deleteOrCancelSerialNumber(String actionType, DepotHead depotHead, Long headerId) throws Exception { + if(actionType.equals("update")) { + User userInfo = userService.getCurrentUser(); + if(BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())){ + //入库逻辑 + //判断如果有序列号被出库了就不允许修改该单据 + List snList = serialNumberMapperEx.getIsSellListByInBillNo(depotHead.getNumber()); + if(!snList.isEmpty()){ + String sn = snList.get(0).getSerialNumber(); + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_SN_NOT_ALLOW_UPDATE_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_SN_NOT_ALLOW_UPDATE_MSG, sn)); + } else { + String number = depotHead.getNumber(); + SerialNumberExample example = new SerialNumberExample(); + example.createCriteria().andInBillNoEqualTo(number); + serialNumberService.deleteByExample(example); + } + } else if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){ + //出库逻辑 + DepotItemExample example = new DepotItemExample(); + example.createCriteria().andHeaderIdEqualTo(headerId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List depotItemList = depotItemMapper.selectByExample(example); + if(null != depotItemList && depotItemList.size() > 0){ + for (DepotItem depotItem : depotItemList){ + if(StringUtil.isNotEmpty(depotItem.getSnList())){ + serialNumberService.cancelSerialNumber(depotItem.getMaterialId(), depotHead.getNumber(), (depotItem.getBasicNumber() == null ? 0 : depotItem.getBasicNumber()).intValue(), userInfo); + } + } + } + } + } + } + + /** + * 针对组装单、拆卸单校验是否存在组合件和普通子件 + * @param rowArr + * @param subType + */ + public void checkAssembleWithMaterialType(JSONArray rowArr, String subType) { + if(BusinessConstants.SUB_TYPE_ASSEMBLE.equals(subType) || + BusinessConstants.SUB_TYPE_DISASSEMBLE.equals(subType)) { + if(rowArr.size() > 1) { + JSONObject firstRowObj = JSONObject.parseObject(rowArr.getString(0)); + JSONObject secondRowObj = JSONObject.parseObject(rowArr.getString(1)); + String firstMaterialType = firstRowObj.getString("mType"); + String secondMaterialType = secondRowObj.getString("mType"); + if(!"组合件".equals(firstMaterialType) || !"普通子件".equals(secondMaterialType)) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_CHECK_ASSEMBLE_EMPTY_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_CHECK_ASSEMBLE_EMPTY_MSG)); + } + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_CHECK_ASSEMBLE_EMPTY_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_CHECK_ASSEMBLE_EMPTY_MSG)); + } + } + } + + /** + * 校验多行明细当中是否存在重复的序列号 + * @param rowArr + */ + public void checkSerialNumberRepeatWithCurrent(JSONArray rowArr) { + List allSnArr = new ArrayList<>(); + for (int i = 0; i < rowArr.size(); i++) { + JSONObject rowObj = JSONObject.parseObject(rowArr.getString(i)); + if(StringUtil.isNotEmpty(rowObj.getString("snList"))) { + String snList = rowObj.getString("snList"); + snList = snList.replaceAll(",", ","); + List snArr = StringUtil.strToStringList(snList); + if(snArr!=null && !snArr.isEmpty()) { + allSnArr.addAll(snArr); + } + } + } + Set seen = new HashSet<>(); + Set duplicates = new HashSet<>(); + for (String str : allSnArr) { + if (!seen.add(str)) { + duplicates.add(str); + } + } + if(!duplicates.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_CHECK_SERIAL_NUMBER_REPEAT_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_CHECK_SERIAL_NUMBER_REPEAT_MSG, String.join(", ", duplicates))); + } + } + + /** + * 更新商品的价格 + * @param meId + * @param subType + * @param unitPrice + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateMaterialExtendPrice(Long meId, String subType, String billType, BigDecimal unitPrice) throws Exception { + if(systemConfigService.getUpdateUnitPriceFlag()) { + if (unitPrice!=null) { + MaterialExtend materialExtend = new MaterialExtend(); + materialExtend.setId(meId); + if(BusinessConstants.SUB_TYPE_PURCHASE.equals(subType)) { + materialExtend.setPurchaseDecimal(unitPrice); + } + if(BusinessConstants.SUB_TYPE_SALES.equals(subType)) { + materialExtend.setWholesaleDecimal(unitPrice); + } + if(BusinessConstants.SUB_TYPE_RETAIL.equals(subType)) { + materialExtend.setCommodityDecimal(unitPrice); + } + //其它入库-生产入库的情况更新采购单价 + if(BusinessConstants.SUB_TYPE_OTHER.equals(subType)) { + if(BusinessConstants.BILL_TYPE_PRODUCE_IN.equals(billType)) { + materialExtend.setPurchaseDecimal(unitPrice); + } + } + materialExtendService.updateMaterialExtend(materialExtend); + } + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public List findStockWarningCount(Integer offset, Integer rows, String materialParam, List depotList, List categoryList) { + List list = null; + try{ + list =depotItemMapperEx.findStockWarningCount(offset, rows, materialParam, depotList, categoryList); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int findStockWarningCountTotal(String materialParam, List depotList, List categoryList) { + int result = 0; + try{ + result =depotItemMapperEx.findStockWarningCountTotal(materialParam, depotList, categoryList); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + /** + * 库存统计-sku + * @param depotId + * @param meId + * @param beginTime + * @param endTime + * @return + */ + public BigDecimal getSkuStockByParam(Long depotId, Long meId, String beginTime, String endTime) throws Exception { + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + List depotList = depotService.parseDepotList(depotId); + //盘点复盘后数量的变动 + BigDecimal stockCheckSum = depotItemMapperEx.getSkuStockCheckSumByDepotList(depotList, meId, forceFlag, beginTime, endTime); + DepotItemVo4Stock stockObj = depotItemMapperEx.getSkuStockByParamWithDepotList(depotList, meId, forceFlag, inOutManageFlag, beginTime, endTime); + BigDecimal stockSum = BigDecimal.ZERO; + if(stockObj!=null) { + BigDecimal inTotal = stockObj.getInTotal(); + BigDecimal transfInTotal = stockObj.getTransfInTotal(); + BigDecimal assemInTotal = stockObj.getAssemInTotal(); + BigDecimal disAssemInTotal = stockObj.getDisAssemInTotal(); + BigDecimal outTotal = stockObj.getOutTotal(); + BigDecimal transfOutTotal = stockObj.getTransfOutTotal(); + BigDecimal assemOutTotal = stockObj.getAssemOutTotal(); + BigDecimal disAssemOutTotal = stockObj.getDisAssemOutTotal(); + stockSum = inTotal.add(transfInTotal).add(assemInTotal).add(disAssemInTotal) + .subtract(outTotal).subtract(transfOutTotal).subtract(assemOutTotal).subtract(disAssemOutTotal); + } + return stockCheckSum.add(stockSum); + } + + /** + * 库存统计-单仓库 + * @param depotId + * @param mId + * @param beginTime + * @param endTime + * @return + */ + public BigDecimal getStockByParam(Long depotId, Long mId, String beginTime, String endTime) throws Exception { + List depotList = depotService.parseDepotList(depotId); + return getStockByParamWithDepotList(depotList, mId, beginTime, endTime); + } + + /** + * 库存统计-多仓库 + * @param depotList + * @param mId + * @param beginTime + * @param endTime + * @return + */ + public BigDecimal getStockByParamWithDepotList(List depotList, Long mId, String beginTime, String endTime) throws Exception { + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + //初始库存 + BigDecimal initStock = materialService.getInitStockByMidAndDepotList(depotList, mId); + //盘点复盘后数量的变动 + BigDecimal stockCheckSum = depotItemMapperEx.getStockCheckSumByDepotList(depotList, mId, forceFlag, beginTime, endTime); + DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParamWithDepotList(depotList, mId, forceFlag, inOutManageFlag, beginTime, endTime); + BigDecimal stockSum = BigDecimal.ZERO; + if(stockObj!=null) { + BigDecimal inTotal = stockObj.getInTotal(); + BigDecimal transfInTotal = stockObj.getTransfInTotal(); + BigDecimal assemInTotal = stockObj.getAssemInTotal(); + BigDecimal disAssemInTotal = stockObj.getDisAssemInTotal(); + BigDecimal outTotal = stockObj.getOutTotal(); + BigDecimal transfOutTotal = stockObj.getTransfOutTotal(); + BigDecimal assemOutTotal = stockObj.getAssemOutTotal(); + BigDecimal disAssemOutTotal = stockObj.getDisAssemOutTotal(); + stockSum = inTotal.add(transfInTotal).add(assemInTotal).add(disAssemInTotal) + .subtract(outTotal).subtract(transfOutTotal).subtract(assemOutTotal).subtract(disAssemOutTotal); + } + return initStock.add(stockCheckSum).add(stockSum); + } + + /** + * 统计时间段内的入库和出库数量-多仓库 + * @param depotList + * @param mId + * @param beginTime + * @param endTime + * @return + */ + public Map getIntervalMapByParamWithDepotList(List depotList, Long mId, String beginTime, String endTime) throws Exception { + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + Map intervalMap = new HashMap<>(); + BigDecimal inSum = BigDecimal.ZERO; + BigDecimal outSum = BigDecimal.ZERO; + //盘点复盘后数量的变动 + BigDecimal stockCheckSum = depotItemMapperEx.getStockCheckSumByDepotList(depotList, mId, forceFlag, beginTime, endTime); + DepotItemVo4Stock stockObj = depotItemMapperEx.getStockByParamWithDepotList(depotList, mId, forceFlag, inOutManageFlag, beginTime, endTime); + if(stockObj!=null) { + BigDecimal inTotal = stockObj.getInTotal(); + BigDecimal transfInTotal = stockObj.getTransfInTotal(); + BigDecimal assemInTotal = stockObj.getAssemInTotal(); + BigDecimal disAssemInTotal = stockObj.getDisAssemInTotal(); + inSum = inTotal.add(transfInTotal).add(assemInTotal).add(disAssemInTotal); + BigDecimal outTotal = stockObj.getOutTotal(); + BigDecimal transfOutTotal = stockObj.getTransfOutTotal(); + BigDecimal assemOutTotal = stockObj.getAssemOutTotal(); + BigDecimal disAssemOutTotal = stockObj.getDisAssemOutTotal(); + outSum = outTotal.add(transfOutTotal).add(assemOutTotal).add(disAssemOutTotal); + } + if(stockCheckSum.compareTo(BigDecimal.ZERO)>0) { + inSum = inSum.add(stockCheckSum); + } else { + //盘点复盘数量为负数代表出库 + outSum = outSum.subtract(stockCheckSum); + } + intervalMap.put("inSum", inSum); + intervalMap.put("outSum", outSum); + return intervalMap; + } + + /** + * 根据单据明细来批量更新当前库存 + * @param depotItem + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateCurrentStock(DepotItem depotItem) throws Exception { + BigDecimal currentUnitPrice = materialCurrentStockMapperEx.getCurrentUnitPriceByMId(depotItem.getMaterialId()); + updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getDepotId(), currentUnitPrice); + if(depotItem.getAnotherDepotId()!=null){ + updateCurrentStockFun(depotItem.getMaterialId(), depotItem.getAnotherDepotId(), currentUnitPrice); + } + } + + public void applyShipmentStockOut(DepotItem depotItem, BigDecimal actualQuantity) throws Exception { + if (depotItem == null || depotItem.getMaterialId() == null || depotItem.getDepotId() == null || actualQuantity == null) { + return; + } + BigDecimal outNumber = actualQuantity; + if (depotItem.getOperNumber() != null && depotItem.getOperNumber().compareTo(BigDecimal.ZERO) != 0 + && depotItem.getBasicNumber() != null) { + outNumber = actualQuantity.multiply(depotItem.getBasicNumber()) + .divide(depotItem.getOperNumber(), 6, BigDecimal.ROUND_HALF_UP); + } + MaterialCurrentStockExample example = new MaterialCurrentStockExample(); + example.createCriteria().andMaterialIdEqualTo(depotItem.getMaterialId()) + .andDepotIdEqualTo(depotItem.getDepotId()) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialCurrentStockMapper.selectByExample(example); + BigDecimal currentUnitPrice = materialCurrentStockMapperEx.getCurrentUnitPriceByMId(depotItem.getMaterialId()); + MaterialCurrentStock stock = new MaterialCurrentStock(); + stock.setMaterialId(depotItem.getMaterialId()); + stock.setDepotId(depotItem.getDepotId()); + stock.setCurrentUnitPrice(currentUnitPrice); + if (list != null && !list.isEmpty()) { + MaterialCurrentStock old = list.get(0); + stock.setId(old.getId()); + BigDecimal currentNumber = old.getCurrentNumber() == null ? BigDecimal.ZERO : old.getCurrentNumber(); + stock.setCurrentNumber(currentNumber.subtract(outNumber)); + materialCurrentStockMapper.updateByPrimaryKeySelective(stock); + } else { + stock.setCurrentNumber(BigDecimal.ZERO.subtract(outNumber)); + materialCurrentStockMapper.insertSelective(stock); + } + } + + /** + * 根据单据明细来批量更新当前成本价 + * @param depotItem + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateCurrentUnitPrice(DepotItem depotItem) throws Exception { + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + //此处给出入库管理的传值默认为false,不然会导致查询不到销售相关的单据 + Boolean inOutManageFlag = false; + //查询多单位信息 + Unit unitInfo = materialService.findUnit(depotItem.getMaterialId()); + List itemList = findDetailByDepotIdsAndMaterialIdList(null, forceFlag, inOutManageFlag, null, + null, null, null, null, depotItem.getMaterialId(), null, null); + Collections.reverse(itemList); //倒序之后变成按时间从前往后排序 + BigDecimal currentNumber = BigDecimal.ZERO; + BigDecimal currentUnitPrice = BigDecimal.ZERO; + BigDecimal currentAllPrice = BigDecimal.ZERO; + for(DepotItemVo4DetailByTypeAndMId item: itemList) { + BigDecimal basicNumber = item.getBnum()!=null?item.getBnum():BigDecimal.ZERO; + //数量*单价 另外计算新的成本价 + BigDecimal allPrice = unitService.parseAllPriceByUnit(item.getAllPrice()!=null?item.getAllPrice():BigDecimal.ZERO, unitInfo, item.getMaterialUnit()); + if(basicNumber.compareTo(BigDecimal.ZERO)!=0 && allPrice.compareTo(BigDecimal.ZERO)!=0) { + //入库 + if (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(item.getType())) { + //零售退货、销售退货 + if (BusinessConstants.SUB_TYPE_RETAIL_RETURN.equals(item.getSubType()) || BusinessConstants.SUB_TYPE_SALES_RETURN.equals(item.getSubType())) { + //数量*当前的成本单价 + currentNumber = currentNumber.add(basicNumber); + currentAllPrice = currentAllPrice.add(basicNumber.multiply(currentUnitPrice)); + } else { + currentAllPrice = currentAllPrice.add(allPrice); + currentNumber = currentNumber.add(basicNumber); + //只有当前库存总金额和当前库存数量都大于0才计算移动平均价 + if (currentAllPrice.compareTo(BigDecimal.ZERO) > 0 && currentNumber.compareTo(BigDecimal.ZERO) > 0) { + currentUnitPrice = currentAllPrice.divide(currentNumber, 4, BigDecimal.ROUND_HALF_UP); + } else { + currentUnitPrice = item.getUnitPrice(); + } + } + } + //出库 + if (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(item.getType())) { + //采购退货 + if (BusinessConstants.SUB_TYPE_PURCHASE_RETURN.equals(item.getSubType())) { + currentAllPrice = currentAllPrice.add(allPrice); + currentNumber = currentNumber.add(basicNumber); + //只有当前库存总金额和当前库存数量都大于0才计算移动平均价 + if (currentAllPrice.compareTo(BigDecimal.ZERO) > 0 && currentNumber.compareTo(BigDecimal.ZERO) > 0) { + currentUnitPrice = currentAllPrice.divide(currentNumber, 4, BigDecimal.ROUND_HALF_UP); + } else { + currentUnitPrice = item.getUnitPrice(); + } + } else { + //数量*当前的成本单价 + currentNumber = currentNumber.add(basicNumber); + currentAllPrice = currentAllPrice.add(basicNumber.multiply(currentUnitPrice)); + } + } + //特殊情况:1-组装单 2-拆卸单 3-盘点复盘 + if(BusinessConstants.SUB_TYPE_ASSEMBLE.equals(item.getSubType())|| + BusinessConstants.SUB_TYPE_DISASSEMBLE.equals(item.getSubType())|| + BusinessConstants.SUB_TYPE_REPLAY.equals(item.getSubType())) { + //数量*当前的成本单价 + currentNumber = currentNumber.add(basicNumber); + currentAllPrice = currentAllPrice.add(basicNumber.multiply(currentUnitPrice)); + } + //防止单价金额溢出 + if(currentUnitPrice.compareTo(BigDecimal.valueOf(100000000))>0 || currentUnitPrice.compareTo(BigDecimal.valueOf(-100000000))<0) { + currentUnitPrice = BigDecimal.ZERO; + } + } + } + //更新实时库存中的当前单价 + materialCurrentStockMapperEx.updateUnitPriceByMId(currentUnitPrice, depotItem.getMaterialId()); + } + + /** + * 根据商品和仓库来更新当前库存 + * @param mId + * @param dId + */ + public void updateCurrentStockFun(Long mId, Long dId, BigDecimal currentUnitPrice) throws Exception { + if(mId!=null && dId!=null) { + MaterialCurrentStockExample example = new MaterialCurrentStockExample(); + example.createCriteria().andMaterialIdEqualTo(mId).andDepotIdEqualTo(dId) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialCurrentStockMapper.selectByExample(example); + MaterialCurrentStock materialCurrentStock = new MaterialCurrentStock(); + materialCurrentStock.setMaterialId(mId); + materialCurrentStock.setDepotId(dId); + materialCurrentStock.setCurrentNumber(getStockByParam(dId,mId,null,null)); + materialCurrentStock.setCurrentUnitPrice(currentUnitPrice); + if(list!=null && list.size()>0) { + Long mcsId = list.get(0).getId(); + materialCurrentStock.setId(mcsId); + materialCurrentStockMapper.updateByPrimaryKeySelective(materialCurrentStock); + } else { + materialCurrentStockMapper.insertSelective(materialCurrentStock); + } + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public BigDecimal getFinishPurchaseNumber(Long meId, Long id, String number, String linkType, String subType) { + BigDecimal count = BigDecimal.ZERO; + // 针对以销定购的情况 + if(BusinessConstants.SUB_TYPE_SALES_ORDER.equals(subType)) { + String goToType = BusinessConstants.SUB_TYPE_PURCHASE_ORDER; + String noType = "normal"; + count = depotItemMapperEx.getFinishNumber(meId, id, number, noType, goToType); + } + return count; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public BigDecimal getFinishNumber(Long meId, Long id, String number, String linkType, String subType) { + String goToType = ""; + if("other".equals(linkType)) { + //采购入库、采购退货、销售出库、销售退货都转其它入库 + if(BusinessConstants.SUB_TYPE_PURCHASE.equals(subType) + || BusinessConstants.SUB_TYPE_PURCHASE_RETURN.equals(subType) + || BusinessConstants.SUB_TYPE_SALES.equals(subType) + || BusinessConstants.SUB_TYPE_SALES_RETURN.equals(subType)) { + goToType = BusinessConstants.SUB_TYPE_OTHER; + } + } else if("basic".equals(linkType)||"purchase".equals(linkType)) { + //采购订单转采购入库 + if(BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(subType)) { + goToType = BusinessConstants.SUB_TYPE_PURCHASE; + } + //销售订单转销售出库 + if(BusinessConstants.SUB_TYPE_SALES_ORDER.equals(subType)) { + goToType = BusinessConstants.SUB_TYPE_SALES; + } + //采购入库转采购退货 + if(BusinessConstants.SUB_TYPE_PURCHASE.equals(subType)) { + goToType = BusinessConstants.SUB_TYPE_PURCHASE_RETURN; + } + //销售出库转销售退货 + if(BusinessConstants.SUB_TYPE_SALES.equals(subType)) { + goToType = BusinessConstants.SUB_TYPE_SALES_RETURN; + } + } + String noType = "normal"; + if(BusinessConstants.SUB_TYPE_PURCHASE_APPLY.equals(subType)) { + noType = "apply"; + } + return depotItemMapperEx.getFinishNumber(meId, id, number, noType, goToType); + } + + /** + * 除去此单据之外的已入库|已出库|已转采购 + * @param currentSubType + * @param meId + * @param linkId + * @param preHeaderId + * @param currentHeaderId + * @param unitInfo + * @param materialUnit + * @return + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public BigDecimal getRealFinishNumber(String currentSubType, Long meId, Long linkId, Long preHeaderId, Long currentHeaderId, Unit unitInfo, String materialUnit) { + String goToType = currentSubType; + DepotHead depotHead =depotHeadMapper.selectByPrimaryKey(preHeaderId); + String linkStr = depotHead.getNumber(); //订单号 + String linkType = "normal"; + if(BusinessConstants.SUB_TYPE_PURCHASE_APPLY.equals(depotHead.getSubType())) { + linkType = "apply"; + } + BigDecimal count = depotItemMapperEx.getRealFinishNumber(meId, linkId, linkStr, linkType, currentHeaderId, goToType); + //根据多单位情况进行数量的转换 + if(materialUnit.equals(unitInfo.getOtherUnit()) && unitInfo.getRatio()!=null && unitInfo.getRatio().compareTo(BigDecimal.ZERO)!=0) { + count = count.divide(unitInfo.getRatio(),2,BigDecimal.ROUND_HALF_UP); + } + if(materialUnit.equals(unitInfo.getOtherUnitTwo()) && unitInfo.getRatioTwo()!=null && unitInfo.getRatioTwo().compareTo(BigDecimal.ZERO)!=0) { + count = count.divide(unitInfo.getRatioTwo(),2,BigDecimal.ROUND_HALF_UP); + } + if(materialUnit.equals(unitInfo.getOtherUnitThree()) && unitInfo.getRatioThree()!=null && unitInfo.getRatioThree().compareTo(BigDecimal.ZERO)!=0) { + count = count.divide(unitInfo.getRatioThree(),2,BigDecimal.ROUND_HALF_UP); + } + return count; + } + + public List getBatchNumberList(String number, String name, Long depotId, String barCode, + String batchNumber, Boolean forceFlag, Boolean inOutManageFlag) throws Exception { + List reslist = new ArrayList<>(); + List list = depotItemMapperEx.getBatchNumberList(StringUtil.toNull(number), name, + depotId, barCode, batchNumber, forceFlag, inOutManageFlag); + for(DepotItemVoBatchNumberList bn: list) { + if(bn.getTotalNum()!=null && bn.getTotalNum().compareTo(BigDecimal.ZERO)>0) { + bn.setExpirationDateStr(Tools.parseDateToStr(bn.getExpirationDate())); + if(bn.getUnitId()!=null) { + Unit unit = unitService.getUnit(bn.getUnitId()); + String commodityUnit = bn.getCommodityUnit(); + bn.setTotalNum(unitService.parseStockByUnit(bn.getTotalNum(), unit, commodityUnit)); + } + reslist.add(bn); + } + } + return reslist; + } + + /** + * 查询某个批号的商品库存 + * @param depotId + * @param barCode + * @param batchNumber + * @return + * @throws Exception + */ + public BigDecimal getOneBatchNumberStock(Long depotId, String barCode, String batchNumber) throws Exception { + BigDecimal totalNum = BigDecimal.ZERO; + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); + Boolean inOutManageFlag = systemConfigService.getInOutManageFlag(); + List list = depotItemMapperEx.getBatchNumberList(null, null, + depotId, barCode, batchNumber, forceFlag, inOutManageFlag); + if(list!=null && list.size()>0) { + DepotItemVoBatchNumberList bn = list.get(0); + totalNum = bn.getTotalNum(); + if(bn.getTotalNum()!=null && bn.getTotalNum().compareTo(BigDecimal.ZERO)>0) { + if(bn.getUnitId()!=null) { + Unit unit = unitService.getUnit(bn.getUnitId()); + String commodityUnit = bn.getCommodityUnit(); + totalNum = unitService.parseStockByUnit(bn.getTotalNum(), unit, commodityUnit); + } + } + } + return totalNum; + } + + public Long getCountByMaterialAndDepot(Long mId, Long depotId) { + return depotItemMapperEx.getCountByMaterialAndDepot(mId, depotId); + } + + public JSONObject parseMapByExcelData(List barCodeList, List> detailList, String prefixNo) throws Exception { + JSONObject map = new JSONObject(); + JSONArray arr = new JSONArray(); + List list = depotItemMapperEx.getBillItemByParam(barCodeList); + Map materialMap = new HashMap<>(); + Map depotMap = new HashMap<>(); + for (MaterialVo4Unit material: list) { + materialMap.put(material.getmBarCode(), material); + } + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for (Object depotObj: depotArr) { + if(depotObj!=null) { + JSONObject depotObject = JSONObject.parseObject(depotObj.toString()); + depotMap.put(depotObject.getString("depotName"), depotObject.getLong("id")); + } + } + for (Map detailMap: detailList) { + JSONObject item = new JSONObject(); + String barCode = detailMap.get("barCode"); + if(StringUtil.isNotEmpty(barCode)) { + MaterialVo4Unit m = materialMap.get(barCode); + if(m!=null) { + //判断仓库是否存在 + String depotName = detailMap.get("depotName"); + if(StringUtil.isNotEmpty(depotName)) { + if(depotMap.get(depotName)!=null) { + item.put("depotName", depotName); + item.put("depotId", depotMap.get(depotName)); + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_DEPOTNAME_IS_NOT_EXIST_CODE, + String.format(ExceptionConstants.DEPOT_ITEM_DEPOTNAME_IS_NOT_EXIST_MSG, depotName)); + } + } + item.put("barCode", barCode); + item.put("name", m.getName()); + item.put("standard", m.getStandard()); + if(StringUtil.isNotEmpty(m.getModel())) { + item.put("model", m.getModel()); + } + if(StringUtil.isNotEmpty(m.getColor())) { + item.put("color", m.getColor()); + } + if(StringUtil.isNotEmpty(m.getSku())) { + item.put("sku", m.getSku()); + } + BigDecimal stock = BigDecimal.ZERO; + if(StringUtil.isNotEmpty(m.getSku())){ + stock = getSkuStockByParam(null, m.getMeId(),null,null); + } else { + stock = getCurrentStockByParam(null, m.getId()); + } + item.put("stock", stock); + item.put("unit", m.getCommodityUnit()); + BigDecimal operNumber = BigDecimal.ZERO; + BigDecimal unitPrice = BigDecimal.ZERO; + BigDecimal taxRate = BigDecimal.ZERO; + if(StringUtil.isNotEmpty(detailMap.get("num"))) { + operNumber = new BigDecimal(detailMap.get("num")); + } + if(StringUtil.isNotEmpty(detailMap.get("unitPrice"))) { + unitPrice = new BigDecimal(detailMap.get("unitPrice")); + } else { + if("CGDD".equals(prefixNo)) { + unitPrice = m.getPurchaseDecimal(); + } else if("XSDD".equals(prefixNo)) { + unitPrice = m.getWholesaleDecimal(); + } + } + if(StringUtil.isNotEmpty(detailMap.get("taxRate"))) { + taxRate = new BigDecimal(detailMap.get("taxRate")); + } + String remark = detailMap.get("remark"); + item.put("operNumber", operNumber); + item.put("unitPrice", unitPrice); + BigDecimal allPrice = BigDecimal.ZERO; + if(unitPrice!=null && unitPrice.compareTo(BigDecimal.ZERO)!=0) { + allPrice = unitPrice.multiply(operNumber).setScale(2, BigDecimal.ROUND_HALF_UP); + } + BigDecimal taxMoney = BigDecimal.ZERO; + BigDecimal taxLastMoney = BigDecimal.ZERO; + if(systemConfigService.getMaterialPriceTaxFlag()) { + //商品价格含税-开启 + if(taxRate.compareTo(BigDecimal.ZERO) != 0) { + BigDecimal taxRatePercent = taxRate.divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP); + taxMoney = allPrice.divide(BigDecimal.ONE.add(taxRatePercent), 2, BigDecimal.ROUND_HALF_UP) + .multiply(taxRatePercent).setScale(2, BigDecimal.ROUND_HALF_UP); + } + taxLastMoney = allPrice; + } else { + if(taxRate.compareTo(BigDecimal.ZERO) != 0) { + taxMoney = taxRate.multiply(allPrice).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP); + } + taxLastMoney = allPrice.add(taxMoney); + } + item.put("allPrice", allPrice); + item.put("taxRate", taxRate); + item.put("taxMoney", taxMoney); + item.put("taxLastMoney", taxLastMoney); + item.put("remark", remark); + arr.add(item); + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_BARCODE_IS_NOT_EXIST_CODE, + String.format(ExceptionConstants.DEPOT_ITEM_BARCODE_IS_NOT_EXIST_MSG, barCode)); + } + } + } + map.put("rows", arr); + return map; + } + + public BigDecimal getLastUnitPriceByParam(Long organId, Long meId, String prefixNo) { + String type = ""; + String subType = ""; + if("XSDD".equals(prefixNo)) { + type = "其它"; + subType = "销售订单"; + } else if("XSCK".equals(prefixNo)) { + type = "出库"; + subType = "销售"; + } else if("XSTH".equals(prefixNo)) { + type = "入库"; + subType = "销售退货"; + } else if("QTCK".equals(prefixNo)) { + type = "出库"; + subType = "其它"; + } + return depotItemMapperEx.getLastUnitPriceByParam(organId, meId, type, subType); + } + + public BigDecimal getCurrentStockByParam(Long depotId, Long mId) { + BigDecimal stock = depotItemMapperEx.getCurrentStockByParam(depotId, mId); + return stock!=null? stock: BigDecimal.ZERO; + } + + /** + * 校验单据中的商品库存是否不足 + * @param number + * @param headerId + * @return + * @throws Exception + */ + public void checkMaterialStock(String number, Long headerId) throws Exception { + List depotItemList = getListByHeaderId(headerId); + for (DepotItem depotItem : depotItemList) { + Material material = materialService.getMaterial(depotItem.getMaterialId()); + MaterialExtend materialExtend = materialExtendService.getMaterialExtend(depotItem.getMaterialExtendId()); + String stockMsg = material.getName() + "-" + materialExtend.getBarCode(); + BigDecimal stock = getCurrentStockByParam(depotItem.getDepotId(),depotItem.getMaterialId()); + if(StringUtil.isNotEmpty(depotItem.getSku())) { + //对于sku商品要换个方式计算库存 + stock = getSkuStockByParam(depotItem.getDepotId(),depotItem.getMaterialExtendId(),null,null); + } + if(StringUtil.isNotEmpty(depotItem.getBatchNumber())) { + //对于批次商品要换个方式计算库存 + stock = getOneBatchNumberStock(depotItem.getDepotId(), materialExtend.getBarCode(), depotItem.getBatchNumber()); + stockMsg += "-批号" + depotItem.getBatchNumber(); + } + BigDecimal thisRealNumber = depotItem.getBasicNumber()==null?BigDecimal.ZERO:depotItem.getBasicNumber(); + if(StringUtil.isNotEmpty(depotItem.getBatchNumber())) { + //对于批次商品,直接使用当前填写的数量 + thisRealNumber = depotItem.getOperNumber()==null?BigDecimal.ZERO:depotItem.getOperNumber(); + } + if(stock.compareTo(thisRealNumber)<0){ + throw new BusinessRunTimeException(ExceptionConstants.BILL_MATERIAL_STOCK_NOT_ENOUGH_CODE, + String.format(ExceptionConstants.BILL_MATERIAL_STOCK_NOT_ENOUGH_MSG, number, stockMsg)); + } + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/DepotService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/DepotService.java new file mode 100644 index 0000000..28422b9 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/DepotService.java @@ -0,0 +1,367 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.*; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class DepotService { + private Logger logger = LoggerFactory.getLogger(DepotService.class); + + @Resource + private DepotMapper depotMapper; + @Resource + private DepotMapperEx depotMapperEx; + @Resource + private UserService userService; + @Resource + private SystemConfigService systemConfigService; + @Resource + private UserBusinessService userBusinessService; + @Resource + private LogService logService; + @Resource + private DepotItemMapperEx depotItemMapperEx; + @Resource + private MaterialInitialStockMapperEx materialInitialStockMapperEx; + @Resource + private MaterialCurrentStockMapperEx materialCurrentStockMapperEx; + + public Depot getDepot(long id)throws Exception { + Depot result=null; + try{ + result=depotMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getDepotListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + DepotExample example = new DepotExample(); + example.createCriteria().andIdIn(idList); + return depotMapper.selectByExample(example); + } + + public List getDepot()throws Exception { + DepotExample example = new DepotExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=depotMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getAllList()throws Exception { + DepotExample example = new DepotExample(); + example.createCriteria().andEnabledEqualTo(true).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id desc"); + List list=null; + try{ + list=depotMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name, Integer type, String remark)throws Exception { + List list=null; + try{ + PageUtils.startPage(); + list=depotMapperEx.selectByConditionDepot(name, type, remark); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertDepot(JSONObject obj, HttpServletRequest request)throws Exception { + Depot depot = JSONObject.parseObject(obj.toJSONString(), Depot.class); + int result=0; + try{ + depot.setType(0); + List depotList = getDepot(); + if(depotList.size() == 0) { + depot.setIsDefault(true); + } else { + depot.setIsDefault(false); + } + depot.setEnabled(true); + result=depotMapper.insertSelective(depot); + //新增仓库时给当前用户自动授权 + Long userId = userService.getUserId(request); + Long depotId = getIdByName(depot.getName()); + String ubKey = "[" + depotId + "]"; + List ubList = userBusinessService.getBasicData(userId.toString(), "UserDepot"); + if(ubList ==null || ubList.size() == 0) { + JSONObject ubObj = new JSONObject(); + ubObj.put("type", "UserDepot"); + ubObj.put("keyId", userId); + ubObj.put("value", ubKey); + userBusinessService.insertUserBusiness(ubObj, request); + } else { + UserBusiness ubInfo = ubList.get(0); + JSONObject ubObj = new JSONObject(); + ubObj.put("id", ubInfo.getId()); + ubObj.put("type", ubInfo.getType()); + ubObj.put("keyId", ubInfo.getKeyId()); + ubObj.put("value", ubInfo.getValue() + ubKey); + userBusinessService.updateUserBusiness(ubObj, request); + } + logService.insertLog("仓库", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(depot.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateDepot(JSONObject obj, HttpServletRequest request) throws Exception{ + Depot depot = JSONObject.parseObject(obj.toJSONString(), Depot.class); + int result=0; + try{ + result= depotMapper.updateByPrimaryKeySelective(depot); + logService.insertLog("仓库", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(depot.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteDepot(Long id, HttpServletRequest request)throws Exception { + return batchDeleteDepotByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDepot(String ids, HttpServletRequest request) throws Exception{ + return batchDeleteDepotByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDepotByIds(String ids)throws Exception { + int result=0; + String [] idArray=ids.split(","); + //校验单据子表 tbl_depot_item + List depotItemList = depotItemMapperEx.getDepotItemListListByDepotIds(idArray); + if(depotItemList!=null&&depotItemList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,DepotIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + try{ + //记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getDepotListByIds(ids); + for(Depot depot: list){ + sb.append("[").append(depot.getName()).append("]"); + } + User userInfo=userService.getCurrentUser(); + //校验通过执行删除操作 + //删除仓库关联的商品的初始库存 + materialInitialStockMapperEx.batchDeleteByDepots(idArray); + //删除仓库关联的商品的当前库存 + materialCurrentStockMapperEx.batchDeleteByDepots(idArray); + //删除仓库 + result = depotMapperEx.batchDeleteDepotByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + //记录日志 + logService.insertLog("仓库", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + DepotExample example = new DepotExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= depotMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public List findUserDepot()throws Exception{ + DepotExample example = new DepotExample(); + example.createCriteria().andTypeEqualTo(0).andEnabledEqualTo(true) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id desc"); + List list=null; + try{ + list= depotMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateIsDefault(Long depotId) throws Exception{ + int result=0; + try{ + //全部取消默认 + Depot allDepot = new Depot(); + allDepot.setIsDefault(false); + DepotExample allExample = new DepotExample(); + allExample.createCriteria(); + depotMapper.updateByExampleSelective(allDepot, allExample); + //给指定仓库设为默认 + Depot depot = new Depot(); + depot.setIsDefault(true); + DepotExample example = new DepotExample(); + example.createCriteria().andIdEqualTo(depotId); + depotMapper.updateByExampleSelective(depot, example); + logService.insertLog("仓库",BusinessConstants.LOG_OPERATION_TYPE_EDIT+depotId, + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + result = 1; + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 根据名称获取id + * @param name + */ + public Long getIdByName(String name){ + Long id = 0L; + DepotExample example = new DepotExample(); + example.createCriteria().andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = depotMapper.selectByExample(example); + if(list!=null && list.size()>0) { + id = list.get(0).getId(); + } + return id; + } + + /** + * 根据单个仓库查询 + * @param depotId + * @return + * @throws Exception + */ + public List parseDepotList(Long depotId) throws Exception { + List depotList = new ArrayList<>(); + if(depotId !=null) { + depotList.add(depotId); + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotList.add(object.getLong("id")); + } + } + return depotList; + } + + /** + * 根据多个仓库查询 + * @param depotIdArr + * @return + * @throws Exception + */ + public List parseDepotListByArr(String[] depotIdArr) throws Exception { + List depotList = new ArrayList<>(); + if(depotIdArr !=null) { + for (int i = 0; i < depotIdArr.length; i++) { + depotList.add(Long.parseLong(depotIdArr[i])); + } + } else { + //未选择仓库时默认为当前用户有权限的仓库 + JSONArray depotArr = findDepotByCurrentUser(); + for(Object obj: depotArr) { + JSONObject object = JSONObject.parseObject(obj.toString()); + depotList.add(object.getLong("id")); + } + } + return depotList; + } + + public JSONArray findDepotByCurrentUser() throws Exception { + JSONArray arr = new JSONArray(); + List dataList = findUserDepot(); + if (null != dataList) { + for (Depot depot : dataList) { + JSONObject item = new JSONObject(); + item.put("id", depot.getId()); + item.put("depotName", depot.getName()); + item.put("isDefault", depot.getIsDefault()); + arr.add(item); + } + } + return arr; + } + + /** + * 当前用户有权限使用的仓库列表的id,用逗号隔开 + * @return + * @throws Exception + */ + public String findDepotStrByCurrentUser() throws Exception { + JSONArray arr = findDepotByCurrentUser(); + StringBuffer sb = new StringBuffer(); + for(Object object: arr) { + JSONObject obj = (JSONObject)object; + sb.append(obj.getLong("id")).append(","); + } + String depotStr = sb.toString(); + if(StringUtil.isNotEmpty(depotStr)){ + depotStr = depotStr.substring(0, depotStr.length()-1); + } + return depotStr; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids)throws Exception { + logService.insertLog("仓库", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ENABLED).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List depotIds = StringUtil.strToLongList(ids); + Depot depot = new Depot(); + depot.setEnabled(status); + DepotExample example = new DepotExample(); + example.createCriteria().andIdIn(depotIds); + int result=0; + try{ + result = depotMapper.updateByExampleSelective(depot, example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/FunctionService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/FunctionService.java new file mode 100644 index 0000000..000e47c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/FunctionService.java @@ -0,0 +1,283 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.FunctionMapper; +import com.reallin.smt.datasource.mappers.FunctionMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.*; + +@Service +public class FunctionService { + private Logger logger = LoggerFactory.getLogger(FunctionService.class); + + @Resource + private FunctionMapper functionsMapper; + + @Resource + private FunctionMapperEx functionMapperEx; + + @Resource + private UserService userService; + + @Resource + private UserBusinessService userBusinessService; + + @Resource + private SystemConfigService systemConfigService; + + @Resource + private LogService logService; + + public Function getFunction(long id)throws Exception { + Function result=null; + try{ + result=functionsMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getFunctionListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + FunctionExample example = new FunctionExample(); + example.createCriteria().andIdIn(idList); + list = functionsMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getFunction()throws Exception { + FunctionExample example = new FunctionExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=functionsMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name, String nameEn, String type)throws Exception { + List list=null; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + PageUtils.startPage(); + list = functionMapperEx.selectByConditionFunction(name, nameEn, type); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertFunction(JSONObject obj, HttpServletRequest request)throws Exception { + Function functions = JSONObject.parseObject(obj.toJSONString(), Function.class); + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + functions.setState(false); + functions.setType("电脑版"); + result = functionsMapper.insertSelective(functions); + logService.insertLog("功能", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(functions.getName()).toString(), request); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateFunction(JSONObject obj, HttpServletRequest request) throws Exception{ + Function functions = JSONObject.parseObject(obj.toJSONString(), Function.class); + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = functionsMapper.updateByPrimaryKeySelective(functions); + logService.insertLog("功能", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(functions.getName()).toString(), request); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteFunction(Long id, HttpServletRequest request)throws Exception { + return batchDeleteFunctionByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteFunction(String ids, HttpServletRequest request)throws Exception { + return batchDeleteFunctionByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteFunctionByIds(String ids)throws Exception { + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getFunctionListByIds(ids); + for(Function functions: list){ + sb.append("[").append(functions.getName()).append("]"); + } + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = functionMapperEx.batchDeleteFunctionByIds(new Date(), userInfo == null ? null : userInfo.getId(), idArray); + logService.insertLog("功能", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + FunctionExample example = new FunctionExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list = functionsMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public int checkIsNumberExist(Long id, String number)throws Exception { + FunctionExample example = new FunctionExample(); + example.createCriteria().andIdNotEqualTo(id).andNumberEqualTo(number).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list = functionsMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public List getRoleFunction(String pNumber)throws Exception { + FunctionExample example = new FunctionExample(); + example.createCriteria().andEnabledEqualTo(true).andParentNumberEqualTo(pNumber) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("Sort"); + List list=null; + try{ + list = functionsMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List findRoleFunction(String pnumber, List funIdList)throws Exception{ + List list=null; + try{ + Boolean multiLevelApprovalFlag = systemConfigService.getMultiLevelApprovalFlag(); + FunctionExample example = new FunctionExample(); + FunctionExample.Criteria criteria = example.createCriteria(); + criteria.andEnabledEqualTo(true).andParentNumberEqualTo(pnumber) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + if("0".equals(pnumber)) { + if(!multiLevelApprovalFlag) { + criteria.andUrlNotEqualTo("/workflow"); + } + } + if(funIdList!=null && funIdList.size()>0) { + criteria.andIdIn(funIdList); + } + example.setOrderByClause("Sort"); + list =functionsMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List findByIds(String functionsIds)throws Exception{ + List idList = StringUtil.strToLongList(functionsIds); + FunctionExample example = new FunctionExample(); + example.createCriteria().andEnabledEqualTo(true).andIdIn(idList).andPushBtnIsNotNull().andPushBtnNotEqualTo("") + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("Sort asc"); + List list=null; + try{ + list =functionsMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + /** + * 获取当前用户所拥有的功能id列表 + * @return + */ + public List getCurrentUserFunIdList() throws Exception { + List funIdList = new ArrayList<>(); + Long roleId = 0L; + String fc = ""; + User userInfo = userService.getCurrentUser(); + //获取当前用户所有的角色id + List roleList = userBusinessService.getBasicData(userInfo.getId().toString(), "UserRole"); + if(roleList!=null && roleList.size()>0){ + String value = roleList.get(0).getValue(); + if(StringUtil.isNotEmpty(value)){ + String roleIdStr = value.replace("[", "").replace("]", ""); + roleId = Long.parseLong(roleIdStr); + } + } + //当前用户所拥有的功能列表,格式如:[1][2][5] + List funList = userBusinessService.getBasicData(roleId.toString(), "RoleFunctions"); + if(funList!=null && funList.size()>0){ + fc = funList.get(0).getValue(); + } + if(StringUtil.isNotEmpty(fc)) { + fc = fc.substring(1, fc.length() - 1); + fc = fc.replace("][",","); + funIdList = StringUtil.strToLongList(fc); + } + return funIdList; + } + + /** + * 获取当前用户所拥有的功能id的map + * @return + */ + public Map getCurrentUserFunIdMap() throws Exception { + Map funIdMap = new HashMap<>(); + List list = getCurrentUserFunIdList(); + if(list.size()>0) { + for(Long funId: list) { + funIdMap.put(funId, funId); + } + return funIdMap; + } else { + return null; + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/InOutItemService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/InOutItemService.java new file mode 100644 index 0000000..00aafdd --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/InOutItemService.java @@ -0,0 +1,245 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.AccountItem; +import com.reallin.smt.datasource.entities.InOutItem; +import com.reallin.smt.datasource.entities.InOutItemExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.AccountItemMapperEx; +import com.reallin.smt.datasource.mappers.InOutItemMapper; +import com.reallin.smt.datasource.mappers.InOutItemMapperEx; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class InOutItemService { + private Logger logger = LoggerFactory.getLogger(InOutItemService.class); + + @Resource + private InOutItemMapper inOutItemMapper; + + @Resource + private InOutItemMapperEx inOutItemMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; + @Resource + private AccountItemMapperEx accountItemMapperEx; + + public InOutItem getInOutItem(long id)throws Exception { + InOutItem result=null; + try{ + result=inOutItemMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getInOutItemListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + InOutItemExample example = new InOutItemExample(); + example.createCriteria().andIdIn(idList); + list = inOutItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getInOutItem()throws Exception { + InOutItemExample example = new InOutItemExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=inOutItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name, String type, String remark)throws Exception { + List list=null; + try{ + PageUtils.startPage(); + list=inOutItemMapperEx.selectByConditionInOutItem(name, type, remark); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertInOutItem(JSONObject obj, HttpServletRequest request)throws Exception { + InOutItem inOutItem = JSONObject.parseObject(obj.toJSONString(), InOutItem.class); + int exist = checkIsNameAndTypeExist(inOutItem.getId(), inOutItem.getName(), inOutItem.getType()); + if(exist>0) { + //存在 + throw new BusinessRunTimeException(ExceptionConstants.IN_OUT_ITEM_NAME_EXIST_FAILED_CODE, + ExceptionConstants.IN_OUT_ITEM_NAME_EXIST_FAILED_MSG); + } + int result=0; + try{ + inOutItem.setEnabled(true); + result=inOutItemMapper.insertSelective(inOutItem); + logService.insertLog("收支项目", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(inOutItem.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateInOutItem(JSONObject obj, HttpServletRequest request)throws Exception { + InOutItem inOutItem = JSONObject.parseObject(obj.toJSONString(), InOutItem.class); + int exist = checkIsNameAndTypeExist(inOutItem.getId(), inOutItem.getName(), inOutItem.getType()); + if(exist>0) { + //存在 + throw new BusinessRunTimeException(ExceptionConstants.IN_OUT_ITEM_NAME_EXIST_FAILED_CODE, + ExceptionConstants.IN_OUT_ITEM_NAME_EXIST_FAILED_MSG); + } + int result=0; + try{ + result=inOutItemMapper.updateByPrimaryKeySelective(inOutItem); + logService.insertLog("收支项目", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(inOutItem.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteInOutItem(Long id, HttpServletRequest request)throws Exception { + return batchDeleteInOutItemByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteInOutItem(String ids, HttpServletRequest request)throws Exception { + return batchDeleteInOutItemByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteInOutItemByIds(String ids)throws Exception { + int result = 0; + String [] idArray=ids.split(","); + //校验财务子表 tbl_accountitem + List accountItemList=null; + try{ + accountItemList=accountItemMapperEx.getAccountItemListByInOutItemIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(accountItemList!=null&&accountItemList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,InOutItemIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //校验通过执行删除操作 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getInOutItemListByIds(ids); + for(InOutItem inOutItem: list){ + sb.append("[").append(inOutItem.getName()).append("]"); + } + logService.insertLog("收支项目", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + try{ + result=inOutItemMapperEx.batchDeleteInOutItemByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public int checkIsNameAndTypeExist(Long id, String name, String type)throws Exception { + id = id==null?0L:id; + InOutItemExample example = new InOutItemExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andTypeEqualTo(type).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = null; + try{ + list=inOutItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + + return list==null?0:list.size(); + } + + public int checkIsNameExist(Long id, String name)throws Exception { + InOutItemExample example = new InOutItemExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = null; + try{ + list=inOutItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + + return list==null?0:list.size(); + } + + public List findBySelect(String type)throws Exception { + InOutItemExample example = new InOutItemExample(); + if (type.equals("in")) { + example.createCriteria().andTypeEqualTo("收入").andEnabledEqualTo(true) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } else if (type.equals("out")) { + example.createCriteria().andTypeEqualTo("支出").andEnabledEqualTo(true) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } else { + example.createCriteria().andEnabledEqualTo(true) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } + example.setOrderByClause("sort asc, id desc"); + List list = null; + try{ + list=inOutItemMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids)throws Exception { + logService.insertLog("收支项目", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ENABLED).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List inOutItemIds = StringUtil.strToLongList(ids); + InOutItem inOutItem = new InOutItem(); + inOutItem.setEnabled(status); + InOutItemExample example = new InOutItemExample(); + example.createCriteria().andIdIn(inOutItemIds); + int result=0; + try{ + result = inOutItemMapper.updateByExampleSelective(inOutItem, example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/LegacyInventoryAuthService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/LegacyInventoryAuthService.java new file mode 100644 index 0000000..9790b58 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/LegacyInventoryAuthService.java @@ -0,0 +1,49 @@ +package com.reallin.smt.service; + +import com.reallin.smt.exception.LegacyInventoryBusinessException; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.UUID; + +/** Scoped tokens cannot be used as ERP sessions or renewed indefinitely. */ +@Service +public class LegacyInventoryAuthService { + public static final String HEADER = "X-Inventory-Token"; + private static final String PREFIX = "inventory:token:"; + + @Resource + private RedisService redisService; + @Value("${security.inventory.token-ttl-seconds:3600}") + private long tokenTtlSeconds; + + public String issueToken(Object userId) { + String token = UUID.randomUUID().toString().replace("-", ""); + redisService.storageKeyWithTime(PREFIX + token, userId.toString(), Math.max(60L, tokenTtlSeconds)); + return token; + } + + public Object authenticatedUser(HttpServletRequest request) { + String token = request.getHeader(HEADER); + if (token != null) { + if (!token.matches("[a-f0-9]{32}")) return null; + return redisService.getCacheObject(PREFIX + token); + } + return redisService.getObjectFromSessionByKey(request, "userId"); + } + + public long requireCurrentUserId() { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + Object userId = attributes == null ? null : authenticatedUser(attributes.getRequest()); + if (userId == null) throw new LegacyInventoryBusinessException("登录已过期,请重新登录"); + try { + return Long.parseLong(userId.toString()); + } catch (NumberFormatException e) { + throw new LegacyInventoryBusinessException("登录身份无效,请重新登录"); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/LegacyInventoryService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/LegacyInventoryService.java new file mode 100644 index 0000000..47ace5b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/LegacyInventoryService.java @@ -0,0 +1,407 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.exception.LegacyInventoryBusinessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.DigestUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * 原 n2tpm 盘点接口协议适配服务。 + */ +@Service +public class LegacyInventoryService { + private static final String STATUS_DRAFT = "DRAFT"; + private static final String STATUS_ACCEPTED = "ACCEPTED"; + private static final String STATUS_IN_PROGRESS = "IN_PROGRESS"; + private static final String STATUS_PENDING_AUDIT = "PENDING_AUDIT"; + private static final String STATUS_COMPLETED = "COMPLETED"; + private static final String STATUS_CLOSED = "CLOSED"; + + @Resource + private JdbcTemplate jdbcTemplate; + @Resource + private SystemConfigService systemConfigService; + @Resource + private LegacyInventoryAuthService legacyInventoryAuthService; + @Resource + private LoginAttemptService loginAttemptService; + + public Object login(JSONObject input) { + String loginName = required(input, "USER_NAME"); + String password = required(input, "PASSWORD"); + if (loginAttemptService.getRemainingDelaySeconds(loginName) > 0) { + throw new LegacyInventoryBusinessException("登录尝试过于频繁,请稍后重试"); + } + List> users = jdbcTemplate.queryForList( + "SELECT id, username, login_name, password FROM tbl_user " + + "WHERE login_name=? AND IFNULL(delete_flag,'0')!='1' AND IFNULL(status,0)=0 " + + "ORDER BY id LIMIT 1", loginName); + if (users.isEmpty()) throw new LegacyInventoryBusinessException("用户名错误"); + Map user = users.get(0); + String storedPassword = string(user.get("password")); + String encrypted = DigestUtils.md5DigestAsHex(password.getBytes(java.nio.charset.StandardCharsets.UTF_8)); + Map result = new LinkedHashMap<>(); + if (storedPassword != null && storedPassword.equalsIgnoreCase(encrypted)) { + loginAttemptService.clear(loginName); + result.put("TOKEN", legacyInventoryAuthService.issueToken(user.get("id"))); + result.put("USER_ID", string(user.get("id"))); + result.put("DATA_AUTH", string(user.get("id"))); + result.put("RESULT", "true"); + } else { + loginAttemptService.recordPasswordFailure(loginName); + result.put("USER_ID", ""); + result.put("DATA_AUTH", ""); + result.put("RESULT", "false"); + } + return result; + } + + public Object getInventory(JSONObject input) { + required(input, "DATA_AUTH"); + long userId = longValue(required(input, "USER_ID"), "USER_ID"); + requireUser(userId); + String baseSql = "SELECT * FROM tbl_asset_inventory WHERE " + + "IFNULL(delete_flag,'0')!='1' AND status NOT IN (?,?)"; + List> rows = jdbcTemplate.queryForList(baseSql + + " AND inventory_user_id=? ORDER BY id DESC", + STATUS_PENDING_AUDIT, STATUS_CLOSED, userId); + List> result = new ArrayList<>(); + for (Map row : rows) result.add(toLegacyInventory(row)); + return result; + } + + public Object getInventoryDetail(JSONObject input) { + String dataAuth = required(input, "DATA_AUTH"); + String inventoryNo = required(input, "INVENTORY_DOC"); + Map inventory = requireInventory(inventoryNo); + long inventoryId = longValue(inventory.get("id"), "盘点单ID"); + List> rows = jdbcTemplate.queryForList( + "SELECT d.*, dev.location setup_location, dev.status device_status, " + + "COALESCE(u.username,d.inventory_user_name) operator_name " + + "FROM tbl_asset_inventory_detail d " + + "LEFT JOIN tbl_asset_device dev ON d.target_type='DEVICE' AND dev.id=d.target_id " + + "LEFT JOIN tbl_user u ON u.id=d.inventory_user_id " + + "WHERE d.inventory_id=? ORDER BY d.inventory_status='PENDING' DESC,d.id", + inventoryId); + List> result = new ArrayList<>(); + for (Map row : rows) result.add(toLegacyDetail(row, inventoryNo, dataAuth)); + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Object saveDeviceInventoryInfo(JSONObject input) { + JSONArray data = input == null ? null : input.getJSONArray("DATA"); + if (data == null || data.isEmpty()) throw new LegacyInventoryBusinessException("DATA不能为空"); + for (int index = 0; index < data.size(); index++) { + JSONObject item = data.getJSONObject(index); + required(item, "DATA_AUTH"); + long userId = longValue(required(item, "USER_ID"), "USER_ID"); + requireUser(userId); + String inventoryNo = required(item, "INVENTORY_DOC"); + String deviceSn = required(item, "DEVICE_SN"); + String usePlace = optional(item, "USE_PLACE"); + String remark = optional(item, "REMARK"); + Date inventoryTime = new Date(longValue(required(item, "INVENTORY_TIME"), "INVENTORY_TIME")); + + Map inventory = requireInventory(inventoryNo); + String status = string(inventory.get("status")); + if (!STATUS_ACCEPTED.equals(status) && !STATUS_IN_PROGRESS.equals(status)) { + throw new LegacyInventoryBusinessException("该订单状态不允许盘点"); + } + long inventoryId = longValue(inventory.get("id"), "盘点单ID"); + List> details = jdbcTemplate.queryForList( + "SELECT * FROM tbl_asset_inventory_detail WHERE inventory_id=? AND target_code=? LIMIT 1", + inventoryId, deviceSn); + if (details.isEmpty()) throw new LegacyInventoryBusinessException("盘点明细不存在"); + Map detail = details.get(0); + if (!"PENDING".equals(string(detail.get("inventory_status")))) { + throw new LegacyInventoryBusinessException("NG:该设备已被盘点,不可重复盘点"); + } + String operatorName = string(requireUser(userId).get("username")); + jdbcTemplate.update("UPDATE tbl_asset_inventory_detail SET actual_quantity=book_quantity, " + + "inventory_status='INVENTORIED', actual_location=?, inventory_time=?, inventory_user_id=?, " + + "inventory_user_name=?, remark=?, update_time=NOW() WHERE id=? AND inventory_id=?", + usePlace, new Timestamp(inventoryTime.getTime()), userId, operatorName, remark, + detail.get("id"), inventoryId); + if ("DEVICE".equals(string(detail.get("target_type")))) { + jdbcTemplate.update("UPDATE tbl_asset_device SET last_inventory_time=?, update_time=NOW() " + + "WHERE id=?", new Timestamp(inventoryTime.getTime()), + detail.get("target_id")); + } + Map counts = jdbcTemplate.queryForMap( + "SELECT COUNT(1) total_count, SUM(CASE WHEN inventory_status!='PENDING' THEN 1 ELSE 0 END) inventoried_count, " + + "SUM(CASE WHEN inventory_status='NORMAL' THEN 1 ELSE 0 END) normal_count, " + + "SUM(CASE WHEN inventory_status IN ('SURPLUS','SHORTAGE','ABNORMAL') THEN 1 ELSE 0 END) abnormal_count " + + "FROM tbl_asset_inventory_detail WHERE inventory_id=?", inventoryId); + int total = number(counts.get("total_count")); + int inventoried = number(counts.get("inventoried_count")); + String nextStatus = total == inventoried ? STATUS_COMPLETED : STATUS_IN_PROGRESS; + jdbcTemplate.update("UPDATE tbl_asset_inventory SET status=?, total_count=?, inventoried_count=?, " + + "normal_count=?, abnormal_count=?, started_at=COALESCE(started_at,?), " + + "completed_at=CASE WHEN ?=? THEN ? ELSE completed_at END, updater=?, update_time=NOW() " + + "WHERE id=?", + nextStatus, total, inventoried, number(counts.get("normal_count")), + number(counts.get("abnormal_count")), new Timestamp(inventoryTime.getTime()), + total, inventoried, new Timestamp(inventoryTime.getTime()), userId, inventoryId); + insertOperation(inventoryId, "4", userId, inventoryTime, "盘点设备:" + deviceSn); + } + return "OK"; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Object acceptInventory(JSONObject input) { + required(input, "DATA_AUTH"); + long userId = longValue(required(input, "USER_ID"), "USER_ID"); + requireUser(userId); + String inventoryNo = required(input, "INVENTORY_DOC"); + Map inventory = requireInventory(inventoryNo); + if (!STATUS_DRAFT.equals(string(inventory.get("status")))) { + throw new LegacyInventoryBusinessException("待接单才允许接单"); + } + long inventoryId = longValue(inventory.get("id"), "盘点单ID"); + jdbcTemplate.update("UPDATE tbl_asset_inventory SET status=?, updater=?, update_time=NOW() " + + "WHERE id=?", STATUS_ACCEPTED, userId, inventoryId); + insertOperation(inventoryId, "2", userId, new Date(), "接收盘点单"); + return "OK"; + } + + public Object getDevice(JSONObject input) { + requireUser(legacyInventoryAuthService.requireCurrentUserId()); + List> rows = jdbcTemplate.queryForList( + "SELECT * FROM tbl_asset_device WHERE IFNULL(delete_flag,'0')!='1' ORDER BY id DESC"); + List> result = new ArrayList<>(); + for (Map row : rows) { + Map item = new LinkedHashMap<>(); + item.put("DEVICE_SN", string(row.get("device_code"))); + item.put("MEMO", string(row.get("remark"))); + item.put("SETUP_LOCATION", string(row.get("location"))); + item.put("DEVICE_TYPE", string(row.get("device_category"))); + item.put("DEVICE_NAME", string(row.get("device_name"))); + item.put("DEVICE_STATUS", legacyDeviceStatus(string(row.get("status")))); + item.put("DEPT_NAME", string(row.get("use_department"))); + item.put("CHARGE_MAN", string(row.get("keeper"))); + item.put("DEVICE_MODEL", string(row.get("model"))); + item.put("DEVICE_GENRE", string(row.get("device_category"))); + item.put("USER_ID", ""); + result.add(item); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Object uploadPicture(String userIdText, String dataAuth, String inventoryNo, String deviceSn, + List files, HttpServletRequest request) throws Exception { + if (blank(dataAuth)) throw new LegacyInventoryBusinessException("DATA_AUTH不能为空"); + long userId = longValue(userIdText, "USER_ID"); + requireUser(userId); + Map inventory = requireInventory(inventoryNo); + long inventoryId = longValue(inventory.get("id"), "盘点单ID"); + List> details = jdbcTemplate.queryForList( + "SELECT * FROM tbl_asset_inventory_detail WHERE inventory_id=? AND target_code=? LIMIT 1", + inventoryId, deviceSn); + if (details.isEmpty()) throw new LegacyInventoryBusinessException("盘点明细不存在"); + Map detail = details.get(0); + long detailId = longValue(detail.get("id"), "盘点明细ID"); + String groupId = string(detail.get("image_group_id")); + if (blank(groupId)) { + groupId = UUID.randomUUID().toString().replace("-", ""); + jdbcTemplate.update("UPDATE tbl_asset_inventory_detail SET image_group_id=?, update_time=NOW() " + + "WHERE id=?", groupId, detailId); + } + for (MultipartFile file : files == null ? Collections.emptyList() : files) { + if (file == null || file.isEmpty()) continue; + String path = systemConfigService.uploadLocal(file, "asset-inventory", request); + if (blank(path)) throw new LegacyInventoryBusinessException("图片上传失败"); + jdbcTemplate.update("INSERT INTO tbl_asset_inventory_file " + + "(group_id,inventory_detail_id,original_name,file_path,content_type,file_size,creator,create_time) " + + "VALUES (?,?,?,?,?,?,?,NOW())", groupId, detailId, file.getOriginalFilename(), path, + file.getContentType(), file.getSize(), userId); + } + List> storedFiles = jdbcTemplate.queryForList( + "SELECT file_path FROM tbl_asset_inventory_file WHERE group_id=? AND inventory_detail_id=? " + + "ORDER BY id", groupId, detailId); + List urls = new ArrayList<>(); + String baseUrl = request.getScheme() + "://" + request.getServerName() + + ((request.getScheme().equals("http") && request.getServerPort() == 80) || + (request.getScheme().equals("https") && request.getServerPort() == 443) + ? "" : ":" + request.getServerPort()) + request.getContextPath() + "/systemConfig/static/"; + for (Map file : storedFiles) urls.add(baseUrl + string(file.get("file_path"))); + return urls; + } + + private Map toLegacyInventory(Map row) { + Map item = new LinkedHashMap<>(); + item.put("ID", string(row.get("id"))); + item.put("INVENTORY_DOC", string(row.get("inventory_no"))); + item.put("DEPT_ID", null); + item.put("CREATE_USER", string(row.get("creator"))); + item.put("CREATE_TIME", row.get("create_time")); + item.put("EDIT_USER", string(row.get("updater"))); + item.put("EDIT_TIME", row.get("update_time")); + item.put("DATA_AUTH", string(row.get("inventory_user_id"))); + item.put("PLAN_NAME", string(row.get("plan_name"))); + item.put("STATUS", legacyInventoryStatus(string(row.get("status")))); + item.put("DEVICE_COUNT", row.get("total_count")); + item.put("INVENTORY_COUNT", row.get("inventoried_count")); + item.put("INVENTORY_CYCLE", null); + item.put("INVENTORY_USER", string(row.get("inventory_user_id"))); + item.put("INVENTORY_TYPE", string(row.get("scope_type"))); + item.put("LAST_INVENTORY_TIME", null); + item.put("INVENTORY_BEGINTIME", row.get("planned_at")); + item.put("INVENTORY_ENDTIME", row.get("deadline")); + item.put("INVENTORY_THISTIME", row.get("started_at")); + item.put("INVENTORY_TIME", row.get("planned_at")); + item.put("DATA_VERSION", 0L); + item.put("INVENTORY_THISENDTIME", row.get("completed_at")); + item.put("CHECK_EMP", string(row.get("audit_user_id"))); + item.put("CHECK_TIME", row.get("audit_time")); + item.put("INVENTORY_DOC_TYPE", "1"); + item.put("REMARK", string(row.get("remark"))); + item.put("INVENTORY_USER_NAME", string(row.get("inventory_user_name"))); + return item; + } + + private Map toLegacyDetail(Map row, String inventoryNo, String dataAuth) { + Map item = new LinkedHashMap<>(); + item.put("ID", string(row.get("id"))); + item.put("DEPT_ID", null); + item.put("CREATE_USER", null); + item.put("CREATE_TIME", row.get("create_time")); + item.put("EDIT_USER", null); + item.put("EDIT_TIME", row.get("update_time")); + item.put("DATA_AUTH", dataAuth); + item.put("DEVICE_NAME", string(row.get("target_name"))); + item.put("DEVICE_MODEL", string(row.get("model"))); + item.put("DEVICE_TYPE", string(row.get("target_type"))); + item.put("INVENTORY_STATUS", "PENDING".equals(string(row.get("inventory_status"))) ? "2" : "1"); + item.put("INVENTORY_ID", string(row.get("inventory_id"))); + item.put("INVENTORY_USER", string(row.get("inventory_user_id"))); + item.put("INVENTORY_TIME", row.get("inventory_time")); + item.put("REMARK", string(row.get("remark"))); + item.put("USE_DEPT", firstNotBlank(string(row.get("actual_department")), string(row.get("book_department")))); + item.put("USE_PLACE", firstNotBlank(string(row.get("actual_location")), string(row.get("book_location")))); + item.put("DEVICE_ID", string(row.get("target_id"))); + item.put("DEVICE_SN", string(row.get("target_code"))); + item.put("QUANTITY", row.get("book_quantity")); + item.put("DATA_VERSION", 0L); + item.put("USE_IMAGE", string(row.get("image_group_id"))); + item.put("SETUP_LOCATION", firstNotBlank(string(row.get("setup_location")), string(row.get("book_location")))); + item.put("DEVICE_STATUS_NAME", deviceStatusName(string(row.get("device_status")))); + item.put("INVENTORY_USER_NAME", string(row.get("operator_name"))); + item.put("INVENTORY_DOC", inventoryNo); + return item; + } + + private Map requireInventory(String inventoryNo) { + if (blank(inventoryNo)) throw new LegacyInventoryBusinessException("INVENTORY_DOC不能为空"); + List> rows = jdbcTemplate.queryForList( + "SELECT * FROM tbl_asset_inventory WHERE inventory_no=? " + + "AND IFNULL(delete_flag,'0')!='1' LIMIT 1", inventoryNo); + if (rows.isEmpty()) throw new LegacyInventoryBusinessException("盘点单不存在"); + long userId = legacyInventoryAuthService.requireCurrentUserId(); + requireUser(userId); + Object inventoryUserId = rows.get(0).get("inventory_user_id"); + if (inventoryUserId == null || longValue(inventoryUserId, "盘点人ID") != userId) { + throw new LegacyInventoryBusinessException("无权操作他人的盘点单"); + } + return rows.get(0); + } + + private Map requireUser(long userId) { + if (userId != legacyInventoryAuthService.requireCurrentUserId()) { + throw new LegacyInventoryBusinessException("USER_ID与登录身份不一致"); + } + List> rows = jdbcTemplate.queryForList( + "SELECT id,username,login_name,department,isystem FROM tbl_user WHERE id=? " + + "AND IFNULL(delete_flag,'0')!='1' AND IFNULL(status,0)=0 LIMIT 1", userId); + if (rows.isEmpty()) throw new LegacyInventoryBusinessException("用户不存在"); + return rows.get(0); + } + + private void insertOperation(long inventoryId, String operateType, long userId, + Date operateTime, String remark) { + jdbcTemplate.update("INSERT INTO tbl_asset_inventory_operation " + + "(inventory_id,operate_type,operator_user_id,operate_time,remark) VALUES (?,?,?,?,?)", + inventoryId, operateType, userId, new Timestamp(operateTime.getTime()), remark); + } + + private String required(JSONObject input, String key) { + String value = input == null ? null : input.getString(key); + if (blank(value)) throw new LegacyInventoryBusinessException(key + "不能为空"); + return value.trim(); + } + + private String optional(JSONObject input, String key) { + if (input == null || input.get(key) == null) return ""; + return input.getString(key); + } + + private long longValue(Object value, String fieldName) { + try { + return Long.parseLong(string(value)); + } catch (Exception e) { + throw new LegacyInventoryBusinessException(fieldName + "格式错误"); + } + } + + private int number(Object value) { + if (value == null) return 0; + if (value instanceof Number) return ((Number) value).intValue(); + return new BigDecimal(value.toString()).intValue(); + } + + private String string(Object value) { + return value == null ? null : String.valueOf(value); + } + + private boolean blank(String value) { + return value == null || value.trim().isEmpty(); + } + + private String firstNotBlank(String first, String second) { + return blank(first) ? second : first; + } + + private String legacyInventoryStatus(String status) { + if (STATUS_DRAFT.equals(status)) return "1"; + if (STATUS_ACCEPTED.equals(status)) return "2"; + if (STATUS_IN_PROGRESS.equals(status)) return "3"; + if (STATUS_PENDING_AUDIT.equals(status)) return "4"; + if (STATUS_COMPLETED.equals(status)) return "5"; + if (STATUS_CLOSED.equals(status)) return "6"; + return status; + } + + private String legacyDeviceStatus(String status) { + if ("IDLE".equals(status)) return "0"; + if ("IN_USE".equals(status)) return "1"; + if ("REPAIR".equals(status) || "STOPPED".equals(status)) return "2"; + if ("SCRAPPED".equals(status)) return "3"; + return status; + } + + private String deviceStatusName(String status) { + if ("IDLE".equals(status)) return "闲置"; + if ("IN_USE".equals(status)) return "在用"; + if ("REPAIR".equals(status)) return "维修中"; + if ("STOPPED".equals(status)) return "停用"; + if ("SCRAPPED".equals(status)) return "已报废"; + return blank(status) ? " " : status; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/LogService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/LogService.java new file mode 100644 index 0000000..4fa857b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/LogService.java @@ -0,0 +1,184 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.Log; +import com.reallin.smt.datasource.entities.LogExample; +import com.reallin.smt.datasource.mappers.LogMapper; +import com.reallin.smt.datasource.mappers.LogMapperEx; +import com.reallin.smt.datasource.vo.LogVo4List; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import com.reallin.smt.utils.Tools; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; + +import static com.reallin.smt.utils.Tools.getLocalIp; + +@Service +public class LogService { + private Logger logger = LoggerFactory.getLogger(LogService.class); + @Resource + private LogMapper logMapper; + + @Resource + private LogMapperEx logMapperEx; + + @Resource + private UserService userService; + + @Resource + private RedisService redisService; + + public Log getLog(long id)throws Exception { + Log result=null; + try{ + result=logMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getLog()throws Exception { + LogExample example = new LogExample(); + List list=null; + try{ + list=logMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String operation, String userInfo, String clientIp, String tenantLoginName, String tenantType, + String beginTime, String endTime, String content)throws Exception { + List list=null; + try{ + beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); + endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); + PageUtils.startPage(); + list=logMapperEx.selectByConditionLog(operation, userInfo, clientIp, tenantLoginName, tenantType, beginTime, endTime, + content); + if (null != list) { + for (LogVo4List log : list) { + log.setCreateTimeStr(Tools.getCenternTime(log.getCreateTime())); + } + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertLog(JSONObject obj, HttpServletRequest request) throws Exception{ + Log log = JSONObject.parseObject(obj.toJSONString(), Log.class); + int result=0; + try{ + result=logMapper.insertSelective(log); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateLog(JSONObject obj, HttpServletRequest request)throws Exception { + Log log = JSONObject.parseObject(obj.toJSONString(), Log.class); + int result=0; + try{ + result=logMapper.updateByPrimaryKeySelective(log); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteLog(Long id, HttpServletRequest request)throws Exception { + int result=0; + try{ + result=logMapper.deleteByPrimaryKey(id); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteLog(String ids, HttpServletRequest request)throws Exception { + List idList = StringUtil.strToLongList(ids); + LogExample example = new LogExample(); + example.createCriteria().andIdIn(idList); + int result=0; + try{ + result=logMapper.deleteByExample(example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public void insertLog(String moduleName, String content, HttpServletRequest request)throws Exception{ + try{ + Long userId = userService.getUserId(request); + if(userId!=null) { + String clientIp = getLocalIp(request); + String createTime = Tools.getNow3(); + Long count = logMapperEx.getCountByIpAndDate(userId, moduleName, clientIp, createTime); + if(count > 0) { + //如果某个用户某个IP在同1秒内连续操作两遍,此时需要删除该redis记录,使其退出,防止恶意攻击 + redisService.deleteObjectByUserAndIp(userId, clientIp); + } else { + Log log = new Log(); + log.setUserId(userId); + log.setOperation(moduleName); + log.setClientIp(getLocalIp(request)); + log.setCreateTime(new Date()); + Byte status = 0; + log.setStatus(status); + log.setContent(content); + logMapper.insertSelective(log); + } + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + } + + /** 保存接口切面采集的请求日志,日志写入失败不得影响业务请求。 */ + public void insertApiLog(Log log) { + try { + logMapper.insertSelective(log); + } catch (Exception e) { + logger.warn("保存接口请求日志失败: {}", log.getRequestUrl(), e); + } + } + + public void insertLogWithUserId(Long userId, Long tenantId, String moduleName, String content, HttpServletRequest request)throws Exception{ + try{ + if(userId!=null) { + Log log = new Log(); + log.setUserId(userId); + log.setOperation(moduleName); + log.setClientIp(getLocalIp(request)); + log.setCreateTime(new Date()); + Byte status = 0; + log.setStatus(status); + log.setContent(content); + logMapperEx.insertLogWithUserId(log); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/LoginAttemptService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/LoginAttemptService.java new file mode 100644 index 0000000..0a5d93e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/LoginAttemptService.java @@ -0,0 +1,106 @@ +package com.reallin.smt.service; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Locale; +import java.util.concurrent.TimeUnit; + +/** + * 按登录账号记录连续密码错误,并执行递增等待。 + */ +@Service +public class LoginAttemptService { + + private static final String FAILURE_KEY_PREFIX = "login:failure:"; + private static final String LOCK_KEY_PREFIX = "login:lock:"; + + @Resource + private RedisService redisService; + + @Value("${login.security.failure-window-seconds:600}") + private long failureWindowSeconds; + + @Value("${login.security.max-failures-before-delay:3}") + private long maxFailuresBeforeDelay; + + @Value("${login.security.base-delay-seconds:30}") + private long baseDelaySeconds; + + @Value("${login.security.max-delay-seconds:1800}") + private long maxDelaySeconds; + + /** + * 返回账号当前还需等待的秒数;未锁定时返回 0。 + */ + public long getRemainingDelaySeconds(String loginName) { + Long seconds = redisService.getExpire(lockKey(loginName), TimeUnit.SECONDS); + return seconds == null || seconds < 0 ? 0 : seconds; + } + + /** + * 记录一次密码错误,达到阈值后返回本次等待秒数。 + */ + public long recordPasswordFailure(String loginName) { + Long failures = redisService.incrementCacheObject( + failureKey(loginName), failureWindowSeconds, TimeUnit.SECONDS); + long failureCount = failures == null ? 1 : failures; + long delaySeconds = calculateDelaySeconds(failureCount); + if (delaySeconds > 0) { + redisService.storageKeyWithTime(lockKey(loginName), "1", delaySeconds); + // 等待结束后仍保留一个失败统计窗口,使再次输错可以继续增加等待时间。 + redisService.expire(failureKey(loginName), delaySeconds + failureWindowSeconds, TimeUnit.SECONDS); + } + return delaySeconds; + } + + /** + * 登录成功后清除该账号的错误记录和等待状态。 + */ + public void clear(String loginName) { + redisService.deleteObject(failureKey(loginName)); + redisService.deleteObject(lockKey(loginName)); + } + + long calculateDelaySeconds(long failureCount) { + long threshold = Math.max(1, maxFailuresBeforeDelay); + long baseDelay = Math.max(1, baseDelaySeconds); + long maximumDelay = Math.max(baseDelay, maxDelaySeconds); + if (failureCount < threshold) { + return 0; + } + long exponent = Math.min(failureCount - threshold, 30); + long multiplier = 1L << exponent; + if (baseDelay > maximumDelay / multiplier) { + return maximumDelay; + } + return Math.min(baseDelay * multiplier, maximumDelay); + } + + private String failureKey(String loginName) { + return FAILURE_KEY_PREFIX + accountKey(loginName); + } + + private String lockKey(String loginName) { + return LOCK_KEY_PREFIX + accountKey(loginName); + } + + private String accountKey(String loginName) { + String normalized = loginName == null ? "" : loginName.trim().toLowerCase(Locale.ROOT); + try { + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] bytes = digest.digest(normalized.getBytes(StandardCharsets.UTF_8)); + StringBuilder result = new StringBuilder(bytes.length * 2); + for (byte value : bytes) { + result.append(String.format("%02x", value & 0xff)); + } + return result.toString(); + } catch (NoSuchAlgorithmException e) { + throw new IllegalStateException("SHA-256 algorithm is unavailable", e); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialAttributeService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialAttributeService.java new file mode 100644 index 0000000..b41f6f5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialAttributeService.java @@ -0,0 +1,164 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.MaterialAttribute; +import com.reallin.smt.datasource.entities.MaterialAttributeExample; +import com.reallin.smt.datasource.mappers.MaterialAttributeMapper; +import com.reallin.smt.datasource.mappers.MaterialAttributeMapperEx; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; + +@Service +public class MaterialAttributeService { + private Logger logger = LoggerFactory.getLogger(MaterialAttributeService.class); + + @Resource + private LogService logService; + + @Resource + private MaterialAttributeMapper materialAttributeMapper; + + @Resource + private MaterialAttributeMapperEx materialAttributeMapperEx; + + public MaterialAttribute getMaterialAttribute(long id)throws Exception { + MaterialAttribute result=null; + try{ + result=materialAttributeMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getMaterialAttribute() throws Exception{ + MaterialAttributeExample example = new MaterialAttributeExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("id desc"); + List list=null; + try{ + list=materialAttributeMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String attributeName, String attributeValue) throws Exception{ + List list = new ArrayList<>(); + try{ + PageUtils.startPage(); + list = materialAttributeMapperEx.selectByConditionMaterialAttribute(attributeName, attributeValue); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertMaterialAttribute(JSONObject obj, HttpServletRequest request)throws Exception { + MaterialAttribute m = JSONObject.parseObject(obj.toJSONString(), MaterialAttribute.class); + try{ + materialAttributeMapper.insertSelective(m); + logService.insertLog("商品属性", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(m.getAttributeName()).toString(), request); + return 1; + } + catch (BusinessRunTimeException ex) { + throw new BusinessRunTimeException(ex.getCode(), ex.getMessage()); + } + catch(Exception e){ + JshException.writeFail(logger, e); + return 0; + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateMaterialAttribute(JSONObject obj, HttpServletRequest request) throws Exception{ + MaterialAttribute materialAttribute = JSONObject.parseObject(obj.toJSONString(), MaterialAttribute.class); + try{ + materialAttributeMapper.updateByPrimaryKeySelective(materialAttribute); + logService.insertLog("商品属性", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(materialAttribute.getAttributeName()).toString(), request); + return 1; + }catch(Exception e){ + JshException.writeFail(logger, e); + return 0; + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteMaterialAttribute(Long id, HttpServletRequest request)throws Exception { + return batchDeleteMaterialAttributeByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialAttribute(String ids, HttpServletRequest request)throws Exception { + return batchDeleteMaterialAttributeByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialAttributeByIds(String ids) throws Exception{ + String [] idArray=ids.split(","); + try{ + return materialAttributeMapperEx.batchDeleteMaterialAttributeByIds(idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + return 0; + } + } + + public int checkIsNameExist(Long id, String name)throws Exception { + MaterialAttributeExample example = new MaterialAttributeExample(); + example.createCriteria().andIdNotEqualTo(id).andAttributeNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list =null; + try{ + list = materialAttributeMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public JSONArray getValueArrById(Long id) { + JSONArray valueArr = new JSONArray(); + MaterialAttribute ma = getInfoById(id); + if(ma!=null) { + String value = ma.getAttributeValue(); + if(StringUtil.isNotEmpty(value)){ + String[] arr = value.split("\\|"); + for(String v: arr) { + JSONObject item = new JSONObject(); + item.put("value",v); + item.put("name",v); + valueArr.add(item); + } + } + } + return valueArr; + } + + public MaterialAttribute getInfoById(Long id) { + MaterialAttributeExample example = new MaterialAttributeExample(); + example.createCriteria().andIdEqualTo(id).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialAttributeMapper.selectByExample(example); + if(list!=null && list.size()>0) { + return list.get(0); + } else { + return null; + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialCategoryService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialCategoryService.java new file mode 100644 index 0000000..276f4b7 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialCategoryService.java @@ -0,0 +1,304 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.Material; +import com.reallin.smt.datasource.entities.MaterialCategory; +import com.reallin.smt.datasource.entities.MaterialCategoryExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.MaterialCategoryMapper; +import com.reallin.smt.datasource.mappers.MaterialCategoryMapperEx; +import com.reallin.smt.datasource.mappers.MaterialMapperEx; +import com.reallin.smt.datasource.vo.TreeNode; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class MaterialCategoryService { + private Logger logger = LoggerFactory.getLogger(MaterialCategoryService.class); + + @Resource + private MaterialCategoryMapper materialCategoryMapper; + @Resource + private MaterialCategoryMapperEx materialCategoryMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; + @Resource + private MaterialMapperEx materialMapperEx; + + public MaterialCategory getMaterialCategory(long id)throws Exception { + MaterialCategory result=null; + try{ + result=materialCategoryMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getMaterialCategoryListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + MaterialCategoryExample example = new MaterialCategoryExample(); + example.createCriteria().andIdIn(idList); + list = materialCategoryMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getMaterialCategory()throws Exception { + MaterialCategoryExample example = new MaterialCategoryExample(); + List list=null; + try{ + list=materialCategoryMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getAllList(Long parentId)throws Exception { + List list=null; + try{ + list = getMCList(parentId); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getMCList(Long parentId)throws Exception { + List res= new ArrayList(); + List list=null; + MaterialCategoryExample example = new MaterialCategoryExample(); + example.createCriteria().andParentIdEqualTo(parentId).andIdNotEqualTo(1L); + example.setOrderByClause("id"); + list=materialCategoryMapper.selectByExample(example); + if(list!=null && list.size()>0) { + res.addAll(list); + for(MaterialCategory mc : list) { + List mcList = getMCList(mc.getId()); + if(mcList!=null && mcList.size()>0) { + res.addAll(mcList); + } + } + } + return res; + } + + public List select(String name, Integer parentId) throws Exception{ + List list=null; + try{ + PageUtils.startPage(); + list=materialCategoryMapperEx.selectByConditionMaterialCategory(name, parentId); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertMaterialCategory(JSONObject obj, HttpServletRequest request)throws Exception { + MaterialCategory materialCategory = JSONObject.parseObject(obj.toJSONString(), MaterialCategory.class); + materialCategory.setCreateTime(new Date()); + materialCategory.setUpdateTime(new Date()); + int result=0; + try{ + result=materialCategoryMapper.insertSelective(materialCategory); + logService.insertLog("商品类型", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(materialCategory.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateMaterialCategory(JSONObject obj, HttpServletRequest request) throws Exception{ + MaterialCategory materialCategory = JSONObject.parseObject(obj.toJSONString(), MaterialCategory.class); + materialCategory.setUpdateTime(new Date()); + int result=0; + try{ + result=materialCategoryMapperEx.editMaterialCategory(materialCategory); + logService.insertLog("商品类型", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(materialCategory.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteMaterialCategory(Long id, HttpServletRequest request)throws Exception { + return batchDeleteMaterialCategoryByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialCategory(String ids, HttpServletRequest request)throws Exception { + return batchDeleteMaterialCategoryByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialCategoryByIds(String ids) throws Exception { + int result=0; + String [] idArray=ids.split(","); + //校验产品表 tbl_material + List materialList=null; + try{ + materialList= materialMapperEx.getMaterialListByCategoryIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(materialList!=null&&materialList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,CategoryIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getMaterialCategoryListByIds(ids); + for(MaterialCategory materialCategory: list){ + sb.append("[").append(materialCategory.getName()).append("]"); + } + logService.insertLog("商品类型", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + //更新时间 + Date updateDate =new Date(); + //更新人 + User userInfo=userService.getCurrentUser(); + Long updater=userInfo==null?null:userInfo.getId(); + String strArray[]=ids.split(","); + if(strArray.length<1){ + return 0; + } + List mcList = materialCategoryMapperEx.getMaterialCategoryListByCategoryIds(idArray); + if(mcList!=null && mcList.size()>0) { + logger.error("异常码[{}],异常提示[{}]", + ExceptionConstants.MATERIAL_CATEGORY_CHILD_NOT_SUPPORT_DELETE_CODE,ExceptionConstants.MATERIAL_CATEGORY_CHILD_NOT_SUPPORT_DELETE_MSG); + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_CHILD_NOT_SUPPORT_DELETE_CODE, + ExceptionConstants.MATERIAL_CATEGORY_CHILD_NOT_SUPPORT_DELETE_MSG); + } else { + result=materialCategoryMapperEx.batchDeleteMaterialCategoryByIds(updateDate,updater,strArray); + } + return result; + } + + public int checkIsNameExist(Long id, String name, Long parentId)throws Exception { + MaterialCategoryExample example = new MaterialCategoryExample(); + if(parentId!=null) { + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andParentIdEqualTo(parentId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } else { + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } + List list=null; + try{ + list= materialCategoryMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public List findById(Long id)throws Exception { + List list=null; + if(id!=null) { + MaterialCategoryExample example = new MaterialCategoryExample(); + example.createCriteria().andIdEqualTo(id); + try{ + list=materialCategoryMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + } + return list; + } + /** + * description: + * 获取商品类别树数据 + */ + public List getMaterialCategoryTree(Long id) throws Exception{ + List list=null; + try{ + list=materialCategoryMapperEx.getNodeTree(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + /** + * 根据商品类别编号判断商品类别是否已存在 + * */ + public void checkMaterialCategorySerialNo(MaterialCategory mc)throws Exception { + if(mc==null){ + return; + } + if(StringUtil.isEmpty(mc.getSerialNo())){ + return; + } + //根据商品类别编号查询商品类别 + List mList=null; + try{ + mList= materialCategoryMapperEx.getMaterialCategoryBySerialNo(mc.getSerialNo(), mc.getId()); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(mList==null||mList.size()<1){ + //未查询到对应数据,编号可用 + return; + } + if(mList.size()>1){ + //查询到的数据条数大于1,编号已存在 + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_CODE, + ExceptionConstants.MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_MSG); + } + if(mc.getId()==null){ + //新增时,编号已存在 + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_CODE, + ExceptionConstants.MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_MSG); + } + /** + * 包装类型用equals来比较 + * */ + if(mc.getId().equals(mList.get(0).getId())){ + //修改时,相同编号,id不同 + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_CODE, + ExceptionConstants.MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_MSG); + } + } + + /** + * 根据名称获取类型 + * @param name + */ + public Long getCategoryIdByName(String name){ + Long categoryId = null; + MaterialCategoryExample example = new MaterialCategoryExample(); + example.createCriteria().andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialCategoryMapper.selectByExample(example); + if(list!=null && list.size()>0) { + categoryId = list.get(0).getId(); + } + return categoryId; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialExtendService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialExtendService.java new file mode 100644 index 0000000..daf9a27 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialExtendService.java @@ -0,0 +1,422 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.MaterialExtend; +import com.reallin.smt.datasource.entities.MaterialExtendExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.MaterialExtendMapper; +import com.reallin.smt.datasource.mappers.MaterialExtendMapperEx; +import com.reallin.smt.datasource.vo.MaterialExtendVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.*; + + +@Service +public class MaterialExtendService { + private Logger logger = LoggerFactory.getLogger(MaterialExtendService.class); + + @Resource + private MaterialExtendMapper materialExtendMapper; + @Resource + private MaterialExtendMapperEx materialExtendMapperEx; + @Resource + private UserService userService; + @Resource + private RedisService redisService; + + public MaterialExtend getMaterialExtend(long id)throws Exception { + MaterialExtend result=null; + try{ + result=materialExtendMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + public List getDetailList(Long materialId) { + List list=null; + try{ + list = materialExtendMapperEx.getDetailList(materialId); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getListByMIds(List idList) { + List meList = null; + try{ + Long [] idArray= StringUtil.listToLongArray(idList); + if(idArray!=null && idArray.length>0) { + meList = materialExtendMapperEx.getListByMId(idArray); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return meList; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public String saveDetials(JSONObject obj, String sortList, Long materialId, String type) throws Exception { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + JSONArray meArr = obj.getJSONArray("meList"); + JSONArray insertedJson = new JSONArray(); + JSONArray updatedJson = new JSONArray(); + JSONArray deletedJson = obj.getJSONArray("meDeleteIdList"); + JSONArray sortJson = JSONArray.parseArray(sortList); + if (null != meArr) { + if("insert".equals(type)){ + for (int i = 0; i < meArr.size(); i++) { + JSONObject tempJson = meArr.getJSONObject(i); + insertedJson.add(tempJson); + } + } else if("update".equals(type)){ + for (int i = 0; i < meArr.size(); i++) { + JSONObject tempJson = meArr.getJSONObject(i); + String tempId = tempJson.getString("id"); + if(tempId.length()>19){ + insertedJson.add(tempJson); + } else { + updatedJson.add(tempJson); + } + } + //针对多属性商品要考虑到有条码被删的情况,需要和原来的条码明细进行对比 + if(StringUtil.isNotEmpty(obj.getString("manySku"))) { + //1.先查询原来的条码列表 + List meList = materialExtendMapperEx.getDetailList(materialId); + //2.构造新的条码列表map + Map barCodeMap = new HashMap<>(); + for (int i = 0; i < meArr.size(); i++) { + JSONObject tempJson = meArr.getJSONObject(i); + barCodeMap.put(tempJson.getString("barCode"),tempJson.getString("barCode")); + } + //3.如果老的条码在新的里面不存在,则丢入删除队列 + for(MaterialExtendVo4List me: meList) { + if(barCodeMap.get(me.getBarCode()) == null) { + deletedJson.add(me.getId()); + } + } + } + } + } + if (null != deletedJson) { + StringBuffer bf=new StringBuffer(); + for (int i = 0; i < deletedJson.size(); i++) { + bf.append(deletedJson.getString(i)); + if(i<(deletedJson.size()-1)){ + bf.append(","); + } + } + if(StringUtil.isNotEmpty(bf.toString())) { + this.batchDeleteMaterialExtendByIds(bf.toString(), request); + } + } + if (null != insertedJson) { + for (int i = 0; i < insertedJson.size(); i++) { + MaterialExtend materialExtend = new MaterialExtend(); + JSONObject tempInsertedJson = JSONObject.parseObject(insertedJson.getString(i)); + materialExtend.setMaterialId(materialId); + if (StringUtils.isNotEmpty(tempInsertedJson.getString("barCode"))) { + int exist = checkIsBarCodeExist(0L, tempInsertedJson.getString("barCode")); + if(exist>0) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BARCODE_EXISTS_CODE, + String.format(ExceptionConstants.MATERIAL_BARCODE_EXISTS_MSG,tempInsertedJson.getString("barCode"))); + } else { + materialExtend.setBarCode(tempInsertedJson.getString("barCode")); + } + } + if (StringUtils.isNotEmpty(tempInsertedJson.getString("commodityUnit"))) { + materialExtend.setCommodityUnit(tempInsertedJson.getString("commodityUnit")); + } + if (tempInsertedJson.get("sku")!=null) { + materialExtend.setSku(tempInsertedJson.getString("sku")); + } + if (StringUtils.isNotEmpty(tempInsertedJson.getString("purchaseDecimal"))) { + materialExtend.setPurchaseDecimal(tempInsertedJson.getBigDecimal("purchaseDecimal")); + } + if (StringUtils.isNotEmpty(tempInsertedJson.getString("commodityDecimal"))) { + materialExtend.setCommodityDecimal(tempInsertedJson.getBigDecimal("commodityDecimal")); + } + if (StringUtils.isNotEmpty(tempInsertedJson.getString("wholesaleDecimal"))) { + materialExtend.setWholesaleDecimal(tempInsertedJson.getBigDecimal("wholesaleDecimal")); + } + if (StringUtils.isNotEmpty(tempInsertedJson.getString("lowDecimal"))) { + materialExtend.setLowDecimal(tempInsertedJson.getBigDecimal("lowDecimal")); + } + this.insertMaterialExtend(materialExtend); + } + } + if (null != updatedJson) { + for (int i = 0; i < updatedJson.size(); i++) { + JSONObject tempUpdatedJson = JSONObject.parseObject(updatedJson.getString(i)); + MaterialExtend materialExtend = new MaterialExtend(); + materialExtend.setId(tempUpdatedJson.getLong("id")); + if (StringUtils.isNotEmpty(tempUpdatedJson.getString("barCode"))) { + int exist = checkIsBarCodeExist(tempUpdatedJson.getLong("id"), tempUpdatedJson.getString("barCode")); + if(exist>0) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BARCODE_EXISTS_CODE, + String.format(ExceptionConstants.MATERIAL_BARCODE_EXISTS_MSG,tempUpdatedJson.getString("barCode"))); + } else { + materialExtend.setBarCode(tempUpdatedJson.getString("barCode")); + } + } + if (StringUtils.isNotEmpty(tempUpdatedJson.getString("commodityUnit"))) { + materialExtend.setCommodityUnit(tempUpdatedJson.getString("commodityUnit")); + } + if (tempUpdatedJson.get("sku")!=null) { + materialExtend.setSku(tempUpdatedJson.getString("sku")); + } + if (StringUtils.isNotEmpty(tempUpdatedJson.getString("purchaseDecimal"))) { + materialExtend.setPurchaseDecimal(tempUpdatedJson.getBigDecimal("purchaseDecimal")); + } + if (StringUtils.isNotEmpty(tempUpdatedJson.getString("commodityDecimal"))) { + materialExtend.setCommodityDecimal(tempUpdatedJson.getBigDecimal("commodityDecimal")); + } + if (StringUtils.isNotEmpty(tempUpdatedJson.getString("wholesaleDecimal"))) { + materialExtend.setWholesaleDecimal(tempUpdatedJson.getBigDecimal("wholesaleDecimal")); + } + if (StringUtils.isNotEmpty(tempUpdatedJson.getString("lowDecimal"))) { + materialExtend.setLowDecimal(tempUpdatedJson.getBigDecimal("lowDecimal")); + } + this.updateMaterialExtend(materialExtend); + //如果金额为空,此处单独置空 + materialExtendMapperEx.specialUpdatePrice(materialExtend); + } + } + //处理条码的排序,基本单位排第一个 + if (null != sortJson && sortJson.size()>0) { + //此处为更新的逻辑 + for (int i = 0; i < sortJson.size(); i++) { + JSONObject tempSortJson = JSONObject.parseObject(sortJson.getString(i)); + MaterialExtend materialExtend = new MaterialExtend(); + if(StringUtil.isExist(tempSortJson.get("id"))) { + materialExtend.setId(tempSortJson.getLong("id")); + } + if(StringUtil.isExist(tempSortJson.get("defaultFlag"))) { + materialExtend.setDefaultFlag(tempSortJson.getString("defaultFlag")); + } + this.updateMaterialExtend(materialExtend); + } + } else { + //新增的时候将第一条记录设置为默认基本单位 + MaterialExtendExample example = new MaterialExtendExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List meList = materialExtendMapper.selectByExample(example); + if(meList!=null) { + for(int i=0; i 0) { + criteria.andIdNotEqualTo(id).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } else { + criteria.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } + List list =null; + try{ + list = materialExtendMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteMaterialExtend(Long id, HttpServletRequest request)throws Exception { + int result =0; + MaterialExtend materialExtend = new MaterialExtend(); + materialExtend.setId(id); + materialExtend.setDeleteFlag(BusinessConstants.DELETE_FLAG_DELETED); + Long userId = Long.parseLong(redisService.getObjectFromSessionByKey(request,"userId").toString()); + User user = userService.getUser(userId); + materialExtend.setUpdateTime(new Date().getTime()); + materialExtend.setUpdateSerial(user.getLoginName()); + try{ + result= materialExtendMapper.updateByPrimaryKeySelective(materialExtend); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialExtendByIds(String ids, HttpServletRequest request) throws Exception{ + String [] idArray=ids.split(","); + int result = 0; + try{ + result = materialExtendMapperEx.batchDeleteMaterialExtendByIds(idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int insertMaterialExtend(JSONObject obj, HttpServletRequest request) throws Exception{ + MaterialExtend materialExtend = JSONObject.parseObject(obj.toJSONString(), MaterialExtend.class); + int result=0; + try{ + result = materialExtendMapper.insertSelective(materialExtend); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int updateMaterialExtend(JSONObject obj, HttpServletRequest request)throws Exception { + MaterialExtend materialExtend = JSONObject.parseObject(obj.toJSONString(), MaterialExtend.class); + int result=0; + try{ + result = materialExtendMapper.updateByPrimaryKeySelective(materialExtend); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public List getMaterialExtendByTenantAndTime(Long tenantId, Long lastTime, Long syncNum)throws Exception { + List list=new ArrayList(); + try{ + //先获取最大的时间戳,再查两个时间戳之间的数据,这样同步能够防止丢失数据(应为时间戳有重复) + Long maxTime = materialExtendMapperEx.getMaxTimeByTenantAndTime(tenantId, lastTime, syncNum); + if(lastTime!=null && maxTime!=null) { + MaterialExtendExample example = new MaterialExtendExample(); + example.createCriteria().andUpdateTimeGreaterThan(lastTime) + .andUpdateTimeLessThanOrEqualTo(maxTime); + list=materialExtendMapper.selectByExample(example); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Long selectIdByMaterialIdAndDefaultFlag(Long materialId, String defaultFlag) { + Long id = 0L; + MaterialExtendExample example = new MaterialExtendExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andDefaultFlagEqualTo(defaultFlag) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialExtendMapper.selectByExample(example); + if(list!=null && list.size()>0) { + id = list.get(0).getId(); + } + return id; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Long selectIdByMaterialIdAndBarCode(Long materialId, String barCode) { + Long id = 0L; + MaterialExtendExample example = new MaterialExtendExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andBarCodeEqualTo(barCode) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialExtendMapper.selectByExample(example); + if(list!=null && list.size()>0) { + id = list.get(0).getId(); + } + return id; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public List getListByMaterialIdAndDefaultFlagAndBarCode(Long materialId, String defaultFlag, String barCode) { + MaterialExtendExample example = new MaterialExtendExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andDefaultFlagEqualTo(defaultFlag).andBarCodeNotEqualTo(barCode) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + return materialExtendMapper.selectByExample(example); + } + + public MaterialExtend getInfoByBarCode(String barCode)throws Exception { + MaterialExtendExample example = new MaterialExtendExample(); + example.createCriteria().andBarCodeEqualTo(barCode) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialExtendMapper.selectByExample(example); + if(list!=null && list.size()>0) { + return list.get(0); + } else { + return null; + } + } + + /** + * 商品的副条码和数据库里面的商品条码存在重复(除自身商品之外) + * @param manyBarCode + * @param barCode + * @return + */ + public int getCountByManyBarCodeWithoutUs(String manyBarCode, String barCode) { + MaterialExtendExample example = new MaterialExtendExample(); + example.createCriteria().andBarCodeEqualTo(manyBarCode).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialExtendMapper.selectByExample(example); + if(list!=null && list.size()>0) { + for(MaterialExtend me: list) { + List basicMeList = materialExtendMapperEx.getBasicInfoByMid(me.getMaterialId()); + for(MaterialExtend basicMe: basicMeList) { + if(basicMe!=null && !barCode.equals(basicMe.getBarCode())) { + return 1; + } + } + } + } + return 0; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialPropertyService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialPropertyService.java new file mode 100644 index 0000000..a6a07ef --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialPropertyService.java @@ -0,0 +1,177 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.MaterialProperty; +import com.reallin.smt.datasource.entities.MaterialPropertyExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.MaterialPropertyMapper; +import com.reallin.smt.datasource.mappers.MaterialPropertyMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.*; + +@Service +public class MaterialPropertyService { + private Logger logger = LoggerFactory.getLogger(MaterialPropertyService.class); + + @Resource + private MaterialPropertyMapper materialPropertyMapper; + + @Resource + private MaterialPropertyMapperEx materialPropertyMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; + + public MaterialProperty getMaterialProperty(long id)throws Exception { + MaterialProperty result=null; + try{ + result=materialPropertyMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getMaterialProperty()throws Exception { + MaterialPropertyExample example = new MaterialPropertyExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = new ArrayList<>(); + try{ + buildMaterialProperty(list); + List mpList = materialPropertyMapper.selectByExample(example); + Map mpMap = new HashMap<>(); + for(MaterialProperty mp: mpList) { + mpMap.put(mp.getNativeName(), mp.getAnotherName()); + } + //给list里面的别名和排序做更新 + for(MaterialProperty item: list) { + if(mpMap.get(item.getNativeName())!=null) { + item.setAnotherName(mpMap.get(item.getNativeName())); + } + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name)throws Exception { + List list = new ArrayList<>(); + try{ + buildMaterialProperty(list); + PageUtils.startPage(); + List mpList = materialPropertyMapperEx.selectByConditionMaterialProperty(name); + Map mpMap = new HashMap<>(); + for(MaterialProperty mp: mpList) { + mpMap.put(mp.getNativeName(), mp.getAnotherName()); + } + //给list里面的别名和排序做更新 + for(MaterialProperty item: list) { + if(mpMap.get(item.getNativeName())!=null) { + item.setAnotherName(mpMap.get(item.getNativeName())); + } + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + private void buildMaterialProperty(List list) { + MaterialProperty mp1 = new MaterialProperty(); + MaterialProperty mp2 = new MaterialProperty(); + MaterialProperty mp3 = new MaterialProperty(); + mp1.setId(1L); + mp1.setNativeName("扩展1"); + mp1.setAnotherName("扩展1"); + list.add(mp1); + mp2.setId(2L); + mp2.setNativeName("扩展2"); + mp2.setAnotherName("扩展2"); + list.add(mp2); + mp3.setId(3L); + mp3.setNativeName("扩展3"); + mp3.setAnotherName("扩展3"); + list.add(mp3); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertMaterialProperty(JSONObject obj, HttpServletRequest request)throws Exception { + MaterialProperty materialProperty = JSONObject.parseObject(obj.toJSONString(), MaterialProperty.class); + int result=0; + try{ + result = materialPropertyMapper.insertSelective(materialProperty); + logService.insertLog("商品属性", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(materialProperty.getNativeName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateMaterialProperty(JSONObject obj, HttpServletRequest request)throws Exception { + MaterialProperty materialProperty = JSONObject.parseObject(obj.toJSONString(), MaterialProperty.class); + int result=0; + try{ + result = materialPropertyMapper.updateByPrimaryKeySelective(materialProperty); + logService.insertLog("商品属性", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(materialProperty.getNativeName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteMaterialProperty(Long id, HttpServletRequest request)throws Exception { + return batchDeleteMaterialPropertyByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialProperty(String ids, HttpServletRequest request)throws Exception { + return batchDeleteMaterialPropertyByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialPropertyByIds(String ids) throws Exception{ + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + int result=0; + try{ + result = materialPropertyMapperEx.batchDeleteMaterialPropertyByIds(new Date(), userInfo == null ? null : userInfo.getId(), idArray); + logService.insertLog("商品属性", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + return 0; + } + + public boolean checkIsNativeNameExist(String nativeName) { + int count = materialPropertyMapperEx.getCountByNativeName(nativeName); + return count>0; + } + + public int updateMaterialPropertyByNativeName(String nativeName, String anotherName) { + materialPropertyMapperEx.updateMaterialPropertyByNativeName(nativeName, anotherName); + return 1; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialService.java new file mode 100644 index 0000000..42ee0f9 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/MaterialService.java @@ -0,0 +1,1539 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.*; +import com.reallin.smt.datasource.vo.MaterialDepotStock; +import com.reallin.smt.datasource.vo.MaterialVoSearch; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.*; +import jxl.Sheet; +import jxl.Workbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.*; + +@Service +public class MaterialService { + private Logger logger = LoggerFactory.getLogger(MaterialService.class); + + @Resource + private MaterialMapper materialMapper; + @Resource + private MaterialExtendMapper materialExtendMapper; + @Resource + private MaterialMapperEx materialMapperEx; + @Resource + private MaterialCategoryMapperEx materialCategoryMapperEx; + @Resource + private MaterialExtendMapperEx materialExtendMapperEx; + @Resource + private LogService logService; + @Resource + private UserService userService; + @Resource + private DepotItemMapperEx depotItemMapperEx; + @Resource + private DepotItemService depotItemService; + @Resource + private MaterialCategoryService materialCategoryService; + @Resource + private UnitService unitService; + @Resource + private MaterialInitialStockMapper materialInitialStockMapper; + @Resource + private MaterialInitialStockMapperEx materialInitialStockMapperEx; + @Resource + private MaterialCurrentStockMapper materialCurrentStockMapper; + @Resource + private MaterialCurrentStockMapperEx materialCurrentStockMapperEx; + @Resource + private DepotService depotService; + @Resource + private MaterialExtendService materialExtendService; + @Resource + private SystemConfigService systemConfigService; + @Resource + private RoleService roleService; + + @Value(value="${file.uploadType}") + private Long fileUploadType; + + @Value(value="${file.exportTmp}") + private String fileExportTmp; + + private static final Integer EXPORT_LIMIT = 10000; + + public Material getMaterial(long id)throws Exception { + Material result=null; + try{ + result=materialMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getMaterialListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + MaterialExample example = new MaterialExample(); + example.createCriteria().andIdIn(idList); + list = materialMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getMaterial() throws Exception{ + MaterialExample example = new MaterialExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=materialMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String materialParam, String standard, String model, String color, String brand, String mfrs, + String otherField1, String otherField2, String otherField3, String weight, String expiryNum, String enableSerialNumber, + String enableBatchNumber, String position, String enabled, String remark, String categoryId, + String mpList) + throws Exception{ + String[] mpArr = new String[]{}; + if(StringUtil.isNotEmpty(mpList)){ + mpArr= mpList.split(","); + } + List list = new ArrayList<>(); + try{ + List idList = new ArrayList<>(); + if(StringUtil.isNotEmpty(categoryId)){ + idList = getListByParentId(Long.parseLong(categoryId)); + } + PageUtils.startPage(); + list= materialMapperEx.selectByConditionMaterial(materialParam, standard, model, color, brand, mfrs, + otherField1, otherField2, otherField3, weight, expiryNum, + enableSerialNumber, enableBatchNumber, position, enabled, remark, idList, mpList); + if (null != list && list.size()>0) { + Map initialStockMap = getInitialStockMapByMaterialList(list); + Map currentStockMap = getCurrentStockMapByMaterialList(list); + for (MaterialVo4Unit m : list) { + if(fileUploadType == 2) { + m.setImgSmall("small"); + m.setImgLarge("large"); + } + m.setMaterialOther(getMaterialOtherByParam(mpArr, m)); + m.setInitialStock(initialStockMap.get(m.getId())!=null? initialStockMap.get(m.getId()): BigDecimal.ZERO); + m.setBigUnitInitialStock(getBigUnitStock(m.getInitialStock(), m.getUnitId())); + m.setStock(currentStockMap.get(m.getId())!=null? currentStockMap.get(m.getId()): BigDecimal.ZERO); + m.setBigUnitStock(getBigUnitStock(m.getStock(), m.getUnitId())); + } + } + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertMaterial(JSONObject obj, HttpServletRequest request)throws Exception { + Material m = JSONObject.parseObject(obj.toJSONString(), Material.class); + m.setEnabled(true); + //构造多属性数组字符串 + m.setAttribute(parseAttributeBySku(obj)); + try{ + materialMapperEx.insertSelectiveEx(m); + Long mId = m.getId(); + materialExtendService.saveDetials(obj, obj.getString("sortList"), mId, "insert"); + if(obj.get("stock")!=null) { + JSONArray stockArr = obj.getJSONArray("stock"); + for (int i = 0; i < stockArr.size(); i++) { + JSONObject jsonObj = stockArr.getJSONObject(i); + if(jsonObj.get("id")!=null && jsonObj.get("initStock")!=null) { + String number = jsonObj.getString("initStock"); + BigDecimal lowSafeStock = null; + BigDecimal highSafeStock = null; + if(jsonObj.get("lowSafeStock")!=null) { + lowSafeStock = jsonObj.getBigDecimal("lowSafeStock"); + } + if(jsonObj.get("highSafeStock")!=null) { + highSafeStock = jsonObj.getBigDecimal("highSafeStock"); + } + Long depotId = jsonObj.getLong("id"); + if(StringUtil.isNotEmpty(number) && Double.parseDouble(number)>0 || lowSafeStock!=null || highSafeStock!=null) { + insertInitialStockByMaterialAndDepot(depotId, mId, parseBigDecimalEx(number), lowSafeStock, highSafeStock); + insertCurrentStockByMaterialAndDepot(depotId, mId, parseBigDecimalEx(number)); + } + } + } + } + logService.insertLog("商品", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(m.getName()).toString(), request); + return 1; + } + catch (BusinessRunTimeException ex) { + throw new BusinessRunTimeException(ex.getCode(), ex.getMessage()); + } + catch(Exception e){ + JshException.writeFail(logger, e); + return 0; + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateMaterial(JSONObject obj, HttpServletRequest request) throws Exception{ + Material material = JSONObject.parseObject(obj.toJSONString(), Material.class); + //构造多属性数组字符串 + material.setAttribute(parseAttributeBySku(obj)); + try{ + materialMapper.updateByPrimaryKeySelective(material); + if(material.getUnitId() == null) { + materialMapperEx.setUnitIdToNull(material.getId()); + } + if(material.getExpiryNum() == null) { + materialMapperEx.setExpiryNumToNull(material.getId()); + } + materialExtendService.saveDetials(obj, obj.getString("sortList"),material.getId(), "update"); + BigDecimal currentUnitPrice = materialCurrentStockMapperEx.getCurrentUnitPriceByMId(material.getId()); + if(obj.get("stock")!=null) { + JSONArray stockArr = obj.getJSONArray("stock"); + for (int i = 0; i < stockArr.size(); i++) { + JSONObject jsonObj = stockArr.getJSONObject(i); + if (jsonObj.get("id") != null && jsonObj.get("initStock") != null) { + String number = jsonObj.getString("initStock"); + BigDecimal lowSafeStock = null; + BigDecimal highSafeStock = null; + if(jsonObj.get("lowSafeStock")!=null) { + lowSafeStock = jsonObj.getBigDecimal("lowSafeStock"); + } + if(jsonObj.get("highSafeStock")!=null) { + highSafeStock = jsonObj.getBigDecimal("highSafeStock"); + } + Long depotId = jsonObj.getLong("id"); + //初始库存-先清除再插入 + MaterialInitialStockExample example = new MaterialInitialStockExample(); + example.createCriteria().andMaterialIdEqualTo(material.getId()).andDepotIdEqualTo(depotId); + materialInitialStockMapper.deleteByExample(example); + if (StringUtil.isNotEmpty(number) || lowSafeStock!=null || highSafeStock!=null) { + insertInitialStockByMaterialAndDepot(depotId, material.getId(), parseBigDecimalEx(number), lowSafeStock, highSafeStock); + } + //更新当前库存 + depotItemService.updateCurrentStockFun(material.getId(), depotId, currentUnitPrice); + } + } + } + logService.insertLog("商品", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(material.getName()).toString(), request); + return 1; + }catch(Exception e){ + JshException.writeFail(logger, e); + return 0; + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteMaterial(Long id, HttpServletRequest request)throws Exception { + return batchDeleteMaterialByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterial(String ids, HttpServletRequest request)throws Exception { + return batchDeleteMaterialByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialByIds(String ids) throws Exception{ + String [] idArray=ids.split(","); + //校验单据子表 tbl_depot_item + List depotItemList =null; + try{ + depotItemList= depotItemMapperEx.getDepotItemListListByMaterialIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(depotItemList!=null&&depotItemList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,MaterialIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + //路径列表 + List pathList = new ArrayList<>(); + List list = getMaterialListByIds(ids); + for(Material material: list){ + sb.append("[").append(material.getName()).append("]"); + if(StringUtil.isNotEmpty(material.getImgName())) { + pathList.add(material.getImgName()); + } + } + logService.insertLog("商品", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + //校验通过执行删除操作 + try{ + //逻辑删除商品 + materialMapperEx.batchDeleteMaterialByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + //逻辑删除商品价格扩展 + materialExtendMapperEx.batchDeleteMaterialExtendByMIds(idArray); + //逻辑删除文件 + systemConfigService.deleteFileByPathList(pathList); + return 1; + }catch(Exception e){ + JshException.writeFail(logger, e); + return 0; + } + } + + public int checkIsNameExist(Long id, String name)throws Exception { + MaterialExample example = new MaterialExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list =null; + try{ + list= materialMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public int checkIsExist(Long id, String name, String model, String color, String standard, String mfrs, + String otherField1, String otherField2, String otherField3, String unit, Long unitId)throws Exception { + return materialMapperEx.checkIsExist(id, name, model, color, standard, mfrs, otherField1, + otherField2, otherField3, unit, unitId); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids)throws Exception { + logService.insertLog("商品", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List materialIds = StringUtil.strToLongList(ids); + Material material = new Material(); + material.setEnabled(status); + MaterialExample example = new MaterialExample(); + example.createCriteria().andIdIn(materialIds); + int result =0; + try{ + result= materialMapper.updateByExampleSelective(material, example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public Unit findUnit(Long mId)throws Exception{ + Unit unit = new Unit(); + try{ + List list = materialMapperEx.findUnitList(mId); + if(list!=null && list.size()>0) { + unit = list.get(0); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return unit; + } + + public List findById(Long id)throws Exception{ + List list =null; + try{ + list= materialMapperEx.findById(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List findByIdWithBarCode(Long meId)throws Exception{ + List list =null; + try{ + list= materialMapperEx.findByIdWithBarCode(meId); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getListByParentId(Long parentId) { + List idList = new ArrayList(); + List list = materialCategoryMapperEx.getListByParentId(parentId); + idList.add(parentId); + if(list!=null && list.size()>0) { + getIdListByParentId(idList, parentId); + } + return idList; + } + + public List getIdListByParentId(List idList, Long parentId){ + List list = materialCategoryMapperEx.getListByParentId(parentId); + if(list!=null && list.size()>0) { + for(MaterialCategory mc : list){ + idList.add(mc.getId()); + getIdListByParentId(idList, mc.getId()); + } + } + return idList; + } + + public JSONArray getMaterialByParam(String materialParam) { + JSONArray arr = new JSONArray(); + List list = materialMapperEx.getMaterialByParam(materialParam); + for(MaterialVoSearch item: list) { + JSONObject obj = new JSONObject(); + StringBuilder sb = new StringBuilder(); + sb.append(item.getBarCode()); + sb.append("_").append(item.getName()); + if(StringUtil.isNotEmpty(item.getMnemonic())) { + sb.append("(").append(item.getMnemonic()).append(")"); + } + if(StringUtil.isNotEmpty(item.getStandard())) { + sb.append("(").append(item.getStandard()).append(")"); + } + if(StringUtil.isNotEmpty(item.getModel())) { + sb.append("(").append(item.getModel()).append(")"); + } + if(StringUtil.isNotEmpty(item.getColor())) { + sb.append("(").append(item.getColor()).append(")"); + } + if(StringUtil.isNotEmpty(item.getBrand())) { + sb.append("(").append(item.getBrand()).append(")"); + } + if(StringUtil.isNotEmpty(item.getUnit())) { + sb.append("(").append(item.getUnit()).append(")"); + } + obj.put("barCode", item.getBarCode()); + obj.put("materialStr", sb.toString()); + arr.add(obj); + } + return arr; + } + + public List findBySelectWithBarCode(Long categoryId, String q, String standardOrModel, String color, + String brand, String mfrs, String otherField1, String otherField2, String otherField3, + String enableSerialNumber, String enableBatchNumber, Integer offset, Integer rows) throws Exception{ + List list =null; + try{ + List idList = new ArrayList<>(); + if(categoryId!=null){ + Long parentId = categoryId; + idList = getListByParentId(parentId); + } + if(StringUtil.isNotEmpty(q)) { + q = q.replace("'", ""); + q = q.trim(); + } + list= materialMapperEx.findBySelectWithBarCode(idList, q, standardOrModel, color, brand, mfrs, + otherField1, otherField2, otherField3, enableSerialNumber, enableBatchNumber, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public int findBySelectWithBarCodeCount(Long categoryId, String q, String standardOrModel, String color, + String brand, String mfrs, String otherField1, String otherField2, String otherField3, + String enableSerialNumber, String enableBatchNumber) throws Exception{ + int result=0; + try{ + List idList = new ArrayList<>(); + if(categoryId!=null){ + Long parentId = categoryId; + idList = getListByParentId(parentId); + } + if(StringUtil.isNotEmpty(q)) { + q = q.replace("'", ""); + } + result = materialMapperEx.findBySelectWithBarCodeCount(idList, q, standardOrModel, color, brand, mfrs, + otherField1, otherField2, otherField3, enableSerialNumber, enableBatchNumber); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return result; + } + + public void exportExcel(String categoryId, String materialParam, String color, String materialOther, String weight, + String expiryNum, String enabled, String enableSerialNumber, String enableBatchNumber, + String remark, String mpList, HttpServletResponse response)throws Exception { + String title = "商品信息"; + List idList = new ArrayList<>(); + if(StringUtil.isNotEmpty(categoryId)){ + idList = getListByParentId(Long.parseLong(categoryId)); + } + //查询商品主条码相关列表 + List dataList = materialMapperEx.exportExcel(materialParam, color, materialOther, weight, expiryNum, enabled, enableSerialNumber, + enableBatchNumber, remark, idList); + if (null != dataList && dataList.size() > EXPORT_LIMIT) { + File file = ExcelUtils.exportObjectsOneSheet(fileExportTmp, title, "单次导出条数超出限制(1万条)", new String[0], title, new ArrayList<>()); + ExcelUtils.downloadExcel(file, file.getName(), response); + return; + } + //查询商品副条码相关列表 + Map otherMaterialMap = new HashMap<>(); + List otherDataList = materialMapperEx.getOtherMaterialList(); + for(MaterialExtend me: otherDataList) { + //遇到多个副条码的情况,只加第一个 + otherMaterialMap.putIfAbsent(me.getMaterialId(), me); + } + String otherField = "扩展1,扩展2,扩展3"; + if(StringUtil.isNotEmpty(mpList)) { + otherField = mpList; + } + String nameStr = "名称*,规格,型号,颜色,品牌,类别,基础重量(kg),保质期(天),基本单位*,副单位,基本条码*,副条码,比例,多属性," + + "采购价,零售价,销售价,最低售价,状态*,序列号,批号,仓位货架,制造商," + otherField + ",备注"; + List nameList = StringUtil.strToStringList(nameStr); + //仓库列表 + List depotList = depotService.getAllList(); + if (nameList != null) { + for(Depot depot: depotList) { + nameList.add(depot.getName()); + } + } + //期初库存缓存 + List misList = materialInitialStockMapperEx.getListExceptZero(); + Map misMap = new HashMap<>(); + if (misList != null) { + for (MaterialInitialStock mis : misList) { + misMap.put(mis.getMaterialId() + "_" + mis.getDepotId(), mis.getNumber()); + } + } + String[] names = StringUtil.listToStringArray(nameList); + List objects = new ArrayList<>(); + if (null != dataList) { + for (MaterialVo4Unit m : dataList) { + Object[] objs = new Object[names.length]; + objs[0] = m.getName(); + objs[1] = m.getStandard(); + objs[2] = m.getModel(); + objs[3] = m.getColor(); + objs[4] = m.getBrand(); + objs[5] = m.getCategoryName(); + objs[6] = m.getWeight() == null ? "" : m.getWeight().setScale(3, BigDecimal.ROUND_HALF_UP); + objs[7] = m.getExpiryNum() == null ? "" : m.getExpiryNum(); + objs[8] = m.getCommodityUnit(); + objs[9] = otherMaterialMap.get(m.getId()) == null ? "" : otherMaterialMap.get(m.getId()).getCommodityUnit(); + objs[10] = m.getmBarCode(); + objs[11] = otherMaterialMap.get(m.getId()) == null ? "" : otherMaterialMap.get(m.getId()).getBarCode(); + objs[12] = m.getRatio() == null ? "" : m.getRatio(); + objs[13] = m.getSku(); + objs[14] = m.getPurchaseDecimal() == null ? "" : m.getPurchaseDecimal().setScale(3, BigDecimal.ROUND_HALF_UP); + objs[15] = m.getCommodityDecimal() == null ? "" : m.getCommodityDecimal().setScale(3, BigDecimal.ROUND_HALF_UP); + objs[16] = m.getWholesaleDecimal() == null ? "" : m.getWholesaleDecimal().setScale(3, BigDecimal.ROUND_HALF_UP); + objs[17] = m.getLowDecimal() == null ? "" : m.getLowDecimal().setScale(3, BigDecimal.ROUND_HALF_UP); + objs[18] = m.getEnabled() ? "1" : "0"; + objs[19] = m.getEnableSerialNumber(); + objs[20] = m.getEnableBatchNumber(); + objs[21] = m.getPosition(); + objs[22] = m.getMfrs(); + objs[23] = m.getOtherField1(); + objs[24] = m.getOtherField2(); + objs[25] = m.getOtherField3(); + objs[26] = m.getRemark(); + //仓库期初库存 + int i = 27; + for(Depot depot: depotList) { + BigDecimal number = misMap.get(m.getId() + "_" + depot.getId()); + objs[i] = number == null ? BigDecimal.ZERO : number.setScale(2, BigDecimal.ROUND_HALF_UP); + i++; + } + objects.add(objs); + } + } + File file = ExcelUtils.exportObjectsOneSheet(fileExportTmp, title, "*导入时本行内容请勿删除,切记!", names, title, objects); + ExcelUtils.downloadExcel(file, file.getName(), response); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public BaseResponseInfo importExcel(MultipartFile file, HttpServletRequest request) throws Exception { + BaseResponseInfo info = new BaseResponseInfo(); + try { + Long beginTime = System.currentTimeMillis(); + //文件扩展名只能为xls + String fileName = file.getOriginalFilename(); + if(StringUtil.isNotEmpty(fileName)) { + String fileExt = fileName.substring(fileName.lastIndexOf(".")+1); + if(!"xls".equals(fileExt)) { + throw new BusinessRunTimeException(ExceptionConstants.FILE_EXTENSION_ERROR_CODE, + ExceptionConstants.FILE_EXTENSION_ERROR_MSG); + } + } + Workbook workbook = Workbook.getWorkbook(file.getInputStream()); + Sheet src = workbook.getSheet(0); + //获取真实的行数,剔除掉空白行 + int rightRows = ExcelUtils.getRightRows(src); + List depotList= depotService.getDepot(); + int depotCount = depotList.size(); + Map depotMap = parseDepotToMap(depotList); + User user = userService.getCurrentUser(); + List mList = new ArrayList<>(); + //单次导入超出1000条 + if(rightRows > 1002) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_IMPORT_OVER_LIMIT_CODE, + String.format(ExceptionConstants.MATERIAL_IMPORT_OVER_LIMIT_MSG)); + } + for (int i = 2; i < rightRows; i++) { + String name = ExcelUtils.getContent(src, i, 0); //名称 + String standard = ExcelUtils.getContent(src, i, 1); //规格 + String model = ExcelUtils.getContent(src, i, 2); //型号 + String color = ExcelUtils.getContent(src, i, 3); //颜色 + String brand = ExcelUtils.getContent(src, i, 4); //品牌 + String categoryName = ExcelUtils.getContent(src, i, 5); //类别 + String weight = ExcelUtils.getContent(src, i, 6); //基础重量(kg) + String expiryNum = ExcelUtils.getContent(src, i, 7); //保质期(天) + String unit = ExcelUtils.getContent(src, i, 8); //基本单位 + //名称为空 + if(StringUtil.isEmpty(name)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NAME_EMPTY_CODE, + String.format(ExceptionConstants.MATERIAL_NAME_EMPTY_MSG, i+1)); + } + //名称长度超出 + if(name.length()>100) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NAME_OVER_CODE, + String.format(ExceptionConstants.MATERIAL_NAME_OVER_MSG, i+1)); + } + //规格长度超出 + if(StringUtil.isNotEmpty(standard) && standard.length()>100) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_STANDARD_OVER_CODE, + String.format(ExceptionConstants.MATERIAL_STANDARD_OVER_MSG, i+1)); + } + //型号长度超出 + if(StringUtil.isNotEmpty(model) && model.length()>100) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_MODEL_OVER_CODE, + String.format(ExceptionConstants.MATERIAL_MODEL_OVER_MSG, i+1)); + } + //基本单位为空 + if(StringUtil.isEmpty(unit)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_UNIT_EMPTY_CODE, + String.format(ExceptionConstants.MATERIAL_UNIT_EMPTY_MSG, i+1)); + } + MaterialWithInitStock m = new MaterialWithInitStock(); + m.setName(name); + m.setStandard(standard); + m.setModel(model); + m.setColor(color); + m.setBrand(brand); + //通过名称生成助记码 + m.setMnemonic(PinYinUtil.getFirstLettersLo(name)); + Long categoryId = materialCategoryService.getCategoryIdByName(categoryName); + if(null!=categoryId){ + m.setCategoryId(categoryId); + } + if(StringUtil.isNotEmpty(weight)) { + //校验基础重量是否是数字(含小数) + if(!StringUtil.isPositiveBigDecimal(weight)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_WEIGHT_NOT_DECIMAL_CODE, + String.format(ExceptionConstants.MATERIAL_WEIGHT_NOT_DECIMAL_MSG, i+1)); + } + m.setWeight(new BigDecimal(weight)); + } + if(StringUtil.isNotEmpty(expiryNum)) { + //校验保质期是否是正整数 + if(!StringUtil.isPositiveLong(expiryNum)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_EXPIRY_NUM_NOT_INTEGER_CODE, + String.format(ExceptionConstants.MATERIAL_EXPIRY_NUM_NOT_INTEGER_MSG, i+1)); + } + m.setExpiryNum(Integer.parseInt(expiryNum)); + } + String manyUnit = ExcelUtils.getContent(src, i, 9); //副单位 + String barCode = ExcelUtils.getContent(src, i, 10); //基础条码 + String manyBarCode = ExcelUtils.getContent(src, i, 11); //副条码 + String ratio = ExcelUtils.getContent(src, i, 12); //比例 + String sku = ExcelUtils.getContent(src, i, 13); //多属性 + String purchaseDecimal = ExcelUtils.getContent(src, i, 14); //采购价 + String commodityDecimal = ExcelUtils.getContent(src, i, 15); //零售价 + String wholesaleDecimal = ExcelUtils.getContent(src, i, 16); //销售价 + String lowDecimal = ExcelUtils.getContent(src, i, 17); //最低售价 + String enabled = ExcelUtils.getContent(src, i, 18); //状态 + String enableSerialNumber = ExcelUtils.getContent(src, i, 19); //序列号 + String enableBatchNumber = ExcelUtils.getContent(src, i, 20); //批号 + String position = ExcelUtils.getContent(src, i, 21); //仓位货架 + String mfrs = ExcelUtils.getContent(src, i, 22); //制造商 + String otherField1 = ExcelUtils.getContent(src, i, 23); //自定义1 + String otherField2 = ExcelUtils.getContent(src, i, 24); //自定义2 + String otherField3 = ExcelUtils.getContent(src, i, 25); //自定义3 + String remark = ExcelUtils.getContent(src, i, 26); //备注 + m.setPosition(StringUtil.isNotEmpty(position)?position:null); + m.setMfrs(StringUtil.isNotEmpty(mfrs)?mfrs:null); + m.setOtherField1(StringUtil.isNotEmpty(otherField1)?otherField1:null); + m.setOtherField2(StringUtil.isNotEmpty(otherField2)?otherField2:null); + m.setOtherField3(StringUtil.isNotEmpty(otherField3)?otherField3:null); + m.setRemark(remark); + //状态格式错误 + if(!"1".equals(enabled) && !"0".equals(enabled)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_ENABLED_ERROR_CODE, + String.format(ExceptionConstants.MATERIAL_ENABLED_ERROR_MSG, i+1)); + } + //基本条码为空 + if(StringUtil.isEmpty(barCode)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BARCODE_EMPTY_CODE, + String.format(ExceptionConstants.MATERIAL_BARCODE_EMPTY_MSG, i+1)); + } + //校验基本条码长度为4到40位 + if(!StringUtil.checkBarCodeLength(barCode)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BARCODE_LENGTH_ERROR_CODE, + String.format(ExceptionConstants.MATERIAL_BARCODE_LENGTH_ERROR_MSG, barCode)); + } + //校验副条码长度为4到40位 + if(StringUtil.isNotEmpty(manyBarCode) && !StringUtil.checkBarCodeLength(manyBarCode)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BARCODE_LENGTH_ERROR_CODE, + String.format(ExceptionConstants.MATERIAL_BARCODE_LENGTH_ERROR_MSG, manyBarCode)); + } + //批量校验excel中有无重复商品,是指名称、规格、型号、颜色、单位、多属性 + batchCheckExistMaterialListByParam(mList, name, standard, model, color, unit, sku); + //批量校验excel中有无重复条码(1-文档自身校验,2-和数据库里面的商品校验) + batchCheckExistBarCodeByParam(mList, barCode, manyBarCode); + JSONObject materialExObj = new JSONObject(); + JSONObject basicObj = new JSONObject(); + basicObj.put("barCode", barCode); + basicObj.put("commodityUnit", unit); + basicObj.put("sku", sku); + basicObj.put("purchaseDecimal", purchaseDecimal); + basicObj.put("commodityDecimal", commodityDecimal); + basicObj.put("wholesaleDecimal", wholesaleDecimal); + basicObj.put("lowDecimal", lowDecimal); + materialExObj.put("basic", basicObj); + if(StringUtil.isNotEmpty(manyUnit) && StringUtil.isNotEmpty(ratio)){ //多单位 + //校验比例是否是数字(含小数) + if(!StringUtil.isPositiveBigDecimal(ratio.trim())) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_RATIO_NOT_INTEGER_CODE, + String.format(ExceptionConstants.MATERIAL_RATIO_NOT_INTEGER_MSG, i+1)); + } + Long unitId = unitService.getUnitIdByParam(unit, manyUnit, new BigDecimal(ratio.trim())); + if(unitId != null) { + m.setUnitId(unitId); + m.setUnit(""); + } else { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_UNIT_MATE_CODE, + String.format(ExceptionConstants.MATERIAL_UNIT_MATE_MSG, manyBarCode)); + } + JSONObject otherObj = new JSONObject(); + otherObj.put("barCode", manyBarCode); + otherObj.put("commodityUnit", manyUnit); + otherObj.put("purchaseDecimal", parsePrice(purchaseDecimal,ratio)); + otherObj.put("commodityDecimal", parsePrice(commodityDecimal,ratio)); + otherObj.put("wholesaleDecimal", parsePrice(wholesaleDecimal,ratio)); + otherObj.put("lowDecimal", parsePrice(lowDecimal,ratio)); + materialExObj.put("other", otherObj); + } else { + m.setUnit(unit); + m.setUnitId(null); + } + m.setMaterialExObj(materialExObj); + m.setEnabled("1".equals(enabled)); + if(StringUtil.isNotEmpty(enableSerialNumber) && "1".equals(enableSerialNumber)) { + m.setEnableSerialNumber("1"); + } else { + m.setEnableSerialNumber("0"); + } + if(StringUtil.isNotEmpty(enableBatchNumber) && "1".equals(enableBatchNumber)) { + m.setEnableBatchNumber("1"); + } else { + m.setEnableBatchNumber("0"); + } + if("1".equals(enableSerialNumber) && "1".equals(enableBatchNumber)) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_ENABLE_MUST_ONE_CODE, + String.format(ExceptionConstants.MATERIAL_ENABLE_MUST_ONE_MSG, barCode)); + } + m.setStockMap(getStockMapCache(src, depotCount, depotMap, i)); + mList.add(m); + } + List deleteInitialStockMaterialIdList = new ArrayList<>(); + List deleteCurrentStockMaterialIdList = new ArrayList<>(); + List insertInitialStockMaterialList = new ArrayList<>(); + List insertCurrentStockMaterialList = new ArrayList<>(); + //防止初始库存和当前库存出现重复 + Map materialDepotInitialMap = new HashMap<>(); + Map materialDepotCurrentMap = new HashMap<>(); + for(MaterialWithInitStock m: mList) { + Long mId = 0L; + //判断该商品是否存在,如果不存在就新增,如果存在就更新 + String basicBarCode = getBasicBarCode(m); + List materials = getMaterialListByParam(m.getName(),m.getStandard(),m.getModel(),m.getColor(),m.getUnit(),m.getUnitId(), basicBarCode); + if(materials.size() == 0) { + materialMapperEx.insertSelectiveEx(m); + mId = m.getId(); + } else { + mId = materials.get(0).getId(); + String materialJson = JSON.toJSONString(m); + Material material = JSONObject.parseObject(materialJson, Material.class); + material.setId(mId); + materialMapper.updateByPrimaryKeySelective(material); + //更新多单位 + if(material.getUnitId() == null) { + materialMapperEx.setUnitIdToNull(material.getId()); + } + //如果之前有保质期,则更新保质期 + if(materials.get(0).getExpiryNum()!=null && material.getExpiryNum() == null) { + materialMapperEx.setExpiryNumToNull(material.getId()); + } + } + //给商品新增或更新条码与价格相关信息 + JSONObject materialExObj = m.getMaterialExObj(); + insertOrUpdateMaterialExtend(materialExObj, "basic", "1", mId, user); + insertOrUpdateMaterialExtend(materialExObj, "other", "0", mId, user); + //给商品更新库存 + Map stockMap = m.getStockMap(); + for(Depot depot: depotList){ + Long depotId = depot.getId(); + String materialDepotKey = mId + "_" + depotId; + //获取初始库存 + BigDecimal initStock = getInitStock(mId, depotId); + //excel里面的当前库存 + BigDecimal stock = stockMap.get(depot.getId()); + //新增或更新初始库存 + if(stock!=null && stock.compareTo(BigDecimal.ZERO)!=0) { + String basicStr = materialExObj.getString("basic"); + MaterialExtend materialExtend = JSONObject.parseObject(basicStr, MaterialExtend.class); + if(StringUtil.isNotEmpty(materialExtend.getSku())) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_SKU_BEGIN_STOCK_FAILED_CODE, + String.format(ExceptionConstants.MATERIAL_SKU_BEGIN_STOCK_FAILED_MSG, materialExtend.getBarCode())); + } + buildChangeInitialStock(deleteInitialStockMaterialIdList, insertInitialStockMaterialList, materialDepotInitialMap, mId, depotId, materialDepotKey, stock); + } else { + if(initStock!=null && initStock.compareTo(BigDecimal.ZERO)!=0) { + buildChangeInitialStock(deleteInitialStockMaterialIdList, insertInitialStockMaterialList, materialDepotInitialMap, mId, depotId, materialDepotKey, stock); + } + } + //新增或更新当前库存 + Long billCount = depotItemService.getCountByMaterialAndDepot(mId, depotId); + if(billCount == 0) { + if(stock!=null && stock.compareTo(BigDecimal.ZERO)!=0) { + buildChangeCurrentStock(deleteCurrentStockMaterialIdList, insertCurrentStockMaterialList, materialDepotCurrentMap, mId, depotId, materialDepotKey, stock); + } else { + if(initStock!=null && initStock.compareTo(BigDecimal.ZERO)!=0) { + buildChangeCurrentStock(deleteCurrentStockMaterialIdList, insertCurrentStockMaterialList, materialDepotCurrentMap, mId, depotId, materialDepotKey, stock); + } + } + } else { + BigDecimal currentNumber = getCurrentStockByMaterialIdAndDepotId(mId, depotId); + //当前库存的更新:减去初始库存,再加上导入的新初始库存 + if(currentNumber!=null && initStock!=null && stock!=null) { + currentNumber = currentNumber.subtract(initStock).add(stock); + } + buildChangeCurrentStock(deleteCurrentStockMaterialIdList, insertCurrentStockMaterialList, materialDepotCurrentMap, mId, depotId, materialDepotKey, currentNumber); + } + } + } + //批量更新库存,先删除后新增 + if(insertInitialStockMaterialList.size()>0) { + batchDeleteInitialStockByMaterialList(deleteInitialStockMaterialIdList); + materialInitialStockMapperEx.batchInsert(insertInitialStockMaterialList); + } + if(insertCurrentStockMaterialList.size()>0) { + batchDeleteCurrentStockByMaterialList(deleteCurrentStockMaterialIdList); + materialCurrentStockMapperEx.batchInsert(insertCurrentStockMaterialList); + } + logService.insertLog("商品", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_IMPORT).append(mList.size()).append(BusinessConstants.LOG_DATA_UNIT).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + Long endTime = System.currentTimeMillis(); + logger.info("导入耗时:{}", endTime-beginTime); + info.code = 200; + info.data = "导入成功"; + } catch (BusinessRunTimeException e) { + info.code = e.getCode(); + info.data = e.getData().get("message"); + } catch (Exception e) { + logger.error(e.getMessage(), e); + info.code = 500; + info.data = "导入失败"; + } + return info; + } + + /** + * 构造初始库存的变化 + */ + private void buildChangeInitialStock(List deleteInitialStockMaterialIdList, List insertInitialStockMaterialList, + Map materialDepotInitialMap, Long mId, Long depotId, String materialDepotKey, BigDecimal stock) { + if(materialDepotInitialMap.get(materialDepotKey)==null) { + MaterialInitialStock materialInitialStock = new MaterialInitialStock(); + materialInitialStock.setMaterialId(mId); + materialInitialStock.setDepotId(depotId); + materialInitialStock.setNumber(stock); + insertInitialStockMaterialList.add(materialInitialStock); + deleteInitialStockMaterialIdList.add(mId); + materialDepotInitialMap.put(materialDepotKey, materialDepotKey); + } + } + + /** + * 构造当前库存的变化 + */ + private void buildChangeCurrentStock(List deleteCurrentStockMaterialIdList, List insertCurrentStockMaterialList, + Map materialDepotCurrentMap, Long mId, Long depotId, String materialDepotKey, BigDecimal stock) { + if(materialDepotCurrentMap.get(materialDepotKey)==null) { + MaterialCurrentStock materialCurrentStock = new MaterialCurrentStock(); + materialCurrentStock.setMaterialId(mId); + materialCurrentStock.setDepotId(depotId); + materialCurrentStock.setCurrentNumber(stock); + insertCurrentStockMaterialList.add(materialCurrentStock); + deleteCurrentStockMaterialIdList.add(mId); + materialDepotCurrentMap.put(materialDepotKey, materialDepotKey); + } + } + + private Map parseDepotToMap(List depotList) { + Map map = new HashMap<>(); + for(Depot depot: depotList) { + map.put(depot.getName(), depot.getId()); + } + return map; + } + + /** + * 缓存各个仓库的库存信息 + * @param src + * @param depotCount + * @param depotMap + * @param i + * @return + * @throws Exception + */ + private Map getStockMapCache(Sheet src, int depotCount, Map depotMap, int i) throws Exception { + Map stockMap = new HashMap<>(); + for(int j = 1; j<= depotCount; j++) { + int col = 26 + j; + if(col < src.getColumns()){ + String depotName = ExcelUtils.getContent(src, 1, col); //获取仓库名称 + if(StringUtil.isNotEmpty(depotName)) { + Long depotId = depotMap.get(depotName); + if(depotId!=null && depotId!=0L){ + String stockStr = ExcelUtils.getContent(src, i, col); + if(StringUtil.isNotEmpty(stockStr)) { + stockMap.put(depotId, parseBigDecimalEx(stockStr)); + } + } + } + } + } + return stockMap; + } + + /** + * 批量校验excel中有无重复商品,是指名称、规格、型号、颜色、单位 + * @param mList + */ + public void batchCheckExistMaterialListByParam(List mList, String name, String standard, + String model, String color, String unit, String sku) { + for(MaterialWithInitStock material: mList){ + String materialSku = ""; + JSONObject materialExObj = material.getMaterialExObj(); + if(materialExObj!=null && materialExObj.get("basic")!=null) { + JSONObject basicObj = materialExObj.getJSONObject("basic"); + if(basicObj!=null && materialExObj.get("sku")!=null) { + materialSku = basicObj.getString("sku"); + } + } + if(name.equals(material.getName()) && + standard.equals(material.getStandard()) && + model.equals(material.getModel()) && + color.equals(material.getColor()) && + unit.equals(material.getUnit()) && + sku.equals(materialSku)) { + String info = name + "-" + standard + "-" + model + "-" + color + "-" + unit + "-" + sku; + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_EXCEL_IMPORT_EXIST_CODE, + String.format(ExceptionConstants.MATERIAL_EXCEL_IMPORT_EXIST_MSG, info)); + } + } + } + + /** + * 批量校验excel中有无重复条码(1-文档自身校验,2-和数据库里面的商品校验) + * @param mList + */ + public void batchCheckExistBarCodeByParam(List mList, + String barCode, String manyBarCode) throws Exception { + if(StringUtil.isNotEmpty(manyBarCode)) { + if(barCode.equals(manyBarCode)) { + //同一个商品的主副条码重复了,进行提醒 + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_EXCEL_IMPORT_BARCODE_EXIST_CODE, + String.format(ExceptionConstants.MATERIAL_EXCEL_IMPORT_BARCODE_EXIST_MSG, manyBarCode)); + } + //EXCEL中有副条码在系统中已存在(除自身商品之外) + int count = materialExtendService.getCountByManyBarCodeWithoutUs(manyBarCode, barCode); + if (count>0) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_EXCEL_IMPORT_MANY_BARCODE_EXIST_CODE, + String.format(ExceptionConstants.MATERIAL_EXCEL_IMPORT_MANY_BARCODE_EXIST_MSG, manyBarCode)); + } + } + for(MaterialWithInitStock material: mList){ + JSONObject materialExObj = material.getMaterialExObj(); + String basicBarCode = ""; + String otherBarCode = ""; + if(materialExObj.get("basic")!=null) { + JSONObject basicObj = materialExObj.getJSONObject("basic"); + basicBarCode = basicObj.getString("barCode"); + } + if(materialExObj.get("other")!=null) { + JSONObject otherObj = materialExObj.getJSONObject("other"); + otherBarCode = otherObj.getString("barCode"); + } + if(barCode.equals(basicBarCode) || barCode.equals(otherBarCode)){ + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_EXCEL_IMPORT_BARCODE_EXIST_CODE, + String.format(ExceptionConstants.MATERIAL_EXCEL_IMPORT_BARCODE_EXIST_MSG, barCode)); + } + if(StringUtil.isNotEmpty(manyBarCode)) { + if(manyBarCode.equals(basicBarCode) || manyBarCode.equals(otherBarCode)){ + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_EXCEL_IMPORT_BARCODE_EXIST_CODE, + String.format(ExceptionConstants.MATERIAL_EXCEL_IMPORT_BARCODE_EXIST_MSG, manyBarCode)); + } + } + } + } + + /** + * 给商品新增或更新条码与价格相关信息 + * @param materialExObj + * @param type + * @param defaultFlag + * @param mId + * @param user + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void insertOrUpdateMaterialExtend(JSONObject materialExObj, String type, String defaultFlag, Long mId, User user) throws Exception { + if(StringUtil.isExist(materialExObj.get(type))){ + String basicStr = materialExObj.getString(type); + MaterialExtend materialExtend = JSONObject.parseObject(basicStr, MaterialExtend.class); + materialExtend.setMaterialId(mId); + materialExtend.setDefaultFlag(defaultFlag); + materialExtend.setCreateTime(new Date()); + materialExtend.setUpdateTime(System.currentTimeMillis()); + materialExtend.setCreateSerial(user.getLoginName()); + materialExtend.setUpdateSerial(user.getLoginName()); + Long meId = 0L; + if(StringUtil.isNotEmpty(materialExtend.getSku())){ + //含sku的商品,特殊逻辑 + meId = materialExtendService.selectIdByMaterialIdAndBarCode(mId, materialExtend.getBarCode()); + List meList = materialExtendService.getListByMaterialIdAndDefaultFlagAndBarCode(mId, "1", materialExtend.getBarCode()); + if(meList.size() == 0) { + materialExtend.setDefaultFlag("1"); + } else { + materialExtend.setDefaultFlag("0"); + } + } else { + meId = materialExtendService.selectIdByMaterialIdAndDefaultFlag(mId, defaultFlag); + } + if(meId==0L){ + materialExtendMapper.insertSelective(materialExtend); + } else { + materialExtend.setId(meId); + materialExtendMapper.updateByPrimaryKeySelective(materialExtend); + //如果金额为空,此处单独置空 + materialExtendMapperEx.specialUpdatePrice(materialExtend); + } + } + } + + public String getBasicBarCode(MaterialWithInitStock m) { + String barCode = ""; + JSONObject materialExObj = m.getMaterialExObj(); + if(StringUtil.isExist(materialExObj.get("basic"))) { + String basicStr = materialExObj.getString("basic"); + MaterialExtend basicMaterialExtend = JSONObject.parseObject(basicStr, MaterialExtend.class); + barCode = basicMaterialExtend.getBarCode(); + } + return barCode; + } + + /** + * 根据条件返回产品列表 + * @param name + * @param standard + * @param model + * @param color + * @param unit + * @param unitId + * @return + */ + private List getMaterialListByParam(String name, String standard, String model, String color, String unit, Long unitId, String basicBarCode) throws Exception { + List list = new ArrayList<>(); + MaterialExample example = new MaterialExample(); + MaterialExample.Criteria criteria = example.createCriteria(); + criteria.andNameEqualTo(name); + if (StringUtil.isNotEmpty(model)) { + criteria.andModelEqualTo(model); + } + if (StringUtil.isNotEmpty(color)) { + criteria.andColorEqualTo(color); + } + if (StringUtil.isNotEmpty(standard)) { + criteria.andStandardEqualTo(standard); + } + if (StringUtil.isNotEmpty(unit)) { + criteria.andUnitEqualTo(unit); + } + if (unitId !=null) { + criteria.andUnitIdEqualTo(unitId); + } + criteria.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + list = materialMapper.selectByExample(example); + if(list.size()==0) { + //如果通过组合条件没有查到该商品,则通过条码再查一次 + MaterialExtend materialExtend = materialExtendService.getInfoByBarCode(basicBarCode); + if(materialExtend != null && materialExtend.getMaterialId()!=null) { + Material material = new Material(); + material.setId(materialExtend.getMaterialId()); + list.add(material); + } + } + return list; + } + + /** + * 写入初始库存 + * @param depotId + * @param mId + * @param stock + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void insertInitialStockByMaterialAndDepot(Long depotId, Long mId, BigDecimal stock, BigDecimal lowSafeStock, BigDecimal highSafeStock){ + MaterialInitialStock materialInitialStock = new MaterialInitialStock(); + materialInitialStock.setDepotId(depotId); + materialInitialStock.setMaterialId(mId); + stock = stock == null? BigDecimal.ZERO: stock; + materialInitialStock.setNumber(stock); + if(lowSafeStock!=null) { + materialInitialStock.setLowSafeStock(lowSafeStock); + } + if(highSafeStock!=null) { + materialInitialStock.setHighSafeStock(highSafeStock); + } + materialInitialStockMapper.insertSelective(materialInitialStock); //存入初始库存 + } + + /** + * 写入当前库存 + * @param depotId + * @param mId + * @param stock + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void insertCurrentStockByMaterialAndDepot(Long depotId, Long mId, BigDecimal stock){ + MaterialCurrentStock materialCurrentStock = new MaterialCurrentStock(); + materialCurrentStock.setDepotId(depotId); + materialCurrentStock.setMaterialId(mId); + materialCurrentStock.setCurrentNumber(stock); + materialCurrentStockMapper.insertSelective(materialCurrentStock); //存入初始库存 + } + + /** + * 批量删除初始库存 + * @param mIdList + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void batchDeleteInitialStockByMaterialList(List mIdList){ + MaterialInitialStockExample example = new MaterialInitialStockExample(); + example.createCriteria().andMaterialIdIn(mIdList); + materialInitialStockMapper.deleteByExample(example); + } + + /** + * 批量删除当前库存 + * @param mIdList + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void batchDeleteCurrentStockByMaterialList(List mIdList){ + MaterialCurrentStockExample example = new MaterialCurrentStockExample(); + example.createCriteria().andMaterialIdIn(mIdList); + materialCurrentStockMapper.deleteByExample(example); + } + + public List getMaterialEnableSerialNumberList(String q, Integer offset, Integer rows)throws Exception { + List list =null; + try{ + list= materialMapperEx.getMaterialEnableSerialNumberList(q, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public Long getMaterialEnableSerialNumberCount(String q)throws Exception { + Long count =null; + try{ + count= materialMapperEx.getMaterialEnableSerialNumberCount(q); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return count; + } + + public BigDecimal parseBigDecimalEx(String str) throws Exception{ + if(!StringUtil.isEmpty(str)) { + return new BigDecimal(str); + } else { + return null; + } + } + + public BigDecimal parsePrice(String price, String ratio) throws Exception{ + if(StringUtil.isEmpty(price) || StringUtil.isEmpty(ratio)) { + return BigDecimal.ZERO; + } else { + BigDecimal pr=new BigDecimal(price); + BigDecimal r=new BigDecimal(ratio); + return pr.multiply(r); + } + } + + /** + * 根据商品获取初始库存-多仓库 + * @param depotList + * @param materialId + * @return + */ + public BigDecimal getInitStockByMidAndDepotList(List depotList, Long materialId) { + BigDecimal stock = BigDecimal.ZERO; + MaterialInitialStockExample example = new MaterialInitialStockExample(); + if(depotList!=null && depotList.size()>0) { + example.createCriteria().andMaterialIdEqualTo(materialId).andDepotIdIn(depotList) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } else { + example.createCriteria().andMaterialIdEqualTo(materialId) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } + List list = materialInitialStockMapper.selectByExample(example); + if(list!=null && list.size()>0) { + for(MaterialInitialStock ms: list) { + if(ms!=null && null!=ms.getNumber()) { + stock = stock.add(ms.getNumber()); + } + } + } + return stock; + } + + /** + * 根据商品和仓库获取初始库存 + * @param materialId + * @param depotId + * @return + */ + public BigDecimal getInitStock(Long materialId, Long depotId) { + BigDecimal stock = BigDecimal.ZERO; + MaterialInitialStockExample example = new MaterialInitialStockExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andDepotIdEqualTo(depotId) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialInitialStockMapper.selectByExample(example); + if(list!=null && list.size()>0) { + stock = list.get(0).getNumber(); + } + return stock; + } + + /** + * 根据商品和仓库获取当前库存 + * @param materialId + * @param depotId + * @return + */ + public BigDecimal getCurrentStockByMaterialIdAndDepotId(Long materialId, Long depotId) { + BigDecimal stock = BigDecimal.ZERO; + MaterialCurrentStockExample example = new MaterialCurrentStockExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andDepotIdEqualTo(depotId) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialCurrentStockMapper.selectByExample(example); + if(list!=null && list.size()>0) { + stock = list.get(0).getCurrentNumber(); + } else { + stock = getInitStock(materialId,depotId); + } + return stock; + } + + /** + * 根据商品列表获取初始库存Map + * @param list + * @return + */ + public Map getInitialStockMapByMaterialList(List list) { + Map map = new HashMap<>(); + List materialIdList = new ArrayList<>(); + for(MaterialVo4Unit materialVo4Unit: list) { + materialIdList.add(materialVo4Unit.getId()); + } + List mcsList = materialInitialStockMapperEx.getInitialStockMapByIdList(materialIdList); + for(MaterialInitialStock materialInitialStock: mcsList) { + map.put(materialInitialStock.getMaterialId(), materialInitialStock.getNumber()); + } + return map; + } + + /** + * 根据商品列表获取当前库存Map + * @param list + * @return + */ + public Map getCurrentStockMapByMaterialList(List list) { + Map map = new HashMap<>(); + List materialIdList = new ArrayList<>(); + for(MaterialVo4Unit materialVo4Unit: list) { + materialIdList.add(materialVo4Unit.getId()); + } + List mcsList = materialCurrentStockMapperEx.getCurrentStockMapByIdList(materialIdList); + for(MaterialCurrentStock materialCurrentStock: mcsList) { + map.put(materialCurrentStock.getMaterialId(), materialCurrentStock.getCurrentNumber()); + } + return map; + } + + /** + * 根据商品和仓库获取安全库存信息 + * @param materialId + * @param depotId + * @return + */ + public MaterialInitialStock getSafeStock(Long materialId, Long depotId) { + MaterialInitialStock materialInitialStock = new MaterialInitialStock(); + MaterialInitialStockExample example = new MaterialInitialStockExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andDepotIdEqualTo(depotId) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = materialInitialStockMapper.selectByExample(example); + if(list!=null && list.size()>0) { + materialInitialStock = list.get(0); + } + return materialInitialStock; + } + + public List getMaterialByMeId(Long meId) { + List result = new ArrayList(); + try{ + if(meId!=null) { + result= materialMapperEx.getMaterialByMeId(meId); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public String getMaxBarCode() { + List barCodeOldList = materialMapperEx.getBarCodeList(); + // 使用 Stream API 处理条码列表 + // 使用 BigInteger 处理可能的大数字 + Optional maxBarcode = barCodeOldList.stream() + .filter(StringUtil::isNumeric) // 过滤掉非数字条码 + .map(BigInteger::new) // 使用 BigInteger 构造函数 + .max(Comparator.naturalOrder()); // 获取最大值 + // 如果存在最大值,返回它;否则返回 1000L + BigInteger maxBarCodeOld = maxBarcode.orElse(new BigInteger("1000")); + return maxBarCodeOld.toString(); + } + + public List getMaterialNameList() { + return materialMapperEx.getMaterialNameList(); + } + + public List getMaterialByBarCode(String barCode) { + String [] barCodeArray=barCode.split(","); + return materialMapperEx.getMaterialByBarCode(barCodeArray); + } + + public List getMaterialByBarCodeAndWithOutMId(String barCode, Long mId) { + String [] barCodeArray=barCode.split(","); + return materialMapperEx.getMaterialByBarCodeAndWithOutMId(barCodeArray, mId); + } + + public List getInitialStockWithMaterial(List depotList) { + return materialMapperEx.getInitialStockWithMaterial(depotList); + } + + public List getListWithStock(String priceLimit, List depotList, List idList, String position, String materialParam, + Boolean moveAvgPriceFlag, Integer zeroStock, String column, String order, + Integer offset, Integer rows, HttpServletRequest request) throws Exception { + Map initialStockMap = new HashMap<>(); + List initialStockList = getInitialStockWithMaterial(depotList); + for (MaterialInitialStockWithMaterial mism: initialStockList) { + initialStockMap.put(mism.getMaterialId(), mism.getNumber()); + } + List dataList = materialMapperEx.getListWithStock(depotList, idList, position, materialParam, zeroStock, column, order, offset, rows); + for(MaterialVo4Unit item: dataList) { + if(moveAvgPriceFlag) { + item.setPurchaseDecimal(item.getCurrentUnitPrice()); + item.setCurrentStockPrice(item.getCurrentStockMovePrice()); + } + item.setPurchaseDecimal(roleService.parseStockPriceByLimit(item.getPurchaseDecimal(), priceLimit, request)); + item.setCurrentStockPrice(roleService.parseStockPriceByLimit(item.getCurrentStockPrice(), priceLimit, request)); + item.setUnitName(null!=item.getUnitId()?item.getUnitName() + "[多单位]":item.getUnitName()); + item.setInitialStock(null!=initialStockMap.get(item.getId())?initialStockMap.get(item.getId()):BigDecimal.ZERO); + item.setBigUnitStock(getBigUnitStock(item.getCurrentStock(), item.getUnitId())); + if(fileUploadType == 2) { + item.setImgSmall("small"); + item.setImgLarge("large"); + } + } + return dataList; + } + + public int getListWithStockCount(String priceLimit, List depotList, List idList, String position, String materialParam, Integer zeroStock) { + return materialMapperEx.getListWithStockCount(depotList, idList, position, materialParam, zeroStock); + } + + public MaterialVo4Unit getTotalStockAndPrice(String priceLimit, List depotList, List idList, String position, String materialParam, HttpServletRequest request) throws Exception { + MaterialVo4Unit res = materialMapperEx.getTotalStockAndPrice(depotList, idList, position, materialParam); + res.setCurrentStockMovePrice(roleService.parseStockPriceByLimit(res.getCurrentStockMovePrice(), priceLimit, request)); + res.setCurrentStockPrice(roleService.parseStockPriceByLimit(res.getCurrentStockPrice(), priceLimit, request)); + return res; + } + + /** + * 将小单位的库存换算为大单位的库存 + * @param stock + * @param unitId + * @return + * @throws Exception + */ + public String getBigUnitStock(BigDecimal stock, Long unitId) throws Exception { + String bigUnitStock = ""; + if(null!= unitId) { + Unit unit = unitService.getUnit(unitId); + if(unit.getRatio()!=null && unit.getRatio().compareTo(BigDecimal.ZERO)!=0 && stock!=null) { + bigUnitStock = stock.divide(unit.getRatio(),2,BigDecimal.ROUND_HALF_UP) + unit.getOtherUnit(); + } + } + return bigUnitStock; + } + + /** + * 构造扩展信息 + * @param mpArr + * @param m + * @return + */ + public String getMaterialOtherByParam(String[] mpArr, MaterialVo4Unit m) { + String materialOther = ""; + for (int i = 0; i < mpArr.length; i++) { + if (mpArr[i].equals("自定义1")) { + materialOther = materialOther + ((m.getOtherField1() == null || m.getOtherField1().equals("")) ? "" : "(" + m.getOtherField1() + ")"); + } + if (mpArr[i].equals("自定义2")) { + materialOther = materialOther + ((m.getOtherField2() == null || m.getOtherField2().equals("")) ? "" : "(" + m.getOtherField2() + ")"); + } + if (mpArr[i].equals("自定义3")) { + materialOther = materialOther + ((m.getOtherField3() == null || m.getOtherField3().equals("")) ? "" : "(" + m.getOtherField3() + ")"); + } + } + return materialOther; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetMaterialCurrentStock(String ids, List depotList) throws Exception { + int res = 0; + List idList = StringUtil.strToLongList(ids); + for(Long mId: idList) { + BigDecimal currentUnitPrice = materialCurrentStockMapperEx.getCurrentUnitPriceByMId(mId); + for(Depot depot: depotList) { + depotItemService.updateCurrentStockFun(mId, depot.getId(), currentUnitPrice); + res = 1; + } + } + return res; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetMaterialCurrentUnitPrice(String ids) throws Exception { + int res = 0; + List idList = StringUtil.strToLongList(ids); + for(Long mId: idList) { + DepotItem depotItem = new DepotItem(); + depotItem.setMaterialId(mId); + depotItemService.updateCurrentUnitPrice(depotItem); + res = 1; + } + return res; + } + + public int batchUpdate(JSONObject jsonObject) { + String ids = jsonObject.getString("ids"); + String materialStr = jsonObject.getString("material"); + List idList = StringUtil.strToLongList(ids); + Material material = JSONObject.parseObject(materialStr, Material.class); + MaterialExample example = new MaterialExample(); + example.createCriteria().andIdIn(idList).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + return materialMapper.updateByExampleSelective(material, example); + } + + public MaterialExtend getMaterialExtendBySerialNumber(String serialNumber) { + return materialMapperEx.getMaterialExtendBySerialNumber(serialNumber); + } + + public BigDecimal getCurrentUnitPriceByMaterialId(Long materialId) { + return materialCurrentStockMapperEx.getCurrentUnitPriceByMId(materialId); + } + + /** + * 构造多属性数组字符串 + * @param obj + * @return + */ + public String parseAttributeBySku(JSONObject obj) { + if(obj!=null) { + JSONObject attributeObj = new JSONObject(); + JSONArray manySku = obj.getJSONArray("manySku"); + JSONArray skuOne = obj.getJSONArray("skuOne"); + JSONArray skuTwo = obj.getJSONArray("skuTwo"); + JSONArray skuThree = obj.getJSONArray("skuThree"); + attributeObj.put("manySku", manySku); + attributeObj.put("skuOne", skuOne); + attributeObj.put("skuTwo", skuTwo); + attributeObj.put("skuThree", skuThree); + return attributeObj.toJSONString(); + } else { + return null; + } + } + + public List getMaterialDepotStock(String depotIds, Long mId, HttpServletRequest request) throws Exception { + String[] depotIdArr = null; + if(StringUtil.isNotEmpty(depotIds)) { + depotIdArr = depotIds.split(","); + } + boolean moveAvgPriceFlag = systemConfigService.getMoveAvgPriceFlag(); + List depotList = depotService.parseDepotListByArr(depotIdArr); + Long[] depotIdArray = StringUtil.listToLongArray(depotList); + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + PageUtils.startPage(); + List list = materialMapperEx.getMaterialDepotStock(depotIdArray, mId); + for (MaterialDepotStock item: list) { + if(moveAvgPriceFlag) { + item.setUnitPrice(item.getCurrentUnitPrice()); + } else { + item.setUnitPrice(item.getPurchaseDecimal()); + } + item.setUnitPrice(roleService.parseStockPriceByLimit(item.getUnitPrice(), priceLimit, request)); + if(item.getCurrentNumber()!=null && item.getUnitPrice()!=null ) { + item.setAllPrice(item.getCurrentNumber().multiply(item.getUnitPrice())); + } + } + return list; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/MsgService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/MsgService.java new file mode 100644 index 0000000..d679587 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/MsgService.java @@ -0,0 +1,320 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.Msg; +import com.reallin.smt.datasource.entities.MsgEx; +import com.reallin.smt.datasource.entities.MsgExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.MsgMapper; +import com.reallin.smt.datasource.mappers.MsgMapperEx; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import com.reallin.smt.utils.Tools; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import static com.reallin.smt.utils.Tools.getCenternTime; + +@Service +public class MsgService { + private Logger logger = LoggerFactory.getLogger(MsgService.class); + @Resource + private MsgMapper msgMapper; + + @Resource + private MsgMapperEx msgMapperEx; + + @Resource + private DepotHeadService depotHeadService; + + @Resource + private UserService userService; + + @Resource + private LogService logService; + + public Msg getMsg(long id)throws Exception { + Msg result=null; + try{ + result=msgMapper.selectByPrimaryKey(id); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE, ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return result; + } + + public List getMsg()throws Exception { + MsgExample example = new MsgExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=msgMapper.selectByExample(example); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE, ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return list; + } + + public List select(String name)throws Exception { + List list=null; + try{ + User userInfo = userService.getCurrentUser(); + if(!BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + PageUtils.startPage(); + list = msgMapperEx.selectByConditionMsg(userInfo.getId(), name); + if (null != list) { + for (MsgEx msgEx : list) { + if (msgEx.getCreateTime() != null) { + msgEx.setCreateTimeStr(getCenternTime(msgEx.getCreateTime())); + } + } + } + } else { + list = new ArrayList<>(); + } + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE, ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertMsg(JSONObject obj, HttpServletRequest request)throws Exception { + Msg msg = JSONObject.parseObject(obj.toJSONString(), Msg.class); + int result=0; + try{ + User userInfo = userService.getCurrentUser(); + if(!BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + msg.setCreateTime(new Date()); + msg.setStatus("1"); + result=msgMapper.insertSelective(msg); + logService.insertLog("消息", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(msg.getMsgTitle()).toString(), request); + } + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE, ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateMsg(JSONObject obj, HttpServletRequest request) throws Exception{ + Msg msg = JSONObject.parseObject(obj.toJSONString(), Msg.class); + int result=0; + try{ + result=msgMapper.updateByPrimaryKeySelective(msg); + logService.insertLog("消息", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(msg.getMsgTitle()).toString(), request); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE, ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteMsg(Long id, HttpServletRequest request)throws Exception { + int result=0; + try{ + result=msgMapper.deleteByPrimaryKey(id); + logService.insertLog("消息", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(id).toString(), request); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE, ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMsg(String ids, HttpServletRequest request) throws Exception{ + List idList = StringUtil.strToLongList(ids); + MsgExample example = new MsgExample(); + example.createCriteria().andIdIn(idList); + int result=0; + try{ + result=msgMapper.deleteByExample(example); + logService.insertLog("消息", "批量删除,id集:" + ids, request); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE, ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + MsgExample example = new MsgExample(); + example.createCriteria().andIdNotEqualTo(id).andMsgTitleEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= msgMapper.selectByExample(example); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE, ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return list==null?0:list.size(); + } + + /** + * create by: qiankunpingtai + * 逻辑删除角色信息 + * create time: 2019/3/28 15:44 + * @Param: ids + * @return int + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMsgByIds(String ids) throws Exception{ + logService.insertLog("序列号", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + String [] idArray=ids.split(","); + int result=0; + try{ + result=msgMapperEx.batchDeleteMsgByIds(idArray); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE, ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + return result; + } + + public List getMsgByStatus(String status)throws Exception { + List resList=new ArrayList<>(); + try{ + User userInfo = userService.getCurrentUser(); + if(!BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + MsgExample example = new MsgExample(); + example.createCriteria().andStatusEqualTo(status).andUserIdEqualTo(userInfo.getId()) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("id desc"); + List list = msgMapper.selectByExample(example); + if (null != list) { + for (Msg msg : list) { + if (msg.getCreateTime() != null) { + MsgEx msgEx = new MsgEx(); + msgEx.setId(msg.getId()); + msgEx.setMsgTitle(msg.getMsgTitle()); + msgEx.setMsgContent(msg.getMsgContent()); + msgEx.setStatus(msg.getStatus()); + msgEx.setType(msg.getType()); + msgEx.setCreateTimeStr(Tools.getCenternTime(msg.getCreateTime())); + resList.add(msgEx); + } + } + } + } + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE, ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return resList; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void batchUpdateStatus(String ids, String status) throws Exception{ + List idList = StringUtil.strToLongList(ids); + Msg msg = new Msg(); + msg.setStatus(status); + MsgExample example = new MsgExample(); + example.createCriteria().andIdIn(idList); + try{ + msgMapper.updateByExampleSelective(msg, example); + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE, ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + } + + public Long getMsgCountByStatus(String status)throws Exception { + Long result=null; + try{ + User userInfo=userService.getCurrentUser(); + if(!BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + result = msgMapperEx.getMsgCountByStatus(status, userInfo.getId()); + } + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE, ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return result; + } + + public Integer getMsgCountByType(String type)throws Exception { + int msgCount = 0; + try{ + User userInfo = userService.getCurrentUser(); + if(!BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + MsgExample example = new MsgExample(); + example.createCriteria().andTypeEqualTo(type).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = msgMapper.selectByExample(example); + msgCount = list.size(); + } + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_READ_FAIL_CODE, ExceptionConstants.DATA_READ_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, + ExceptionConstants.DATA_READ_FAIL_MSG); + } + return msgCount; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void readAllMsg() throws Exception{ + try{ + User userInfo = userService.getCurrentUser(); + if(!BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + Msg msg = new Msg(); + msg.setStatus("2"); + MsgExample example = new MsgExample(); + example.createCriteria(); + msgMapper.updateByExampleSelective(msg, example); + } + }catch(Exception e){ + logger.error("异常码[{}],异常提示[{}],异常[{}]", + ExceptionConstants.DATA_WRITE_FAIL_CODE, ExceptionConstants.DATA_WRITE_FAIL_MSG,e); + throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE, + ExceptionConstants.DATA_WRITE_FAIL_MSG); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/OrgaUserRelService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/OrgaUserRelService.java new file mode 100644 index 0000000..190bc39 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/OrgaUserRelService.java @@ -0,0 +1,216 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.OrgaUserRel; +import com.reallin.smt.datasource.entities.OrgaUserRelExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.OrgaUserRelMapper; +import com.reallin.smt.datasource.mappers.OrgaUserRelMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/3/11 18:11 + */ +@Service +public class OrgaUserRelService { + private Logger logger = LoggerFactory.getLogger(OrganizationService.class); + + @Resource + private OrgaUserRelMapper orgaUserRelMapper; + @Resource + private OrgaUserRelMapperEx orgaUserRelMapperEx; + @Resource + private UserService userService; + @Resource + private OrganizationService organizationService; + @Resource + private LogService logService; + + public OrgaUserRel getOrgaUserRel(long id) throws Exception{ + return orgaUserRelMapper.selectByPrimaryKey(id); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertOrgaUserRel(JSONObject obj, HttpServletRequest request) throws Exception{ + OrgaUserRel orgaUserRel = JSONObject.parseObject(obj.toJSONString(), OrgaUserRel.class); + int result=0; + try{ + result=orgaUserRelMapper.insertSelective(orgaUserRel); + logService.insertLog("用户与部门关系", BusinessConstants.LOG_OPERATION_TYPE_ADD, request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateOrgaUserRel(JSONObject obj, HttpServletRequest request) throws Exception{ + OrgaUserRel orgaUserRel = JSONObject.parseObject(obj.toJSONString(), OrgaUserRel.class); + int result=0; + try{ + result=orgaUserRelMapper.updateByPrimaryKeySelective(orgaUserRel); + logService.insertLog("用户与部门关系", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(orgaUserRel.getId()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteOrgaUserRel(Long id, HttpServletRequest request)throws Exception { + int result=0; + try{ + result=orgaUserRelMapper.deleteByPrimaryKey(id); + logService.insertLog("用户与部门关系", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(id).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteOrgaUserRel(String ids, HttpServletRequest request)throws Exception { + List idList = StringUtil.strToLongList(ids); + OrgaUserRelExample example = new OrgaUserRelExample(); + example.createCriteria().andIdIn(idList); + int result=0; + try{ + result=orgaUserRelMapper.deleteByExample(example); + logService.insertLog("用户与部门关系", "批量删除,id集:" + ids, request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + /** + * create by: cjl + * description: + * 新增部门用户关联关系,反显id + * create time: 2019/3/12 9:40 + * @Param: orgaUserRel + * @return void + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public OrgaUserRel addOrgaUserRel(OrgaUserRel orgaUserRel) throws Exception{ + Date date = new Date(); + User userInfo=userService.getCurrentUser(); + //创建时间 + if(orgaUserRel.getCreateTime()==null){ + orgaUserRel.setCreateTime(date); + } + //创建人 + if(orgaUserRel.getCreator()==null){ + orgaUserRel.setCreator(userInfo==null?null:userInfo.getId()); + } + //更新时间 + if(orgaUserRel.getUpdateTime()==null){ + orgaUserRel.setUpdateTime(date); + } + //更新人 + if(orgaUserRel.getUpdater()==null){ + orgaUserRel.setUpdater(userInfo==null?null:userInfo.getId()); + } + orgaUserRel.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + int result=0; + try{ + result=orgaUserRelMapperEx.addOrgaUserRel(orgaUserRel); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + if(result>0){ + return orgaUserRel; + } + return null; + } + /** + * create by: cjl + * description: + * 更新部门用户关联关系 + * create time: 2019/3/12 9:40 + * @Param: orgaUserRel + * @return void + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public OrgaUserRel updateOrgaUserRel(OrgaUserRel orgaUserRel) throws Exception{ + User userInfo=userService.getCurrentUser(); + //更新时间 + if(orgaUserRel.getUpdateTime()==null){ + orgaUserRel.setUpdateTime(new Date()); + } + //更新人 + if(orgaUserRel.getUpdater()==null){ + orgaUserRel.setUpdater(userInfo==null?null:userInfo.getId()); + } + int result=0; + try{ + result=orgaUserRelMapperEx.updateOrgaUserRel(orgaUserRel); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + if(result>0){ + return orgaUserRel; + } + return null; + } + + /** + * 根据用户id获取用户id列表 + * @param userId + * @return + * @throws Exception + */ + public String getUserIdListByUserId(Long userId) throws Exception{ + String users = ""; + OrgaUserRelExample example = new OrgaUserRelExample(); + example.createCriteria().andUserIdEqualTo(userId); + List list = orgaUserRelMapper.selectByExample(example); + if(list!=null && list.size()>0) { + OrgaUserRel our = list.get(0); + List userIdList = getUserIdListByOrgId(our.getOrgaId()); + for(Long u: userIdList){ + users = users + u + ","; + } + if(users.length()>0){ + users = users.substring(0,users.length()-1); + } + } + return users; + } + + /** + * 根据组织id获取所属的用户id列表(包含组织的递归) + * @param orgId + * @return + */ + public List getUserIdListByOrgId(Long orgId) { + List orgIdList = organizationService.getOrgIdByParentId(orgId); + List userIdList = new ArrayList(); + OrgaUserRelExample example = new OrgaUserRelExample(); + if(orgIdList!=null && orgIdList.size()>0) { + example.createCriteria().andOrgaIdIn(orgIdList).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } else { + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + } + List list = orgaUserRelMapper.selectByExample(example); + if(list!=null && list.size()>0) { + for(OrgaUserRel our: list) { + userIdList.add(our.getUserId()); + } + } + return userIdList; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/OrganizationService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/OrganizationService.java new file mode 100644 index 0000000..1cf326f --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/OrganizationService.java @@ -0,0 +1,258 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.Organization; +import com.reallin.smt.datasource.entities.OrganizationExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.OrganizationMapper; +import com.reallin.smt.datasource.mappers.OrganizationMapperEx; +import com.reallin.smt.datasource.vo.TreeNode; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @Author: jsh + */ +@Service +public class OrganizationService { + private Logger logger = LoggerFactory.getLogger(OrganizationService.class); + + @Resource + private OrganizationMapper organizationMapper; + @Resource + private OrganizationMapperEx organizationMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; + + public Organization getOrganization(long id) throws Exception { + return organizationMapper.selectByPrimaryKey(id); + } + + public List getOrganizationListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andIdIn(idList); + list = organizationMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertOrganization(JSONObject obj, HttpServletRequest request)throws Exception { + Organization organization = JSONObject.parseObject(obj.toJSONString(), Organization.class); + organization.setCreateTime(new Date()); + organization.setUpdateTime(new Date()); + int result=0; + try{ + result=organizationMapper.insertSelective(organization); + logService.insertLog("部门", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(organization.getOrgAbr()).toString(),request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateOrganization(JSONObject obj, HttpServletRequest request)throws Exception { + Organization organization = JSONObject.parseObject(obj.toJSONString(), Organization.class); + organization.setUpdateTime(new Date()); + int result=0; + try{ + result=organizationMapperEx.editOrganization(organization); + logService.insertLog("部门", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(organization.getOrgAbr()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteOrganization(Long id, HttpServletRequest request)throws Exception { + return batchDeleteOrganizationByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteOrganization(String ids, HttpServletRequest request)throws Exception { + return batchDeleteOrganizationByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteOrganizationByIds(String ids) throws Exception{ + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getOrganizationListByIds(ids); + for(Organization organization: list){ + sb.append("[").append(organization.getOrgAbr()).append("]"); + } + logService.insertLog("部门", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + int result=0; + List organList = organizationMapperEx.getOrganizationByParentIds(idArray); + if(organList!=null && organList.size()>0) { + //如果存在子部门则不能删除 + logger.error("异常码[{}],异常提示[{}]", + ExceptionConstants.ORGANIZATION_CHILD_NOT_ALLOWED_DELETE_CODE,ExceptionConstants.ORGANIZATION_CHILD_NOT_ALLOWED_DELETE_MSG); + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_CHILD_NOT_ALLOWED_DELETE_CODE, + ExceptionConstants.ORGANIZATION_CHILD_NOT_ALLOWED_DELETE_MSG); + } else { + result=organizationMapperEx.batchDeleteOrganizationByIds( + new Date(),userInfo==null?null:userInfo.getId(),idArray); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andIdNotEqualTo(id).andOrgAbrEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= organizationMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public List getOrganizationTree(Long id)throws Exception { + List list=null; + try{ + list=organizationMapperEx.getNodeTree(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List findById(Long id) throws Exception{ + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andIdEqualTo(id); + List list=null; + try{ + list=organizationMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List findByParentId(Long parentId)throws Exception { + List list=null; + if(parentId!=null){ + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andIdEqualTo(parentId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + try{ + list=organizationMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + } + return list; + } + + public List findByOrgNo(String orgNo)throws Exception { + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andOrgNoEqualTo(orgNo).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=organizationMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + /** + * create by: cjl + * description: + * 检查部门编号是否已经存在 + * create time: 2019/3/7 10:01 + * @Param: orgNo + * @return void + */ + public void checkOrgNoIsExists(String orgNo,Long id)throws Exception { + List orgList=findByOrgNo(orgNo); + if(orgList!=null&&orgList.size()>0){ + if(orgList.size()>1){ + logger.error("异常码[{}],异常提示[{}],参数,orgNo[{}]", + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE,ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG,orgNo); + //获取的数据条数大于1,部门编号已存在 + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE, + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG); + } + if(id!=null){ + if(!orgList.get(0).getId().equals(id)){ + //数据条数等于1,但是和编辑的数据的id不相同 + logger.error("异常码[{}],异常提示[{}],参数,orgNo[{}],id[{}]", + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE,ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG,orgNo,id); + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE, + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG); + } + }else{ + logger.error("异常码[{}],异常提示[{}],参数,orgNo[{}]", + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE,ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG,orgNo); + //数据条数等于1,但此时是新增 + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE, + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG); + } + } + + } + + /** + * 根据父级id递归获取子集组织id + * @return + */ + public List getOrgIdByParentId(Long orgId) { + List idList = new ArrayList<>(); + if(orgId!=null) { + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andIdEqualTo(orgId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List orgList = organizationMapper.selectByExample(example); + if(orgList!=null && !orgList.isEmpty()) { + idList.add(orgId); + getOrgIdByParentNo(idList, orgList.get(0).getId()); + } + } + return idList; + } + + /** + * 根据组织编号递归获取下级编号 + * @param id + * @return + */ + public void getOrgIdByParentNo(List idList,Long id) { + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andParentIdEqualTo(id).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List orgList = organizationMapper.selectByExample(example); + if(orgList!=null && orgList.size()>0) { + for(Organization o: orgList) { + idList.add(o.getId()); + getOrgIdByParentNo(idList, o.getId()); + } + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/PackBomService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/PackBomService.java new file mode 100644 index 0000000..dd7d3a5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/PackBomService.java @@ -0,0 +1,306 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.MaterialVo4Unit; +import com.reallin.smt.datasource.entities.PackBom; +import com.reallin.smt.datasource.entities.PackBomItem; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.PackBomMapper; +import com.reallin.smt.datasource.mappers.ProductionOrderMapper; +import com.reallin.smt.datasource.vo.PackBomVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 生产方案Service + */ +@Service +public class PackBomService { + private Logger logger = LoggerFactory.getLogger(PackBomService.class); + + @Resource + private PackBomMapper packBomMapper; + + @Resource + private ProductionOrderMapper productionOrderMapper; + + @Resource + private UserService userService; + + @Resource + private LogService logService; + + @Resource + private MaterialService materialService; + + public PackBom getPackBom(Long id) throws Exception { + PackBom result = null; + try { + result = packBomMapper.selectByPrimaryKey(id); + } catch (Exception e) { + JshException.readFail(logger, e); + } + return result; + } + + public List select(String bomNumber, String bomName, + String outputMaterialParam, Boolean enabled) throws Exception { + List list = null; + try { + PageUtils.startPage(); + list = packBomMapper.selectList(bomNumber, bomName, outputMaterialParam, enabled); + } catch (Exception e) { + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int addPackBom(JSONObject obj, HttpServletRequest request) throws Exception { + PackBom packBom = JSONObject.parseObject(obj.toJSONString(), PackBom.class); + int result = 0; + try { + //校验编号是否重复 + if (checkNumberExist(0L, packBom.getBomNumber()) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "生产方案编号已存在"); + } + normalizeProductionBom(packBom); + checkPackBom(packBom); + User userInfo = userService.getCurrentUser(); + packBom.setCreator(userInfo == null ? null : userInfo.getId()); + packBom.setCreateTime(new Date()); + if (packBom.getEnabled() == null) { + packBom.setEnabled(true); + } + result = packBomMapper.insertSelective(packBom); + //保存组成物料明细 + saveItems(packBom.getId(), obj, request); + logService.insertLog("生产方案", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(packBom.getBomNumber()).toString(), request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updatePackBom(JSONObject obj, HttpServletRequest request) throws Exception { + PackBom packBom = JSONObject.parseObject(obj.toJSONString(), PackBom.class); + int result = 0; + try { + if (checkNumberExist(packBom.getId(), packBom.getBomNumber()) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "生产方案编号已存在"); + } + normalizeProductionBom(packBom); + checkPackBom(packBom); + result = packBomMapper.updateByPrimaryKeySelective(packBom); + //重新保存组成物料明细 + packBomMapper.batchDeleteItemsByBomId(packBom.getId()); + saveItems(packBom.getId(), obj, request); + logService.insertLog("生产方案", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(packBom.getBomNumber()).toString(), request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 校验必填项 + */ + private void checkPackBom(PackBom packBom) { + if (packBom.getOutputMaterialId() == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请选择生产成品"); + } + } + + /** + * 新生产模型只有一个成品。旧 product_* 字段保留并同步成相同值,兼容历史表结构。 + */ + private void normalizeProductionBom(PackBom packBom) { + packBom.setProductMaterialId(packBom.getOutputMaterialId()); + packBom.setProductMaterialExtendId(packBom.getOutputMaterialExtendId()); + packBom.setProductSku(packBom.getOutputSku()); + packBom.setOutputNumber(BigDecimal.ONE); + } + + /** + * 保存组成物料明细 + */ + private void saveItems(Long bomId, JSONObject obj, HttpServletRequest request) throws Exception { + JSONArray rows = obj.getJSONArray("rows"); + if (rows == null || rows.size() == 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请至少添加一种组成物料"); + } + List itemList = new ArrayList<>(); + for (int i = 0; i < rows.size(); i++) { + JSONObject itemObj = rows.getJSONObject(i); + // 可编辑表格会给新行生成仅供前端使用的临时 id,可能超过 Java Long 范围。 + // 明细保存时统一由数据库生成主键,不解析也不复用前端临时 id。 + itemObj.remove("id"); + PackBomItem item = JSONObject.parseObject(itemObj.toJSONString(), PackBomItem.class); + if (item.getMaterialId() == null) { + String barCode = itemObj.getString("barCode"); + List materialList = materialService.getMaterialByBarCode(barCode); + if (materialList == null || materialList.size() == 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "第" + (i + 1) + "行组成物料条码不存在:" + barCode); + } + MaterialVo4Unit material = materialList.get(0); + item.setMaterialId(material.getId()); + item.setMaterialExtendId(material.getMeId()); + item.setMaterialSku(material.getSku()); + if (item.getUnit() == null || "".equals(item.getUnit())) { + item.setUnit(material.getCommodityUnit()); + } + } + if (item.getQuantity() == null || item.getQuantity().compareTo(BigDecimal.ZERO) <= 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "第" + (i + 1) + "行组成比例必须大于0"); + } + if (item.getMaterialId().equals(obj.getLong("outputMaterialId"))) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "第" + (i + 1) + "行组成物料不能与生产成品相同"); + } + item.setBomId(bomId); + item.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + itemList.add(item); + } + if (itemList.size() > 0) { + packBomMapper.batchInsertItems(itemList); + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deletePackBom(Long id, HttpServletRequest request) throws Exception { + return batchDeletePackBomByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeletePackBom(String ids, HttpServletRequest request) throws Exception { + return batchDeletePackBomByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeletePackBomByIds(String ids) throws Exception { + int result = 0; + try { + String[] idArray = ids.split(","); + //校验是否被工单引用 + if (productionOrderMapper.checkBomReferenced(idArray) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "存在工单引用了该生产方案,无法删除"); + } + User userInfo = userService.getCurrentUser(); + result = packBomMapper.batchDeleteByIds(new Date(), userInfo == null ? null : userInfo.getId(), idArray); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + public int checkNumberExist(Long id, String bomNumber) throws Exception { + return packBomMapper.checkNumberExist(id, bomNumber); + } + + /** + * 获取生产方案详情(主表+组成物料明细) + */ + public JSONObject getPackBomDetail(Long id) throws Exception { + JSONObject result = new JSONObject(); + PackBom packBom = packBomMapper.selectByPrimaryKey(id); + //回显生产成品条码 + JSONObject bomObj = JSONObject.parseObject(JSONObject.toJSONString(packBom)); + MaterialVo4Unit output = getMaterialInfo(packBom == null ? null : packBom.getOutputMaterialExtendId()); + bomObj.put("outputBarCode", output == null ? "" : output.getmBarCode()); + result.put("bom", bomObj); + List itemList = packBomMapper.selectItemsByBomId(id); + JSONArray rows = new JSONArray(); + if (itemList != null) { + for (PackBomItem item : itemList) { + JSONObject itemObj = JSONObject.parseObject(JSONObject.toJSONString(item)); + MaterialVo4Unit info = getMaterialInfo(item.getMaterialExtendId()); + itemObj.put("barCode", info == null ? "" : info.getmBarCode()); + itemObj.put("name", info == null ? "" : info.getName()); + rows.add(itemObj); + } + } + result.put("rows", rows); + return result; + } + + /** + * 根据商品扩展id查询商品信息 + */ + private MaterialVo4Unit getMaterialInfo(Long materialExtendId) { + List list = materialService.getMaterialByMeId(materialExtendId); + if (list != null && list.size() > 0) { + return list.get(0); + } + return null; + } + + /** + * 根据生产成品查询启用的生产方案列表 + */ + public List getBomListByOutput(Long outputMaterialId) throws Exception { + List result = new ArrayList<>(); + try { + List list = packBomMapper.selectEnabledByOutputMaterialId(outputMaterialId); + if (list != null) { + for (PackBom bom : list) { + JSONObject bomObj = JSONObject.parseObject(JSONObject.toJSONString(bom)); + MaterialVo4Unit output = getMaterialInfo(bom.getOutputMaterialExtendId()); + bomObj.put("outputMaterialName", output == null ? "" : output.getName()); + bomObj.put("outputBarCode", output == null ? "" : output.getmBarCode()); + result.add(bomObj); + } + } + } catch (Exception e) { + JshException.readFail(logger, e); + } + return result; + } + + /** + * 批量设置启用状态 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids) throws Exception { + int result = 0; + try { + String[] idArray = ids.split(","); + for (String id : idArray) { + PackBom packBom = new PackBom(); + packBom.setId(Long.parseLong(id)); + packBom.setEnabled(status); + packBomMapper.updateByPrimaryKeySelective(packBom); + result++; + } + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/PersonService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/PersonService.java new file mode 100644 index 0000000..bcda07e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/PersonService.java @@ -0,0 +1,245 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.AccountHead; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.Person; +import com.reallin.smt.datasource.entities.PersonExample; +import com.reallin.smt.datasource.mappers.AccountHeadMapperEx; +import com.reallin.smt.datasource.mappers.DepotHeadMapperEx; +import com.reallin.smt.datasource.mappers.PersonMapper; +import com.reallin.smt.datasource.mappers.PersonMapperEx; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class PersonService { + private Logger logger = LoggerFactory.getLogger(PersonService.class); + + @Resource + private PersonMapper personMapper; + + @Resource + private PersonMapperEx personMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; + @Resource + private AccountHeadMapperEx accountHeadMapperEx; + @Resource + private DepotHeadMapperEx depotHeadMapperEx; + + public Person getPerson(long id)throws Exception { + Person result=null; + try{ + result=personMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getPersonListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + PersonExample example = new PersonExample(); + example.createCriteria().andIdIn(idList); + list = personMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getPerson()throws Exception { + PersonExample example = new PersonExample(); + example.createCriteria().andEnabledEqualTo(true).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=personMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name, String type)throws Exception { + List list=null; + try{ + PageUtils.startPage(); + list=personMapperEx.selectByConditionPerson(name, type); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertPerson(JSONObject obj, HttpServletRequest request)throws Exception { + Person person = JSONObject.parseObject(obj.toJSONString(), Person.class); + int result=0; + try{ + person.setEnabled(true); + result=personMapper.insertSelective(person); + logService.insertLog("经手人", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(person.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updatePerson(JSONObject obj, HttpServletRequest request)throws Exception { + Person person = JSONObject.parseObject(obj.toJSONString(), Person.class); + int result=0; + try{ + result=personMapper.updateByPrimaryKeySelective(person); + logService.insertLog("经手人", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(person.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deletePerson(Long id, HttpServletRequest request)throws Exception { + return batchDeletePersonByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeletePerson(String ids, HttpServletRequest request) throws Exception{ + return batchDeletePersonByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeletePersonByIds(String ids)throws Exception { + int result =0; + String [] idArray=ids.split(","); + //校验财务主表 tbl_accounthead + List accountHeadList =null; + try{ + accountHeadList=accountHeadMapperEx.getAccountHeadListByHandsPersonIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(accountHeadList!=null&&accountHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,HandsPersonIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //校验单据主表 tbl_depot_head + List depotHeadList =null; + try{ + depotHeadList=depotHeadMapperEx.getDepotHeadListByCreator(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(depotHeadList!=null&&depotHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,HandsPersonIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getPersonListByIds(ids); + for(Person person: list){ + sb.append("[").append(person.getName()).append("]"); + } + logService.insertLog("经手人", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + //删除经手人 + try{ + result=personMapperEx.batchDeletePersonByIds(idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name) throws Exception{ + PersonExample example = new PersonExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list =null; + try{ + list=personMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public Map getPersonMap() throws Exception { + List personList = getPerson(); + Map personMap = new HashMap<>(); + for(Person person : personList){ + personMap.put(person.getId(), person.getName()); + } + return personMap; + } + + public String getPersonByMapAndIds(Map personMap, String personIds)throws Exception { + List ids = StringUtil.strToLongList(personIds); + StringBuffer sb = new StringBuffer(); + for(Long id: ids){ + sb.append(personMap.get(id) + " "); + } + return sb.toString(); + } + + public List getPersonByType(String type)throws Exception { + PersonExample example = new PersonExample(); + example.createCriteria().andTypeEqualTo(type).andEnabledEqualTo(true) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id desc"); + List list =null; + try{ + list=personMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids)throws Exception { + logService.insertLog("经手人", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ENABLED).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List personIds = StringUtil.strToLongList(ids); + Person person = new Person(); + person.setEnabled(status); + PersonExample example = new PersonExample(); + example.createCriteria().andIdIn(personIds); + int result=0; + try{ + result = personMapper.updateByExampleSelective(person, example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/PlatformConfigService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/PlatformConfigService.java new file mode 100644 index 0000000..4a96686 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/PlatformConfigService.java @@ -0,0 +1,258 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.PlatformConfig; +import com.reallin.smt.datasource.entities.PlatformConfigExample; +import com.reallin.smt.datasource.mappers.PlatformConfigMapper; +import com.reallin.smt.datasource.mappers.PlatformConfigMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.HttpClient; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.mail.*; +import javax.mail.internet.*; +import java.util.List; +import java.util.Properties; + +@Service +public class PlatformConfigService { + private Logger logger = LoggerFactory.getLogger(PlatformConfigService.class); + + @Resource + private UserService userService; + + @Resource + private RedisService redisService; + + @Resource + private PlatformConfigMapper platformConfigMapper; + + @Resource + private PlatformConfigMapperEx platformConfigMapperEx; + + public PlatformConfig getPlatformConfig(long id)throws Exception { + PlatformConfig result=null; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = platformConfigMapper.selectByPrimaryKey(id); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getPlatformConfig()throws Exception { + PlatformConfigExample example = new PlatformConfigExample(); + example.createCriteria(); + List list=null; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + list = platformConfigMapper.selectByExample(example); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String platformKey)throws Exception { + List list=null; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + PageUtils.startPage(); + list = platformConfigMapperEx.selectByConditionPlatformConfig(platformKey); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertPlatformConfig(JSONObject obj, HttpServletRequest request) throws Exception{ + PlatformConfig platformConfig = JSONObject.parseObject(obj.toJSONString(), PlatformConfig.class); + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = platformConfigMapper.insertSelective(platformConfig); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updatePlatformConfig(JSONObject obj, HttpServletRequest request) throws Exception{ + PlatformConfig platformConfig = JSONObject.parseObject(obj.toJSONString(), PlatformConfig.class); + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = platformConfigMapper.updateByPrimaryKeySelective(platformConfig); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deletePlatformConfig(Long id, HttpServletRequest request)throws Exception { + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = platformConfigMapper.deleteByPrimaryKey(id); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeletePlatformConfig(String ids, HttpServletRequest request)throws Exception { + List idList = StringUtil.strToLongList(ids); + PlatformConfigExample example = new PlatformConfigExample(); + example.createCriteria().andIdIn(idList); + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = platformConfigMapper.deleteByExample(example); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int updatePlatformConfigByKey(String platformKey, String platformValue)throws Exception { + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + PlatformConfig platformConfig = new PlatformConfig(); + platformConfig.setPlatformValue(platformValue); + PlatformConfigExample example = new PlatformConfigExample(); + example.createCriteria().andPlatformKeyEqualTo(platformKey); + result = platformConfigMapper.updateByExampleSelective(platformConfig, example); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public PlatformConfig getInfoByKey(String platformKey)throws Exception { + PlatformConfig platformConfig = new PlatformConfig(); + try{ + if(platformKey.contains("aliOss") || platformKey.contains("weixin")) { + platformConfig = null; + } else { + PlatformConfigExample example = new PlatformConfigExample(); + example.createCriteria().andPlatformKeyEqualTo(platformKey); + List list=platformConfigMapper.selectByExample(example); + if(list!=null && list.size()>0){ + platformConfig = list.get(0); + } + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return platformConfig; + } + + /** + * 根据key查询平台信息-内部专用方法 + * @param platformKey + * @return + * @throws Exception + */ + public PlatformConfig getPlatformConfigByKey(String platformKey)throws Exception { + PlatformConfig platformConfig = new PlatformConfig(); + try{ + PlatformConfigExample example = new PlatformConfigExample(); + example.createCriteria().andPlatformKeyEqualTo(platformKey); + List list=platformConfigMapper.selectByExample(example); + if(list!=null && list.size()>0){ + platformConfig = list.get(0); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return platformConfig; + } + + /** + * 获取微信token信息 + * @return + * @throws Exception + */ + public String getAccessToken() throws Exception { + String accessToken = ""; + if(redisService.getCacheObject("weixinToken")==null) { + //1-获取token + String weixinToken = getPlatformConfigByKey("weixinUrl").getPlatformValue() + BusinessConstants.WEIXIN_TOKEN; + String weixinAppid = getPlatformConfigByKey("weixinAppid").getPlatformValue(); + String weixinSecret = getPlatformConfigByKey("weixinSecret").getPlatformValue(); + String url = weixinToken + "?grant_type=client_credential&appid=" + weixinAppid + "&secret=" + weixinSecret; + JSONObject jsonObject = HttpClient.httpGet(url); + logger.info("获取到微信token信息:{}", jsonObject); + if (jsonObject != null) { + accessToken = jsonObject.getString("access_token"); + Long expiresIn = jsonObject.getLong("expires_in") - 10; + if (StringUtil.isNotEmpty(accessToken)) { + //存redis + redisService.storageKeyWithTime("weixinToken", accessToken, expiresIn); + } + } + } else { + accessToken = redisService.getCacheObject("weixinToken"); + } + return accessToken; + } + + /** + * 发送邮件(该方法将在一个单独的线程中执行) + * @return + * @throws Exception + */ + @Async + public void sendEmail(String emailFrom, String emailAuthCode, String emailSmtpHost, String toEmail, String emailSubject, String emailBody) { + // 配置邮件服务器属性 + Properties properties = new Properties(); + properties.put("mail.smtp.host", emailSmtpHost); // 网易邮箱SMTP服务器 + properties.put("mail.smtp.port", "465"); // SSL端口 + properties.put("mail.smtp.auth", "true"); // 需要认证 + properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); // 使用SSL + properties.put("mail.smtp.socketFactory.port", "465"); // SSL端口 + try { + // 创建会话 + Session session = Session.getInstance(properties, new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(emailFrom, emailAuthCode); + } + }); + // 创建邮件 + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress(emailFrom)); + message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail)); + message.setSubject(emailSubject); + message.setText(emailBody); + // 发送邮件 + Transport.send(message); + logger.info("邮件发送成功!"); + } catch (Exception e) { + logger.error("邮件发送失败: " + e.getMessage()); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionOrderService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionOrderService.java new file mode 100644 index 0000000..1cfe9b6 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionOrderService.java @@ -0,0 +1,451 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.DepotItem; +import com.reallin.smt.datasource.entities.MaterialVo4Unit; +import com.reallin.smt.datasource.entities.PackBom; +import com.reallin.smt.datasource.entities.ProductionOrder; +import com.reallin.smt.datasource.entities.ProductionOrderLog; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.PackBomMapper; +import com.reallin.smt.datasource.mappers.ProductionOrderMapper; +import com.reallin.smt.datasource.vo.DepotHeadVo4List; +import com.reallin.smt.datasource.vo.ProductionOrderVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 生产工单Service + */ +@Service +public class ProductionOrderService { + private Logger logger = LoggerFactory.getLogger(ProductionOrderService.class); + + @Resource + private ProductionOrderMapper productionOrderMapper; + + @Resource + private PackBomMapper packBomMapper; + + @Resource + private UserService userService; + + @Resource + private LogService logService; + + @Resource + private DepotHeadService depotHeadService; + + @Resource + private DepotItemService depotItemService; + + @Resource + private MaterialService materialService; + + public ProductionOrder getProductionOrder(Long id) throws Exception { + ProductionOrder result = null; + try { + result = productionOrderMapper.selectByPrimaryKey(id); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.readFail(logger, e); + } + return result; + } + + public List select(String orderNumber, String sourceNumber, String status, + String priority, String productMaterialParam, + String beginTime, String endTime) throws Exception { + List list = null; + try { + PageUtils.startPage(); + list = productionOrderMapper.selectList(orderNumber, sourceNumber, status, priority, + productMaterialParam, beginTime, endTime); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.readFail(logger, e); + } + return list; + } + + /** + * 创建工单(手工备货/销售订单转工单) + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int createOrder(JSONObject obj, HttpServletRequest request) throws Exception { + ProductionOrder order = JSONObject.parseObject(obj.toJSONString(), ProductionOrder.class); + int result = 0; + try { + if (order.getOrderNumber() == null || "".equals(order.getOrderNumber())) { + order.setOrderNumber(generateOrderNumber()); + } + if (checkNumberExist(null, order.getOrderNumber()) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "工单编号已存在"); + } + normalizeProductionOrder(order); + checkOrder(order); + //来源销售订单时,回填来源单据id + if (BusinessConstants.SUB_TYPE_SALES_ORDER.equals(order.getSourceType())) { + List headList = depotHeadService.getDetailByNumber(order.getSourceNumber(), request); + if (headList == null || headList.size() == 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "销售订单不存在"); + } + //校验是否已转过工单 + List existList = productionOrderMapper.selectBySourceNumber(order.getSourceNumber()); + if (existList != null && existList.size() > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "该销售订单已生成工单,不能重复生成"); + } + order.setSourceId(headList.get(0).getId()); + } + User userInfo = userService.getCurrentUser(); + order.setCreator(userInfo == null ? null : userInfo.getId()); + order.setCreateTime(new Date()); + order.setStatus(BusinessConstants.PRODUCTION_ORDER_STATUS_CREATED); + if (order.getFinishedQuantity() == null) { + order.setFinishedQuantity(BigDecimal.ZERO); + } + order.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + result = productionOrderMapper.insertSelective(order); + //写操作日志 + saveOrderLog(order.getId(), order.getOrderNumber(), "创建工单", + "创建生产工单,数量:" + order.getOrderQuantity(), userInfo, request); + logService.insertLog("生产工单", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(order.getOrderNumber()).toString(), request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 修改工单(仅未下达可改数量/日期/备注) + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateOrder(JSONObject obj, HttpServletRequest request) throws Exception { + ProductionOrder order = JSONObject.parseObject(obj.toJSONString(), ProductionOrder.class); + int result = 0; + try { + ProductionOrder dbOrder = getProductionOrder(order.getId()); + if (dbOrder == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "工单不存在"); + } + if (!BusinessConstants.PRODUCTION_ORDER_STATUS_CREATED.equals(dbOrder.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有已创建状态的工单才能修改"); + } + normalizeProductionOrder(order); + checkOrder(order); + result = productionOrderMapper.updateByPrimaryKeySelective(order); + saveOrderLog(order.getId(), dbOrder.getOrderNumber(), "修改工单", + "修改工单信息", userService.getCurrentUser(), request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 审批下达 0->1 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int approveRelease(Long id, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionOrder dbOrder = getProductionOrder(id); + checkOrderStatus(dbOrder, BusinessConstants.PRODUCTION_ORDER_STATUS_CREATED, "只有已创建状态的工单才能审批下达"); + User userInfo = userService.getCurrentUser(); + ProductionOrder order = new ProductionOrder(); + order.setId(id); + order.setStatus(BusinessConstants.PRODUCTION_ORDER_STATUS_RELEASED); + order.setAuditBy(userInfo == null ? null : userInfo.getId()); + order.setAuditTime(new Date()); + order.setReleaseBy(userInfo == null ? null : userInfo.getId()); + order.setReleaseTime(new Date()); + result = productionOrderMapper.updateByPrimaryKeySelective(order); + saveOrderLog(id, dbOrder.getOrderNumber(), "审批下达", + "工单审批通过并下达", userInfo, request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 开工 1->2 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int startProduce(Long id, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionOrder dbOrder = getProductionOrder(id); + checkOrderStatus(dbOrder, BusinessConstants.PRODUCTION_ORDER_STATUS_RELEASED, "只有已下达状态的工单才能开工"); + ProductionOrder order = new ProductionOrder(); + order.setId(id); + order.setStatus(BusinessConstants.PRODUCTION_ORDER_STATUS_PRODUCING); + order.setActualStartDate(new Date()); + result = productionOrderMapper.updateByPrimaryKeySelective(order); + saveOrderLog(id, dbOrder.getOrderNumber(), "开工", + "工单开工,开始生产", userService.getCurrentUser(), request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 关闭工单:已完工3->4 或 取消0->4 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int closeOrder(Long id, String closeReason, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionOrder dbOrder = getProductionOrder(id); + if (dbOrder == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "工单不存在"); + } + String status = dbOrder.getStatus(); + if (!BusinessConstants.PRODUCTION_ORDER_STATUS_FINISHED.equals(status) + && !BusinessConstants.PRODUCTION_ORDER_STATUS_CREATED.equals(status)) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有已完工或已创建状态的工单才能关闭"); + } + ProductionOrder order = new ProductionOrder(); + order.setId(id); + order.setStatus(BusinessConstants.PRODUCTION_ORDER_STATUS_CLOSED); + order.setCloseReason(closeReason); + if (BusinessConstants.PRODUCTION_ORDER_STATUS_FINISHED.equals(status)) { + order.setActualEndDate(new Date()); + } + result = productionOrderMapper.updateByPrimaryKeySelective(order); + String operationDesc = BusinessConstants.PRODUCTION_ORDER_STATUS_CREATED.equals(status) + ? "取消工单,原因:" + closeReason : "完工关闭,原因:" + closeReason; + saveOrderLog(id, dbOrder.getOrderNumber(), "关闭工单", operationDesc, userService.getCurrentUser(), request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 删除工单(仅已创建可删除) + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteOrder(Long id, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionOrder dbOrder = getProductionOrder(id); + if (dbOrder == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "工单不存在"); + } + if (!BusinessConstants.PRODUCTION_ORDER_STATUS_CREATED.equals(dbOrder.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有已创建状态的工单才能删除"); + } + User userInfo = userService.getCurrentUser(); + result = productionOrderMapper.batchDeleteByIds(new Date(), + userInfo == null ? null : userInfo.getId(), new String[]{id.toString()}); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 批量删除工单 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteOrder(String ids, HttpServletRequest request) throws Exception { + int result = 0; + try { + String[] idArray = ids.split(","); + for (String id : idArray) { + ProductionOrder dbOrder = getProductionOrder(Long.parseLong(id)); + if (dbOrder != null && !BusinessConstants.PRODUCTION_ORDER_STATUS_CREATED.equals(dbOrder.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "工单[" + dbOrder.getOrderNumber() + "]不是已创建状态,不能删除"); + } + } + User userInfo = userService.getCurrentUser(); + result = productionOrderMapper.batchDeleteByIds(new Date(), + userInfo == null ? null : userInfo.getId(), idArray); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 工单详情(含操作日志) + */ + public JSONObject getOrderDetail(Long id) throws Exception { + JSONObject result = new JSONObject(); + ProductionOrder order = productionOrderMapper.selectByPrimaryKey(id); + JSONObject orderObj = JSONObject.parseObject(JSONObject.toJSONString(order)); + if (order != null) { + MaterialVo4Unit output = getMaterialInfo(order.getOutputMaterialExtendId()); + orderObj.put("outputBarCode", output == null ? "" : output.getmBarCode()); + orderObj.put("outputMaterialName", output == null ? "" : output.getName()); + // 格式化日期字段 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (order.getCreateTime() != null) { + orderObj.put("createTime", sdf.format(order.getCreateTime())); + } + if (order.getPlanStartDate() != null) { + orderObj.put("planStartDate", sdf.format(order.getPlanStartDate()).substring(0, 10)); + } + if (order.getPlanEndDate() != null) { + orderObj.put("planEndDate", sdf.format(order.getPlanEndDate()).substring(0, 10)); + } + if (order.getActualStartDate() != null) { + orderObj.put("actualStartDate", sdf.format(order.getActualStartDate()).substring(0, 10)); + } + if (order.getActualEndDate() != null) { + orderObj.put("actualEndDate", sdf.format(order.getActualEndDate()).substring(0, 10)); + } + // 解析操作人名称 + if (order.getReleaseBy() != null) { + User releaseUser = userService.getUser(order.getReleaseBy()); + orderObj.put("releaseBy", releaseUser == null ? "" : releaseUser.getLoginName()); + } + if (order.getAuditBy() != null) { + User auditUser = userService.getUser(order.getAuditBy()); + orderObj.put("auditBy", auditUser == null ? "" : auditUser.getLoginName()); + } + } + result.put("order", orderObj); + List logList = productionOrderMapper.selectLogsByOrderId(id); + // 格式化日志时间和操作人 + if (logList != null) { + SimpleDateFormat logSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + for (ProductionOrderLog log : logList) { + if (log.getOperator() != null) { + User logUser = userService.getUser(log.getOperator()); + if (logUser != null) { + log.setOperatorName(logUser.getLoginName()); + } + } + } + } + result.put("logs", logList == null ? new ArrayList<>() : logList); + return result; + } + + /** + * 根据商品扩展id查询商品信息 + */ + private MaterialVo4Unit getMaterialInfo(Long materialExtendId) { + List list = materialService.getMaterialByMeId(materialExtendId); + if (list != null && list.size() > 0) { + return list.get(0); + } + return null; + } + + /** + * 工单号是否已存在 + */ + public int checkNumberExist(Long id, String orderNumber) throws Exception { + return productionOrderMapper.checkNumberExist(id, orderNumber); + } + + /** + * 校验必填项 + */ + private void checkOrder(ProductionOrder order) { + if (order.getOutputMaterialId() == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请选择生产成品"); + } + if (order.getBomId() == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请选择生产方案"); + } + PackBom bom = packBomMapper.selectByPrimaryKey(order.getBomId()); + if (bom == null || !Boolean.TRUE.equals(bom.getEnabled())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "生产方案不存在或未启用"); + } + if (!order.getOutputMaterialId().equals(bom.getOutputMaterialId())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "生产方案与生产成品不匹配"); + } + if (order.getOrderQuantity() == null || order.getOrderQuantity().compareTo(BigDecimal.ZERO) <= 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "计划生产数量必须大于0"); + } + } + + /** + * 工单以 output_* 作为生产成品,计划数量与预计产量均为成品数量。 + * product_* 仅同步保留以兼容历史表结构。 + */ + private void normalizeProductionOrder(ProductionOrder order) { + if (order.getOutputMaterialId() == null && order.getProductMaterialId() != null) { + order.setOutputMaterialId(order.getProductMaterialId()); + order.setOutputMaterialExtendId(order.getProductMaterialExtendId()); + order.setOutputSku(order.getProductSku()); + } + order.setProductMaterialId(order.getOutputMaterialId()); + order.setProductMaterialExtendId(order.getOutputMaterialExtendId()); + order.setProductSku(order.getOutputSku()); + order.setOutputQuantity(order.getOrderQuantity()); + } + + /** + * 校验工单状态 + */ + private void checkOrderStatus(ProductionOrder dbOrder, String expectStatus, String errorMsg) { + if (dbOrder == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "工单不存在"); + } + if (!expectStatus.equals(dbOrder.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, errorMsg); + } + } + + /** + * 写工单操作日志 + */ + public void saveOrderLog(Long orderId, String orderNumber, String operationType, + String operationDesc, User userInfo, HttpServletRequest request) throws Exception { + ProductionOrderLog orderLog = new ProductionOrderLog(); + orderLog.setOrderId(orderId); + orderLog.setOrderNumber(orderNumber); + orderLog.setOperationType(operationType); + orderLog.setOperationDesc(operationDesc); + orderLog.setOperator(userInfo == null ? null : userInfo.getId()); + orderLog.setCreateTime(new Date()); + productionOrderMapper.insertLog(orderLog); + } + + /** + * 生成工单号:GD+时间戳 + */ + public String generateOrderNumber() { + return "GD" + new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionReportService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionReportService.java new file mode 100644 index 0000000..ced53db --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionReportService.java @@ -0,0 +1,347 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.DepotItem; +import com.reallin.smt.datasource.entities.Material; +import com.reallin.smt.datasource.entities.MaterialVo4Unit; +import com.reallin.smt.datasource.entities.ProductionOrder; +import com.reallin.smt.datasource.entities.ProductionReport; +import com.reallin.smt.datasource.entities.ProductionReportItem; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.DepotHeadMapper; +import com.reallin.smt.datasource.mappers.DepotItemMapper; +import com.reallin.smt.datasource.mappers.ProductionOrderMapper; +import com.reallin.smt.datasource.mappers.ProductionReportMapper; +import com.reallin.smt.datasource.vo.ProductionReportVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 完工报告Service + */ +@Service +public class ProductionReportService { + private Logger logger = LoggerFactory.getLogger(ProductionReportService.class); + + @Resource + private ProductionReportMapper productionReportMapper; + + @Resource + private ProductionOrderMapper productionOrderMapper; + + @Resource + private DepotHeadMapper depotHeadMapper; + + @Resource + private DepotItemMapper depotItemMapper; + + @Resource + private DepotItemService depotItemService; + + @Resource + private MaterialService materialService; + + @Resource + private ProductionOrderService productionOrderService; + + @Resource + private UserService userService; + + @Resource + private LogService logService; + + public ProductionReport getProductionReport(Long id) throws Exception { + ProductionReport result = null; + try { + result = productionReportMapper.selectByPrimaryKey(id); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.readFail(logger, e); + } + return result; + } + + public List select(String reportNumber, String orderNumber, String auditStatus, + String beginTime, String endTime) throws Exception { + List list = null; + try { + PageUtils.startPage(); + list = productionReportMapper.selectList(reportNumber, orderNumber, auditStatus, beginTime, endTime); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.readFail(logger, e); + } + return list; + } + + /** + * 新增完工报告:对已下达/生产中工单报工 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int addReport(JSONObject obj, HttpServletRequest request) throws Exception { + ProductionReport report = JSONObject.parseObject(obj.toJSONString(), ProductionReport.class); + int result = 0; + try { + ProductionOrder order = productionOrderMapper.selectByPrimaryKey(report.getOrderId()); + if (order == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "工单不存在"); + } + if (!BusinessConstants.PRODUCTION_ORDER_STATUS_RELEASED.equals(order.getStatus()) + && !BusinessConstants.PRODUCTION_ORDER_STATUS_PRODUCING.equals(order.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有已下达或生产中的工单才能报工"); + } + if (report.getFinishedQuantity() == null || report.getFinishedQuantity().compareTo(BigDecimal.ZERO) <= 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "良品数必须大于0"); + } + User userInfo = userService.getCurrentUser(); + report.setReportNumber(generateReportNumber()); + report.setOrderNumber(order.getOrderNumber()); + report.setAuditStatus("0"); + report.setReportBy(userInfo == null ? null : userInfo.getId()); + report.setReportDate(new Date()); + report.setCreateTime(new Date()); + report.setCreator(userInfo == null ? null : userInfo.getId()); + report.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + result = productionReportMapper.insertSelective(report); + //保存物料消耗明细 + JSONArray rows = obj.getJSONArray("rows"); + if (rows != null && rows.size() > 0) { + List itemList = new ArrayList<>(); + for (int i = 0; i < rows.size(); i++) { + JSONObject rowObj = rows.getJSONObject(i); + // Editable-table row ids are UI-only; item ids are generated by the database. + rowObj.remove("id"); + ProductionReportItem item = JSONObject.parseObject(rowObj.toJSONString(), ProductionReportItem.class); + if (item.getMaterialId() == null) { + continue; + } + item.setReportId(report.getId()); + itemList.add(item); + } + if (itemList.size() > 0) { + productionReportMapper.batchInsertItems(itemList); + } + } + productionOrderService.saveOrderLog(order.getId(), order.getOrderNumber(), "完工报工", + "提交完工报告[" + report.getReportNumber() + "],良品数:" + report.getFinishedQuantity() + + ",不良品数:" + report.getDefectQuantity(), userInfo, request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 审核完工报告 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int auditReport(Long id, String auditResult, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionReport report = getProductionReport(id); + if (report == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "完工报告不存在"); + } + if (!"0".equals(report.getAuditStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待审核状态的完工报告才能审核"); + } + ProductionOrder order = productionOrderMapper.selectByPrimaryKey(report.getOrderId()); + if (order == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "工单不存在"); + } + User userInfo = userService.getCurrentUser(); + //驳回 + if ("reject".equals(auditResult)) { + ProductionReport updateReport = new ProductionReport(); + updateReport.setId(id); + updateReport.setAuditStatus("2"); + updateReport.setAuditBy(userInfo == null ? null : userInfo.getId()); + updateReport.setAuditTime(new Date()); + result = productionReportMapper.updateByPrimaryKeySelective(updateReport); + productionOrderService.saveOrderLog(order.getId(), order.getOrderNumber(), "报工驳回", + "完工报告[" + report.getReportNumber() + "]审核被驳回", userInfo, request); + return result; + } + //通过且质检合格:生成入库单、增加成品库存、工单完工 + if ("1".equals(report.getQualifiedFlag())) { + if (report.getDepotId() == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请选择入库仓库"); + } + //校验完工数量不超预计数量 + BigDecimal finishedTotal = (order.getFinishedQuantity() == null ? BigDecimal.ZERO : order.getFinishedQuantity()) + .add(report.getFinishedQuantity()); + if (order.getOutputQuantity() != null + && finishedTotal.compareTo(order.getOutputQuantity()) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "累计完工数量超过工单预计成品数量,无法审核通过"); + } + //1.生成生产入库单主表 + DepotHead depotHead = new DepotHead(); + depotHead.setType(BusinessConstants.DEPOTHEAD_TYPE_IN); + depotHead.setSubType(BusinessConstants.BILL_TYPE_PRODUCE_IN); + depotHead.setNumber(generateInNumber()); + depotHead.setCreateTime(new Date()); + depotHead.setOperTime(new Date()); + depotHead.setCreator(userInfo == null ? null : userInfo.getId()); + depotHead.setStatus(BusinessConstants.BILLS_STATUS_AUDIT); + depotHead.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + depotHeadMapper.insertSelective(depotHead); + //2.生成入库明细(生产成品) + DepotItem depotItem = new DepotItem(); + depotItem.setHeaderId(depotHead.getId()); + depotItem.setMaterialId(order.getOutputMaterialId()); + depotItem.setMaterialExtendId(order.getOutputMaterialExtendId()); + depotItem.setMaterialUnit(getMaterialUnit(order.getOutputMaterialId())); + depotItem.setSku(order.getOutputSku()); + depotItem.setOperNumber(report.getFinishedQuantity()); + depotItem.setBasicNumber(report.getFinishedQuantity()); + depotItem.setUnitPrice(BigDecimal.ZERO); + depotItem.setAllPrice(BigDecimal.ZERO); + depotItem.setDepotId(report.getDepotId()); + depotItem.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + depotItemMapper.insertSelective(depotItem); + //3.更新成品库存 + depotItemService.updateCurrentStock(depotItem); + //4.更新工单完工数量与状态 + ProductionOrder updateOrder = new ProductionOrder(); + updateOrder.setId(order.getId()); + updateOrder.setFinishedQuantity(finishedTotal); + boolean completed = order.getOutputQuantity() == null + || finishedTotal.compareTo(order.getOutputQuantity()) >= 0; + updateOrder.setStatus(completed + ? BusinessConstants.PRODUCTION_ORDER_STATUS_FINISHED + : BusinessConstants.PRODUCTION_ORDER_STATUS_PRODUCING); + if (completed) { + updateOrder.setActualEndDate(new Date()); + } + productionOrderMapper.updateByPrimaryKeySelective(updateOrder); + //5.更新报告状态 + ProductionReport updateReport = new ProductionReport(); + updateReport.setId(id); + updateReport.setAuditStatus("1"); + updateReport.setAuditBy(userInfo == null ? null : userInfo.getId()); + updateReport.setAuditTime(new Date()); + updateReport.setInNumber(depotHead.getNumber()); + result = productionReportMapper.updateByPrimaryKeySelective(updateReport); + productionOrderService.saveOrderLog(order.getId(), order.getOrderNumber(), "完工入库", + "完工报告[" + report.getReportNumber() + "]审核通过,入库单号[" + depotHead.getNumber() + + "],累计完工数量:" + finishedTotal + + (completed ? ",工单已完工" : ",工单继续生产"), userInfo, request); + } else { + //质检不合格:不生成入库单,工单保持生产中,支持重新报工 + ProductionReport updateReport = new ProductionReport(); + updateReport.setId(id); + updateReport.setAuditStatus("1"); + updateReport.setAuditBy(userInfo == null ? null : userInfo.getId()); + updateReport.setAuditTime(new Date()); + result = productionReportMapper.updateByPrimaryKeySelective(updateReport); + productionOrderService.saveOrderLog(order.getId(), order.getOrderNumber(), "报工审核", + "完工报告[" + report.getReportNumber() + "]质检不合格,不生成入库单,工单保持生产中", + userInfo, request); + } + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + private String getMaterialUnit(Long materialId) throws Exception { + Material material = materialService.getMaterial(materialId); + return material == null ? null : material.getUnit(); + } + + /** + * 删除完工报告(仅待审核可删除) + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteReport(Long id, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionReport report = getProductionReport(id); + if (report == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "完工报告不存在"); + } + if (!"0".equals(report.getAuditStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待审核状态的完工报告才能删除"); + } + User userInfo = userService.getCurrentUser(); + result = productionReportMapper.batchDeleteByIds(new Date(), + userInfo == null ? null : userInfo.getId(), new String[]{id.toString()}); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 完工报告详情 + */ + public JSONObject getDetail(Long id) throws Exception { + JSONObject result = new JSONObject(); + ProductionReport report = productionReportMapper.selectByPrimaryKey(id); + result.put("report", report); + List itemList = productionReportMapper.selectItemsByReportId(id); + JSONArray rows = new JSONArray(); + if (itemList != null) { + for (ProductionReportItem item : itemList) { + JSONObject itemObj = JSONObject.parseObject(JSONObject.toJSONString(item)); + MaterialVo4Unit info = getMaterialInfo(item.getMaterialExtendId()); + itemObj.put("barCode", info == null ? "" : info.getmBarCode()); + itemObj.put("name", info == null ? "" : info.getName()); + rows.add(itemObj); + } + } + result.put("rows", rows); + return result; + } + + /** + * 根据商品扩展id查询商品信息 + */ + private MaterialVo4Unit getMaterialInfo(Long materialExtendId) { + List list = materialService.getMaterialByMeId(materialExtendId); + if (list != null && list.size() > 0) { + return list.get(0); + } + return null; + } + + /** + * 生成完工报告号:BG+时间戳 + */ + public String generateReportNumber() { + return "BG" + new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); + } + + /** + * 生成生产入库单号:CG+时间戳 + */ + public String generateInNumber() { + return "CG" + new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionRequisitionService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionRequisitionService.java new file mode 100644 index 0000000..ab317ec --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/ProductionRequisitionService.java @@ -0,0 +1,475 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.DepotItem; +import com.reallin.smt.datasource.entities.MaterialVo4Unit; +import com.reallin.smt.datasource.entities.PackBomItem; +import com.reallin.smt.datasource.entities.ProductionOrder; +import com.reallin.smt.datasource.entities.ProductionRequisition; +import com.reallin.smt.datasource.entities.ProductionRequisitionItem; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.DepotHeadMapper; +import com.reallin.smt.datasource.mappers.DepotItemMapper; +import com.reallin.smt.datasource.mappers.PackBomMapper; +import com.reallin.smt.datasource.mappers.ProductionOrderMapper; +import com.reallin.smt.datasource.mappers.ProductionRequisitionMapper; +import com.reallin.smt.datasource.vo.ProductionRequisitionVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 生产领料单Service + */ +@Service +public class ProductionRequisitionService { + private Logger logger = LoggerFactory.getLogger(ProductionRequisitionService.class); + + @Resource + private ProductionRequisitionMapper productionRequisitionMapper; + + @Resource + private ProductionOrderMapper productionOrderMapper; + + @Resource + private PackBomMapper packBomMapper; + + @Resource + private DepotHeadMapper depotHeadMapper; + + @Resource + private DepotItemMapper depotItemMapper; + + @Resource + private DepotItemService depotItemService; + + @Resource + private MaterialService materialService; + + @Resource + private ProductionOrderService productionOrderService; + + @Resource + private UserService userService; + + @Resource + private LogService logService; + + public ProductionRequisition getProductionRequisition(Long id) throws Exception { + ProductionRequisition result = null; + try { + result = productionRequisitionMapper.selectByPrimaryKey(id); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.readFail(logger, e); + } + return result; + } + + public List select(String requisitionNumber, String orderNumber, String status, + Long depotId, String beginTime, String endTime) throws Exception { + List list = null; + try { + PageUtils.startPage(); + list = productionRequisitionMapper.selectList(requisitionNumber, orderNumber, status, depotId, + beginTime, endTime); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.readFail(logger, e); + } + return list; + } + + /** + * 从工单生成领料单:按生产方案明细计算组成物料需求数量 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int generateRequisition(Long orderId, Long depotId, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionOrder order = productionOrderMapper.selectByPrimaryKey(orderId); + if (order == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "工单不存在"); + } + if (!BusinessConstants.PRODUCTION_ORDER_STATUS_RELEASED.equals(order.getStatus()) + && !BusinessConstants.PRODUCTION_ORDER_STATUS_PRODUCING.equals(order.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有已下达或生产中的工单才能生成领料单"); + } + //同一工单只能有一张待确认或已发料的领料单 + List existList = productionRequisitionMapper.selectByOrderId(orderId); + if (existList != null && existList.size() > 0) { + for (ProductionRequisition exist : existList) { + if ("0".equals(exist.getStatus()) || "1".equals(exist.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "该工单已存在待确认或已发料的领料单,不能重复生成"); + } + } + } + User userInfo = userService.getCurrentUser(); + ProductionRequisition requisition = new ProductionRequisition(); + requisition.setRequisitionNumber(generateRequisitionNumber()); + requisition.setOrderId(orderId); + requisition.setOrderNumber(order.getOrderNumber()); + requisition.setDepotId(depotId); + requisition.setStatus("0"); + requisition.setCreateTime(new Date()); + requisition.setCreator(userInfo == null ? null : userInfo.getId()); + requisition.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + result = productionRequisitionMapper.insertSelective(requisition); + + List itemList = buildRequisitionItems(requisition.getId(), order, depotId); + if (itemList.size() > 0) { + productionRequisitionMapper.batchInsertItems(itemList); + } + productionOrderService.saveOrderLog(orderId, order.getOrderNumber(), "生成领料单", + "生成领料单[" + requisition.getRequisitionNumber() + "]", userInfo, request); + logService.insertLog("生产领料", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(requisition.getRequisitionNumber()).toString(), request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 构建领料明细:组成物料单位用量 × 计划生产数量 + */ + private List buildRequisitionItems(Long requisitionId, ProductionOrder order, Long defaultDepotId) throws Exception { + List itemList = new ArrayList<>(); + //组成物料:单位用量 × 计划生产数量 + if (order.getBomId() != null) { + List bomItems = packBomMapper.selectItemsByBomId(order.getBomId()); + if (bomItems != null && bomItems.size() > 0) { + for (PackBomItem bomItem : bomItems) { + ProductionRequisitionItem item = new ProductionRequisitionItem(); + item.setRequisitionId(requisitionId); + item.setDepotId(defaultDepotId); + item.setMaterialId(bomItem.getMaterialId()); + item.setMaterialExtendId(bomItem.getMaterialExtendId()); + item.setMaterialSku(bomItem.getMaterialSku()); + item.setUnit(bomItem.getUnit()); + BigDecimal quantity = (bomItem.getQuantity() == null ? BigDecimal.ZERO : bomItem.getQuantity()) + .multiply(order.getOrderQuantity()); + item.setRequiredQuantity(quantity); + item.setIssuedQuantity(quantity); + item.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + itemList.add(item); + } + } + } + return itemList; + } + + /** + * 修改领料单(仅待确认可改实发数、仓库) + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateRequisition(JSONObject obj, HttpServletRequest request) throws Exception { + ProductionRequisition requisition = JSONObject.parseObject(obj.toJSONString(), ProductionRequisition.class); + int result = 0; + try { + ProductionRequisition dbRequisition = getProductionRequisition(requisition.getId()); + if (dbRequisition == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "领料单不存在"); + } + if (!"0".equals(dbRequisition.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待确认状态的领料单才能修改"); + } + result = productionRequisitionMapper.updateByPrimaryKeySelective(requisition); + //更新明细的实发数 + JSONArray rows = obj.getJSONArray("rows"); + if (rows != null && rows.size() > 0) { + for (int i = 0; i < rows.size(); i++) { + JSONObject rowObj = rows.getJSONObject(i); + Long itemId = rowObj.getLong("id"); + if (itemId == null) { + continue; + } + ProductionRequisitionItem item = new ProductionRequisitionItem(); + item.setId(itemId); + if (rowObj.getBigDecimal("issuedQuantity") != null) { + item.setIssuedQuantity(rowObj.getBigDecimal("issuedQuantity")); + } + if (rowObj.getLong("depotId") != null) { + item.setDepotId(rowObj.getLong("depotId")); + } + if (rowObj.getString("remark") != null) { + item.setRemark(rowObj.getString("remark")); + } + productionRequisitionMapper.updateItemSelective(item); + } + } + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 仓库确认发料 0->1:生成生产领料出库单并扣减库存 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int confirmIssue(Long id, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionRequisition requisition = getProductionRequisition(id); + if (requisition == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "领料单不存在"); + } + if (!"0".equals(requisition.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待确认状态的领料单才能确认发料"); + } + List itemList = productionRequisitionMapper.selectItemsByRequisitionId(id); + if (itemList == null || itemList.size() == 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "领料单没有明细,无法确认发料"); + } + checkIssueStock(requisition, itemList); + User userInfo = userService.getCurrentUser(); + //1.生成出库单主表 + DepotHead depotHead = new DepotHead(); + depotHead.setType(BusinessConstants.DEPOTHEAD_TYPE_OUT); + depotHead.setSubType(BusinessConstants.SUB_TYPE_PRODUCE_REQUISITION); + depotHead.setNumber(generateRequisitionNumber()); + depotHead.setCreateTime(new Date()); + depotHead.setOperTime(new Date()); + depotHead.setCreator(userInfo == null ? null : userInfo.getId()); + depotHead.setStatus(BusinessConstants.BILLS_STATUS_AUDIT); + depotHead.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + depotHeadMapper.insertSelective(depotHead); + //2.生成出库单明细并扣减库存 + for (ProductionRequisitionItem item : itemList) { + BigDecimal issuedQuantity = item.getIssuedQuantity() == null ? BigDecimal.ZERO : item.getIssuedQuantity(); + if (issuedQuantity.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + DepotItem depotItem = new DepotItem(); + depotItem.setHeaderId(depotHead.getId()); + depotItem.setMaterialId(item.getMaterialId()); + depotItem.setMaterialExtendId(item.getMaterialExtendId()); + depotItem.setMaterialUnit(item.getUnit()); + depotItem.setSku(item.getMaterialSku()); + depotItem.setOperNumber(issuedQuantity); + depotItem.setBasicNumber(issuedQuantity); + depotItem.setUnitPrice(item.getUnitPrice() == null ? BigDecimal.ZERO : item.getUnitPrice()); + depotItem.setAllPrice(issuedQuantity.multiply(depotItem.getUnitPrice())); + depotItem.setDepotId(getItemDepotId(requisition, item)); + depotItem.setDeleteFlag(BusinessConstants.DELETE_FLAG_EXISTS); + depotItemMapper.insertSelective(depotItem); + //更新库存 + depotItemService.updateCurrentStock(depotItem); + } + //3.更新领料单状态 + ProductionRequisition update = new ProductionRequisition(); + update.setId(id); + update.setStatus("1"); + update.setConfirmBy(userInfo == null ? null : userInfo.getId()); + update.setConfirmTime(new Date()); + result = productionRequisitionMapper.updateByPrimaryKeySelective(update); + //4.写工单日志 + productionOrderService.saveOrderLog(requisition.getOrderId(), requisition.getOrderNumber(), "领料发料", + "领料单[" + requisition.getRequisitionNumber() + "]确认发料,出库单号[" + depotHead.getNumber() + "]", + userInfo, request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 确认发料前按明细仓库校验库存,避免同一物料拆多行时逐行校验漏算。 + */ + private void checkIssueStock(ProductionRequisition requisition, List itemList) throws Exception { + Map issuedMap = new HashMap<>(); + Map stockMap = new HashMap<>(); + for (ProductionRequisitionItem item : itemList) { + BigDecimal issuedQuantity = item.getIssuedQuantity() == null ? BigDecimal.ZERO : item.getIssuedQuantity(); + if (issuedQuantity.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + Long depotId = getItemDepotId(requisition, item); + if (depotId == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "请选择物料[" + getMaterialDisplayName(item) + "]的发料仓库"); + } + String stockKey = buildStockKey(depotId, item); + BigDecimal issuedSum = issuedMap.get(stockKey); + if (issuedSum == null) { + issuedSum = BigDecimal.ZERO; + } + issuedSum = issuedSum.add(issuedQuantity); + issuedMap.put(stockKey, issuedSum); + + BigDecimal stock = stockMap.get(stockKey); + if (stock == null) { + stock = getItemStock(depotId, item); + stockMap.put(stockKey, stock); + } + if (stock.compareTo(issuedSum) < 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + "物料[" + getMaterialDisplayName(item) + "]库存不足,发料仓库ID[" + depotId + + "],可用库存[" + formatQuantity(stock) + "],本次需发[" + formatQuantity(issuedSum) + "]"); + } + } + } + + private Long getItemDepotId(ProductionRequisition requisition, ProductionRequisitionItem item) { + return item.getDepotId() == null ? requisition.getDepotId() : item.getDepotId(); + } + + private String buildStockKey(Long depotId, ProductionRequisitionItem item) { + if (isSkuItem(item)) { + return depotId + "_sku_" + item.getMaterialExtendId(); + } + return depotId + "_material_" + item.getMaterialId(); + } + + private BigDecimal getItemStock(Long depotId, ProductionRequisitionItem item) throws Exception { + BigDecimal stock; + if (isSkuItem(item)) { + stock = depotItemService.getSkuStockByParam(depotId, item.getMaterialExtendId(), null, null); + } else { + stock = depotItemService.getStockByParam(depotId, item.getMaterialId(), null, null); + } + return stock == null ? BigDecimal.ZERO : stock; + } + + private boolean isSkuItem(ProductionRequisitionItem item) { + return item.getMaterialExtendId() != null + && item.getMaterialSku() != null + && !item.getMaterialSku().trim().isEmpty(); + } + + private String getMaterialDisplayName(ProductionRequisitionItem item) { + MaterialVo4Unit info = getMaterialInfo(item.getMaterialExtendId()); + if (info != null && info.getName() != null) { + return info.getName(); + } + return item.getMaterialSku() == null ? String.valueOf(item.getMaterialId()) : item.getMaterialSku(); + } + + private String formatQuantity(BigDecimal value) { + return value == null ? "0" : value.stripTrailingZeros().toPlainString(); + } + + /** + * 驳回领料单 0->2 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int rejectRequisition(Long id, String rejectReason, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionRequisition requisition = getProductionRequisition(id); + if (requisition == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "领料单不存在"); + } + if (!"0".equals(requisition.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待确认状态的领料单才能驳回"); + } + ProductionRequisition update = new ProductionRequisition(); + update.setId(id); + update.setStatus("2"); + update.setRemark(rejectReason); + result = productionRequisitionMapper.updateByPrimaryKeySelective(update); + productionOrderService.saveOrderLog(requisition.getOrderId(), requisition.getOrderNumber(), "领料驳回", + "领料单[" + requisition.getRequisitionNumber() + "]被驳回:" + rejectReason, + userService.getCurrentUser(), request); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 删除领料单(仅待确认可删除) + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteRequisition(Long id, HttpServletRequest request) throws Exception { + int result = 0; + try { + ProductionRequisition requisition = getProductionRequisition(id); + if (requisition == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "领料单不存在"); + } + if (!"0".equals(requisition.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待确认状态的领料单才能删除"); + } + User userInfo = userService.getCurrentUser(); + result = productionRequisitionMapper.batchDeleteByIds(new Date(), + userInfo == null ? null : userInfo.getId(), new String[]{id.toString()}); + } catch (BusinessRunTimeException e) { + throw e; + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 领料单详情 + */ + public JSONObject getDetail(Long id) throws Exception { + JSONObject result = new JSONObject(); + ProductionRequisition requisition = productionRequisitionMapper.selectByPrimaryKey(id); + result.put("requisition", requisition); + List itemList = productionRequisitionMapper.selectItemsByRequisitionId(id); + JSONArray rows = new JSONArray(); + if (itemList != null) { + for (ProductionRequisitionItem item : itemList) { + JSONObject itemObj = JSONObject.parseObject(JSONObject.toJSONString(item)); + MaterialVo4Unit info = getMaterialInfo(item.getMaterialExtendId()); + itemObj.put("depotId", item.getDepotId() == null ? requisition.getDepotId() : item.getDepotId()); + itemObj.put("barCode", info == null ? "" : info.getmBarCode()); + itemObj.put("name", info == null ? "" : info.getName()); + rows.add(itemObj); + } + } + result.put("rows", rows); + return result; + } + + /** + * 根据商品扩展id查询商品信息 + */ + private MaterialVo4Unit getMaterialInfo(Long materialExtendId) { + List list = materialService.getMaterialByMeId(materialExtendId); + if (list != null && list.size() > 0) { + return list.get(0); + } + return null; + } + + /** + * 生成领料单号:LL+时间戳 + */ + public String generateRequisitionNumber() { + return "LL" + new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/RedisService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/RedisService.java new file mode 100644 index 0000000..85c3656 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/RedisService.java @@ -0,0 +1,247 @@ +package com.reallin.smt.service; + +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.utils.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.connection.DataType; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Collection; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * Description + * + * @author jisheng hua + * @Date: 2021/1/28 18:10 + */ +@Component +public class RedisService { + + @Resource + public RedisTemplate redisTemplate; + + public static final String ACCESS_TOKEN = "X-Access-Token"; + @Value("${security.session.timeout-seconds:259200}") + private long sessionTimeoutSeconds; + + @Autowired(required = false) + public void setRedisTemplate(RedisTemplate redisTemplate) { + RedisSerializer stringSerializer = new StringRedisSerializer(); + redisTemplate.setKeySerializer(stringSerializer); + redisTemplate.setValueSerializer(stringSerializer); + redisTemplate.setHashKeySerializer(stringSerializer); + redisTemplate.setHashValueSerializer(stringSerializer); + this.redisTemplate = redisTemplate; + } + + /** + * @author jisheng hua + * description: + * 从session中获取信息 + *@date: 2021/1/28 18:10 + * @Param: request + * @Param: key + * @return Object + */ + public Object getObjectFromSessionByKey(HttpServletRequest request, String key){ + Object obj=null; + if(request==null){ + return null; + } + String token = request.getHeader(ACCESS_TOKEN); + if(token!=null) { + //开启redis,用户数据放在redis中,从redis中获取 + if(redisTemplate.opsForHash().hasKey(token,key)){ + //redis中存在,拿出来使用 + obj=redisTemplate.opsForHash().get(token,key); + redisTemplate.expire(token, Math.max(60L, sessionTimeoutSeconds), TimeUnit.SECONDS); + } + } + return obj; + } + + /** + * 缓存基本的对象,Integer、String、实体类等 + * + * @param key 缓存的键值 + * @param value 缓存的值 + */ + public void setCacheObject(final String key, final T value) { + redisTemplate.opsForValue().set(key, value); + } + + /** + * 获得缓存的基本对象。 + * + * @param key 缓存键值 + * @return 缓存键值对应的数据 + */ + public T getCacheObject(final String key) + { + ValueOperations operation = redisTemplate.opsForValue(); + return operation.get(key); + } + + /** + * 缓存计数加一,并刷新有效时间。 + * + * @param key 缓存键值 + * @param timeout 有效时间 + * @param timeUnit 时间单位 + * @return 加一后的计数 + */ + public Long incrementCacheObject(final String key, long timeout, TimeUnit timeUnit) { + Long count = redisTemplate.opsForValue().increment(key, 1L); + redisTemplate.expire(key, timeout, timeUnit); + return count; + } + + /** + * 获取缓存键剩余的有效时间。 + */ + public Long getExpire(final String key, TimeUnit timeUnit) { + return redisTemplate.getExpire(key, timeUnit); + } + + /** + * 刷新缓存键的有效时间。 + */ + public void expire(final String key, long timeout, TimeUnit timeUnit) { + redisTemplate.expire(key, timeout, timeUnit); + } + + /** + * @author jisheng hua + * description: + * 将信息放入session或者redis中 + *@date: 2021/1/28 18:10 + * @Param: request + * @Param: key + * @Param: obj + * @return + */ + public void storageObjectBySession(String token, String key, Object obj) { + //开启redis,用户数据放到redis中 + redisTemplate.opsForHash().put(token, key, obj.toString()); + redisTemplate.expire(token, Math.max(60L, sessionTimeoutSeconds), TimeUnit.SECONDS); + } + + /** + * @author jisheng hua + * description: + * 将信息放入session或者redis中 + * @date: 2024/5/28 20:10 + * @return + */ + public void storageCaptchaObject(String verifyKey, String codeNum) { + //把验证码放到redis中 + redisTemplate.opsForValue().set(verifyKey, codeNum, BusinessConstants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); + } + + /** + * 带有效时间缓存数据 + * @param key + * @param value + * @param time 单位秒 + */ + public void storageKeyWithTime(String key, String value, Long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } + + /** + * 删除单个对象 + * + * @param key + */ + public boolean deleteObject(final String key) + { + return redisTemplate.delete(key); + } + + /** + * 删除集合对象 + * + * @param collection 多个对象 + * @return + */ + public boolean deleteObject(final Collection collection) { + return redisTemplate.delete(collection) > 0; + } + + /** + * @author jisheng hua + * description: + * 将信息从session或者redis中移除 + *@date: 2021/1/28 18:10 + * @Param: request + * @Param: key + * @Param: obj + * @return + */ + public void deleteObjectBySession(HttpServletRequest request, String key){ + if(request!=null){ + String token = request.getHeader(ACCESS_TOKEN); + if(StringUtil.isNotEmpty(token)){ + //开启redis,用户数据放在redis中,从redis中删除 + redisTemplate.opsForHash().delete(token, key); + } + } + } + + /** + * @author jisheng hua + * 将信息从redis中移除,比对user和ip + * @param userId + * @param clientIp + */ + public void deleteObjectByUserAndIp(Long userId, String clientIp){ + Set tokens = redisTemplate.keys("*"); + for(String token : tokens) { + // 检查键是否存在且为哈希类型 + if (redisTemplate.hasKey(token) && redisTemplate.type(token) == DataType.HASH) { + Object userIdValue = redisTemplate.opsForHash().get(token, "userId"); + Object clientIpValue = redisTemplate.opsForHash().get(token, "clientIp"); + if(userIdValue!=null && clientIpValue!=null && userIdValue.equals(userId.toString()) && clientIpValue.equals(clientIp)) { + redisTemplate.opsForHash().delete(token, "userId"); + } + } + } + } + + /** + * @author jisheng hua + * 将信息从redis中移除,比对user + * @param userId + */ + public void deleteObjectByUser(Long userId){ + Set tokens = redisTemplate.keys("*"); + for(String token : tokens) { + // 检查键是否存在且为哈希类型 + if (redisTemplate.hasKey(token) && redisTemplate.type(token) == DataType.HASH) { + Object userIdValue = redisTemplate.opsForHash().get(token, "userId"); + if(userIdValue!=null && userIdValue.equals(userId.toString())) { + redisTemplate.opsForHash().delete(token, "userId"); + } + } + } + } + + /** + * 获得缓存的基本对象列表 + * + * @param pattern 字符串前缀 + * @return 对象列表 + */ + public Collection keys(final String pattern) { + return redisTemplate.keys(pattern); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/RoleService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/RoleService.java new file mode 100644 index 0000000..e0bd740 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/RoleService.java @@ -0,0 +1,317 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.Role; +import com.reallin.smt.datasource.entities.RoleEx; +import com.reallin.smt.datasource.entities.RoleExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.RoleMapper; +import com.reallin.smt.datasource.mappers.RoleMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class RoleService { + private Logger logger = LoggerFactory.getLogger(RoleService.class); + @Resource + private RoleMapper roleMapper; + + @Resource + private RoleMapperEx roleMapperEx; + @Resource + private LogService logService; + @Resource + private UserService userService; + + //超管的专用角色 + private static Long MANAGE_ROLE_ID = 4L; + + public Role getRole(long id)throws Exception { + Role result=null; + try{ + result=roleMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getRoleListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + RoleExample example = new RoleExample(); + example.createCriteria().andIdIn(idList); + list = roleMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List allList()throws Exception { + RoleExample example = new RoleExample(); + example.createCriteria().andEnabledEqualTo(true).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id desc"); + List list=null; + try{ + list=roleMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List tenantRoleList() { + try { + return allList(); + } catch (Exception e) { + JshException.readFail(logger, e); + return new ArrayList<>(); + } + } + + public List select(String name, String description)throws Exception { + List list=null; + try{ + PageUtils.startPage(); + list=roleMapperEx.selectByConditionRole(name, description); + for(RoleEx roleEx: list) { + String priceLimit = roleEx.getPriceLimit(); + if(StringUtil.isNotEmpty(priceLimit)) { + String priceLimitStr = priceLimit + .replace("1", "屏蔽首页采购价") + .replace("2", "屏蔽首页零售价") + .replace("3", "屏蔽首页销售价") + .replace("4", "屏蔽单据采购价") + .replace("5", "屏蔽单据零售价") + .replace("6", "屏蔽单据销售价") + .replace("7", "屏蔽库存成本价"); + roleEx.setPriceLimitStr(priceLimitStr); + } + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertRole(JSONObject obj, HttpServletRequest request)throws Exception { + Role role = JSONObject.parseObject(obj.toJSONString(), Role.class); + int result=0; + try{ + role.setEnabled(true); + result=roleMapper.insertSelective(role); + logService.insertLog("角色", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(role.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateRole(JSONObject obj, HttpServletRequest request) throws Exception{ + Role role = JSONObject.parseObject(obj.toJSONString(), Role.class); + int result=0; + try{ + result=roleMapper.updateByPrimaryKeySelective(role); + logService.insertLog("角色", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(role.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteRole(Long id, HttpServletRequest request)throws Exception { + return batchDeleteRoleByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteRole(String ids, HttpServletRequest request) throws Exception{ + return batchDeleteRoleByIds(ids); + } + + public int checkIsNameExist(Long id, String name) throws Exception{ + RoleExample example = new RoleExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list =null; + try{ + list=roleMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public List findUserRole()throws Exception{ + RoleExample example = new RoleExample(); + example.setOrderByClause("Id"); + example.createCriteria().andEnabledEqualTo(true).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=roleMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + /** + * create by: qiankunpingtai + * 逻辑删除角色信息 + * create time: 2019/3/28 15:44 + * @Param: ids + * @return int + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteRoleByIds(String ids) throws Exception{ + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getRoleListByIds(ids); + for(Role role: list){ + sb.append("[").append(role.getName()).append("]"); + } + logService.insertLog("角色", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + int result=0; + try{ + result=roleMapperEx.batchDeleteRoleByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public Role getRoleWithoutTenant(Long roleId) { + return roleMapperEx.getRoleWithoutTenant(roleId); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids)throws Exception { + logService.insertLog("角色", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ENABLED).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List roleIds = StringUtil.strToLongList(ids); + Role role = new Role(); + role.setEnabled(status); + RoleExample example = new RoleExample(); + example.createCriteria().andIdIn(roleIds); + int result=0; + try{ + result = roleMapper.updateByExampleSelective(role, example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 根据权限进行屏蔽价格-首页 + * @param price + * @param type + * @return + */ + public Object parseHomePriceByLimit(BigDecimal price, String type, String priceLimit, String emptyInfo, HttpServletRequest request) throws Exception { + if(StringUtil.isNotEmpty(priceLimit)) { + if("buy".equals(type) && priceLimit.contains("1")) { + return emptyInfo; + } + if("retail".equals(type) && priceLimit.contains("2")) { + return emptyInfo; + } + if("sale".equals(type) && priceLimit.contains("3")) { + return emptyInfo; + } + } + return price; + } + + /** + * 根据权限进行屏蔽价格-单据 + * @param price + * @param billCategory + * @param priceLimit + * @param request + * @return + * @throws Exception + */ + public BigDecimal parseBillPriceByLimit(BigDecimal price, String billCategory, String priceLimit, HttpServletRequest request) throws Exception { + if(StringUtil.isNotEmpty(priceLimit)) { + if("buy".equals(billCategory) && priceLimit.contains("4")) { + return BigDecimal.ZERO; + } + if("retail".equals(billCategory) && priceLimit.contains("5")) { + return BigDecimal.ZERO; + } + if("sale".equals(billCategory) && priceLimit.contains("6")) { + return BigDecimal.ZERO; + } + } + return price; + } + + /** + * 根据权限进行屏蔽成本价-库存报表 + * @param price + * @param priceLimit + * @param request + * @return + * @throws Exception + */ + public BigDecimal parseStockPriceByLimit(BigDecimal price, String priceLimit, HttpServletRequest request) throws Exception { + if(StringUtil.isNotEmpty(priceLimit)) { + if(priceLimit.contains("7")) { + return null; + } + } + return price; + } + + /** + * 根据权限进行屏蔽价格-物料 + * @param price + * @param type + * @return + */ + public Object parseMaterialPriceByLimit(BigDecimal price, String type, String emptyInfo, HttpServletRequest request) throws Exception { + Long userId = userService.getUserId(request); + String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + if(StringUtil.isNotEmpty(priceLimit)) { + if("buy".equals(type) && priceLimit.contains("4")) { + return emptyInfo; + } + if("retail".equals(type) && priceLimit.contains("5")) { + return emptyInfo; + } + if("sale".equals(type) && priceLimit.contains("6")) { + return emptyInfo; + } + } + return price; + } + + public String getCurrentPriceLimit(HttpServletRequest request) throws Exception { + Long userId = userService.getUserId(request); + return userService.getRoleTypeByUserId(userId).getPriceLimit(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/SaleShipmentService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/SaleShipmentService.java new file mode 100644 index 0000000..fde32f1 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/SaleShipmentService.java @@ -0,0 +1,512 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.DeliveryPlan; +import com.reallin.smt.datasource.entities.DeliveryPlanItem; +import com.reallin.smt.datasource.entities.DepotHead; +import com.reallin.smt.datasource.entities.SaleShipment; +import com.reallin.smt.datasource.entities.SaleShipmentItem; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.DeliveryPlanMapper; +import com.reallin.smt.datasource.mappers.SaleShipmentMapper; +import com.reallin.smt.datasource.vo.SaleShipmentVo4List; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class SaleShipmentService { + + public static final String STATUS_WAIT_APPROVE = "0"; + public static final String STATUS_WAIT_SHIP = "1"; + public static final String STATUS_SHIPPED = "2"; + public static final String STATUS_PART_SHIPPED = "3"; + public static final String STATUS_REJECTED = "4"; + + @Resource + private SaleShipmentMapper saleShipmentMapper; + @Resource + private DeliveryPlanMapper deliveryPlanMapper; + @Resource + private DeliveryPlanService deliveryPlanService; + @Resource + private DepotHeadService depotHeadService; + @Resource + private DepotItemService depotItemService; + @Resource + private SequenceService sequenceService; + @Resource + private UserService userService; + @Resource + private LogService logService; + + public List select(String shipmentNumber, String saleOutNumber, String saleOrderNumber, + String status, String logisticsNo, String beginTime, String endTime) { + PageUtils.startPage(); + return saleShipmentMapper.selectList(shipmentNumber, saleOutNumber, saleOrderNumber, status, + logisticsNo, beginTime, endTime); + } + + public JSONObject getDetail(Long id) { + SaleShipment shipment = getExistingShipment(id); + JSONObject obj = new JSONObject(); + obj.put("info", shipment); + obj.put("rows", saleShipmentMapper.selectItemsByShipmentId(id)); + return obj; + } + + public List getSaleOutItems(Long saleOutId) { + DepotHead saleOut = getValidSaleOut(saleOutId); + List sourceItems = saleShipmentMapper.selectSaleOutItemsForShipment(saleOut.getId()); + List rows = new ArrayList<>(); + for (SaleShipmentItem item : sourceItems) { + BigDecimal remaining = safe(item.getPlanQuantity()).subtract(safe(item.getShippedQuantity())); + if (remaining.compareTo(BigDecimal.ZERO) > 0) { + item.setPlanQuantity(remaining); + item.setActualQuantity(remaining); + item.setDifferenceQuantity(BigDecimal.ZERO); + rows.add(item); + } + } + return rows; + } + + public List getDeliveryPlanItems(Long deliveryPlanId) { + DeliveryPlan plan = deliveryPlanService.getExistingPlan(deliveryPlanId); + List sourceItems = deliveryPlanMapper.selectItemsByPlanId(plan.getId()); + List rows = new ArrayList<>(); + for (DeliveryPlanItem item : sourceItems) { + BigDecimal remaining = safe(item.getPlanQuantity()).subtract(safe(item.getShippedQuantity())); + if (remaining.compareTo(BigDecimal.ZERO) > 0) { + rows.add(buildShipmentItem(item, null, remaining, remaining)); + } + } + return rows; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int createFromSaleOut(JSONObject obj, HttpServletRequest request) throws Exception { + if (Boolean.TRUE.equals(Boolean.TRUE)) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请先转交货计划,再由交货计划转发货"); + } + Long saleOutId = obj.getLong("saleOutId"); + DepotHead saleOut = getValidSaleOut(saleOutId); + User user = userService.getCurrentUser(); + + SaleShipment shipment = new SaleShipment(); + shipment.setShipmentNumber("FHTZ" + sequenceService.buildOnlyNumber()); + shipment.setSourceType(getSourceType(saleOut)); + shipment.setSaleOutId(saleOut.getId()); + shipment.setSaleOutNumber(saleOut.getNumber()); + shipment.setSaleOrderNumber(saleOut.getLinkNumber()); + shipment.setCustomerId(saleOut.getOrganId()); + shipment.setStatus(STATUS_WAIT_APPROVE); + shipment.setPlannedShipTime(obj.getDate("plannedShipTime")); + shipment.setLogisticsCompany(obj.getString("logisticsCompany")); + shipment.setLogisticsNo(obj.getString("logisticsNo")); + shipment.setReceiver(obj.getString("receiver")); + shipment.setReceiverPhone(obj.getString("receiverPhone")); + shipment.setReceiverAddress(obj.getString("receiverAddress")); + shipment.setNoticeRemark(obj.getString("noticeRemark")); + shipment.setCreateTime(new Date()); + shipment.setCreator(user == null ? null : user.getId()); + shipment.setDeleteFlag("0"); + saleShipmentMapper.insertSelective(shipment); + + List sourceItems = saleShipmentMapper.selectSaleOutItemsForShipment(saleOut.getId()); + Map sourceMap = sourceItems.stream() + .collect(Collectors.toMap(SaleShipmentItem::getSaleOutItemId, item -> item, (a, b) -> a)); + List rows = parseNoticeItems(obj.getJSONArray("rows"), sourceMap, shipment.getId(), null); + if (rows.isEmpty()) { + for (SaleShipmentItem source : sourceItems) { + BigDecimal remaining = safe(source.getPlanQuantity()).subtract(safe(source.getShippedQuantity())); + if (remaining.compareTo(BigDecimal.ZERO) > 0) { + rows.add(buildShipmentItem(source, shipment.getId(), remaining, BigDecimal.ZERO)); + } + } + } + if (rows.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "该销售出库单没有可发货数量"); + } + saleShipmentMapper.batchInsertItems(rows); + logService.insertLog("发货管理", "新增发货通知[" + shipment.getShipmentNumber() + "]", request); + return 1; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchCreateFromSaleOut(JSONObject obj, HttpServletRequest request) throws Exception { + if (Boolean.TRUE.equals(Boolean.TRUE)) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请先转交货计划,再由交货计划转发货"); + } + JSONArray shipments = obj.getJSONArray("shipments"); + if (shipments != null && !shipments.isEmpty()) { + int count = 0; + for (int i = 0; i < shipments.size(); i++) { + JSONObject source = shipments.getJSONObject(i); + JSONObject item = new JSONObject(); + item.put("saleOutId", source.getLong("saleOutId")); + item.put("noticeRemark", source.getString("noticeRemark")); + createFromSaleOut(item, request); + count++; + } + return count; + } + JSONArray saleOutIds = obj.getJSONArray("saleOutIds"); + if (saleOutIds == null || saleOutIds.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请选择需要转发货的销售出库单"); + } + int count = 0; + for (int i = 0; i < saleOutIds.size(); i++) { + Long saleOutId = saleOutIds.getLong(i); + JSONObject item = new JSONObject(); + item.put("saleOutId", saleOutId); + createFromSaleOut(item, request); + count++; + } + return count; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int createFromDeliveryPlan(JSONObject obj, HttpServletRequest request) throws Exception { + Long deliveryPlanId = obj.getLong("deliveryPlanId"); + DeliveryPlan plan = deliveryPlanService.getExistingPlan(deliveryPlanId); + DepotHead saleOut = getValidSaleOut(plan.getSourceBillId()); + User user = userService.getCurrentUser(); + + SaleShipment shipment = new SaleShipment(); + shipment.setShipmentNumber("FHTZ" + sequenceService.buildOnlyNumber()); + shipment.setSourceType(plan.getSourceType()); + shipment.setDeliveryPlanId(plan.getId()); + shipment.setDeliveryPlanNumber(plan.getPlanNumber()); + shipment.setSaleOutId(saleOut.getId()); + shipment.setSaleOutNumber(saleOut.getNumber()); + shipment.setSaleOrderNumber(saleOut.getLinkNumber()); + shipment.setCustomerId(saleOut.getOrganId()); + shipment.setStatus(STATUS_WAIT_APPROVE); + shipment.setPlannedShipTime(obj.getDate("plannedShipTime")); + shipment.setLogisticsCompany(obj.getString("logisticsCompany")); + shipment.setLogisticsNo(obj.getString("logisticsNo")); + shipment.setReceiver(obj.getString("receiver")); + shipment.setReceiverPhone(obj.getString("receiverPhone")); + shipment.setReceiverAddress(obj.getString("receiverAddress")); + shipment.setNoticeRemark(obj.getString("noticeRemark")); + shipment.setCreateTime(new Date()); + shipment.setCreator(user == null ? null : user.getId()); + shipment.setDeleteFlag("0"); + saleShipmentMapper.insertSelective(shipment); + + List sourceItems = deliveryPlanMapper.selectItemsByPlanId(plan.getId()); + Map sourceMap = sourceItems.stream() + .collect(Collectors.toMap(DeliveryPlanItem::getId, item -> item, (a, b) -> a)); + List rows = parsePlanNoticeItems(obj.getJSONArray("rows"), sourceMap, shipment.getId()); + if (rows.isEmpty()) { + for (DeliveryPlanItem source : sourceItems) { + BigDecimal remaining = safe(source.getPlanQuantity()).subtract(safe(source.getShippedQuantity())); + if (remaining.compareTo(BigDecimal.ZERO) > 0) { + rows.add(buildShipmentItem(source, shipment.getId(), remaining, BigDecimal.ZERO)); + } + } + } + if (rows.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "该交货计划没有可发货数量"); + } + saleShipmentMapper.batchInsertItems(rows); + logService.insertLog("发货管理", "由交货计划生成发货通知[" + shipment.getShipmentNumber() + "]", request); + return 1; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int approve(Long id, Boolean pass, String remark, HttpServletRequest request) throws Exception { + SaleShipment old = getExistingShipment(id); + if (!STATUS_WAIT_APPROVE.equals(old.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待审批的发货通知才能审批"); + } + User user = userService.getCurrentUser(); + SaleShipment update = new SaleShipment(); + update.setId(id); + update.setStatus(Boolean.FALSE.equals(pass) ? STATUS_REJECTED : STATUS_WAIT_SHIP); + update.setApproveBy(user == null ? null : user.getId()); + update.setApproveTime(new Date()); + update.setApproveRemark(remark); + saleShipmentMapper.updateByPrimaryKeySelective(update); + logService.insertLog("发货管理", (Boolean.FALSE.equals(pass) ? "驳回" : "审批") + "发货通知[" + old.getShipmentNumber() + "]", request); + return 1; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int confirmShipment(JSONObject obj, HttpServletRequest request) throws Exception { + Long id = obj.getLong("id"); + SaleShipment old = getExistingShipment(id); + if (!STATUS_WAIT_SHIP.equals(old.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待发货状态的通知才能确认发货"); + } + List currentItems = saleShipmentMapper.selectItemsByShipmentId(id); + Map currentMap = currentItems.stream() + .collect(Collectors.toMap(SaleShipmentItem::getSaleOutItemId, item -> item, (a, b) -> a)); + List rows = parseConfirmItems(obj.getJSONArray("rows"), currentMap, id); + if (rows.isEmpty()) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "发货明细不能为空"); + } + boolean allFull = true; + for (SaleShipmentItem item : rows) { + if (safe(item.getActualQuantity()).compareTo(safe(item.getPlanQuantity())) < 0) { + allFull = false; + break; + } + } + User user = userService.getCurrentUser(); + SaleShipment update = new SaleShipment(); + update.setId(id); + update.setStatus(allFull ? STATUS_SHIPPED : STATUS_PART_SHIPPED); + update.setLogisticsCompany(obj.getString("logisticsCompany")); + update.setLogisticsNo(obj.getString("logisticsNo")); + update.setReceiver(obj.getString("receiver")); + update.setReceiverPhone(obj.getString("receiverPhone")); + update.setReceiverAddress(obj.getString("receiverAddress")); + update.setDifferenceRemark(obj.getString("differenceRemark")); + update.setShipBy(user == null ? null : user.getId()); + update.setShipTime(new Date()); + update.setConfirmBy(user == null ? null : user.getId()); + update.setConfirmTime(new Date()); + saleShipmentMapper.updateByPrimaryKeySelective(update); + saleShipmentMapper.batchDeleteItemsByShipmentId(id); + saleShipmentMapper.batchInsertItems(rows); + for (SaleShipmentItem item : rows) { + if (safe(item.getActualQuantity()).compareTo(BigDecimal.ZERO) > 0) { + depotItemService.applyShipmentStockOut(depotItemService.getDepotItem(item.getSaleOutItemId()), item.getActualQuantity()); + } + } + if (old.getDeliveryPlanId() != null) { + deliveryPlanService.refreshPlanStatus(old.getDeliveryPlanId()); + } + logService.insertLog("发货管理", "确认发货[" + old.getShipmentNumber() + "]", request); + return 1; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteShipment(Long id, HttpServletRequest request) throws Exception { + SaleShipment old = getExistingShipment(id); + if (!STATUS_WAIT_APPROVE.equals(old.getStatus()) && !STATUS_REJECTED.equals(old.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有待审批或已驳回的发货通知才能删除"); + } + SaleShipment update = new SaleShipment(); + update.setId(id); + update.setDeleteFlag("1"); + saleShipmentMapper.updateByPrimaryKeySelective(update); + saleShipmentMapper.batchDeleteItemsByShipmentId(id); + logService.insertLog("发货管理", "删除发货通知[" + old.getShipmentNumber() + "]", request); + return 1; + } + + private DepotHead getValidSaleOut(Long saleOutId) { + if (saleOutId == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "请选择销售出库单"); + } + DepotHead saleOut; + try { + saleOut = depotHeadService.getDepotHead(saleOutId); + } catch (Exception e) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "销售出库单不存在"); + } + if (saleOut == null || "1".equals(saleOut.getDeleteFlag())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "销售出库单不存在"); + } + if (!"出库".equals(saleOut.getType()) || (!"销售".equals(saleOut.getSubType()) && !"零售".equals(saleOut.getSubType()))) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只能针对销售出库或零售出库创建发货通知"); + } + if (!STATUS_WAIT_SHIP.equals(saleOut.getStatus())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "只有已审核状态的销售出库单才能创建发货通知"); + } + return saleOut; + } + + private String getSourceType(DepotHead saleOut) { + return "零售".equals(saleOut.getSubType()) ? "retail" : "sale"; + } + + private SaleShipment getExistingShipment(Long id) { + if (id == null) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "发货通知不存在"); + } + SaleShipment shipment = saleShipmentMapper.selectByPrimaryKey(id); + if (shipment == null || "1".equals(shipment.getDeleteFlag())) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "发货通知不存在"); + } + return shipment; + } + + private List parseNoticeItems(JSONArray arr, Map sourceMap, + Long shipmentId, Long excludeShipmentId) { + List rows = new ArrayList<>(); + if (arr == null || arr.isEmpty()) { + return rows; + } + for (int i = 0; i < arr.size(); i++) { + JSONObject row = arr.getJSONObject(i); + Long saleOutItemId = row.getLong("saleOutItemId"); + SaleShipmentItem source = sourceMap.get(saleOutItemId); + if (source == null) { + continue; + } + BigDecimal planQuantity = row.getBigDecimal("planQuantity"); + if (planQuantity == null) { + planQuantity = row.getBigDecimal("actualQuantity"); + } + BigDecimal remaining = safe(source.getPlanQuantity()).subtract(saleShipmentMapper + .getConfirmedQuantityBySaleOutItemId(saleOutItemId, excludeShipmentId)); + if (planQuantity == null || planQuantity.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + if (planQuantity.compareTo(remaining) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + source.getMaterialName() + " 本次发货数量不能大于剩余可发数量 " + remaining); + } + SaleShipmentItem item = buildShipmentItem(source, shipmentId, planQuantity, BigDecimal.ZERO); + item.setRemark(row.getString("remark")); + rows.add(item); + } + return rows; + } + + private List parseConfirmItems(JSONArray arr, Map currentMap, + Long shipmentId) { + List rows = new ArrayList<>(); + if (arr == null || arr.isEmpty()) { + return rows; + } + for (int i = 0; i < arr.size(); i++) { + JSONObject row = arr.getJSONObject(i); + Long saleOutItemId = row.getLong("saleOutItemId"); + SaleShipmentItem current = currentMap.get(saleOutItemId); + if (current == null) { + continue; + } + BigDecimal actualQuantity = row.getBigDecimal("actualQuantity"); + if (actualQuantity == null) { + actualQuantity = BigDecimal.ZERO; + } + if (actualQuantity.compareTo(BigDecimal.ZERO) < 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + current.getMaterialName() + " 实际发货数量不能小于0"); + } + if (actualQuantity.compareTo(safe(current.getPlanQuantity())) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + current.getMaterialName() + " 实际发货数量不能大于本批计划发货数量 " + + current.getPlanQuantity()); + } + BigDecimal otherActiveQuantity = saleShipmentMapper + .getActuallyShippedQuantityBySaleOutItemId(saleOutItemId, shipmentId); + BigDecimal saleOutQuantity; + try { + saleOutQuantity = depotItemService.getDepotItem(saleOutItemId).getOperNumber(); + } catch (Exception e) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, "销售出库明细不存在"); + } + BigDecimal maxQuantity = safe(saleOutQuantity).subtract(safe(otherActiveQuantity)); + if (actualQuantity.compareTo(maxQuantity) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + current.getMaterialName() + " 实际发货数量不能大于剩余可发数量 " + maxQuantity); + } + SaleShipmentItem item = buildShipmentItem(current, shipmentId, safe(current.getPlanQuantity()), actualQuantity); + item.setRemark(row.getString("remark")); + rows.add(item); + } + return rows; + } + + private List parsePlanNoticeItems(JSONArray arr, Map sourceMap, + Long shipmentId) { + List rows = new ArrayList<>(); + if (arr == null || arr.isEmpty()) { + return rows; + } + for (int i = 0; i < arr.size(); i++) { + JSONObject row = arr.getJSONObject(i); + Long deliveryPlanItemId = row.getLong("deliveryPlanItemId"); + DeliveryPlanItem source = sourceMap.get(deliveryPlanItemId); + if (source == null) { + continue; + } + BigDecimal planQuantity = row.getBigDecimal("planQuantity"); + BigDecimal remaining = safe(source.getPlanQuantity()).subtract(safe( + deliveryPlanMapper.getCommittedQuantityByPlanItemId(deliveryPlanItemId))); + if (planQuantity == null || planQuantity.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + if (planQuantity.compareTo(remaining) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + source.getMaterialName() + " 本次发货数量不能大于交货计划剩余数量 " + remaining); + } + SaleShipmentItem item = buildShipmentItem(source, shipmentId, planQuantity, BigDecimal.ZERO); + item.setRemark(row.getString("remark")); + rows.add(item); + } + return rows; + } + + private SaleShipmentItem buildShipmentItem(SaleShipmentItem source, Long shipmentId, + BigDecimal planQuantity, BigDecimal actualQuantity) { + SaleShipmentItem item = new SaleShipmentItem(); + item.setShipmentId(shipmentId); + item.setDeliveryPlanItemId(source.getDeliveryPlanItemId()); + item.setSaleOutItemId(source.getSaleOutItemId()); + item.setMaterialId(source.getMaterialId()); + item.setMaterialExtendId(source.getMaterialExtendId()); + item.setBarCode(source.getBarCode()); + item.setMaterialName(source.getMaterialName()); + item.setStandard(source.getStandard()); + item.setModel(source.getModel()); + item.setUnit(source.getUnit()); + item.setBatchNumber(source.getBatchNumber()); + item.setSnList(source.getSnList()); + item.setPlanQuantity(safe(planQuantity)); + item.setActualQuantity(safe(actualQuantity)); + item.setShippedQuantity(safe(source.getShippedQuantity())); + item.setDifferenceQuantity(safe(actualQuantity).subtract(safe(planQuantity))); + item.setDepotId(source.getDepotId()); + item.setRemark(source.getRemark()); + item.setTenantId(source.getTenantId()); + item.setDeleteFlag("0"); + return item; + } + + private SaleShipmentItem buildShipmentItem(DeliveryPlanItem source, Long shipmentId, + BigDecimal planQuantity, BigDecimal actualQuantity) { + SaleShipmentItem item = new SaleShipmentItem(); + item.setShipmentId(shipmentId); + item.setDeliveryPlanItemId(source.getId()); + item.setSaleOutItemId(source.getSourceItemId()); + item.setMaterialId(source.getMaterialId()); + item.setMaterialExtendId(source.getMaterialExtendId()); + item.setBarCode(source.getBarCode()); + item.setMaterialName(source.getMaterialName()); + item.setStandard(source.getStandard()); + item.setModel(source.getModel()); + item.setUnit(source.getUnit()); + item.setBatchNumber(source.getBatchNumber()); + item.setSnList(source.getSnList()); + item.setPlanQuantity(safe(planQuantity)); + item.setActualQuantity(safe(actualQuantity)); + item.setShippedQuantity(safe(source.getShippedQuantity())); + item.setDifferenceQuantity(safe(actualQuantity).subtract(safe(planQuantity))); + item.setDepotId(source.getDepotId()); + item.setRemark(source.getRemark()); + item.setTenantId(source.getTenantId()); + item.setDeleteFlag("0"); + return item; + } + + private BigDecimal safe(BigDecimal value) { + return value == null ? BigDecimal.ZERO : value; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/SequenceService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/SequenceService.java new file mode 100644 index 0000000..6c44e7d --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/SequenceService.java @@ -0,0 +1,138 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.SerialNumber; +import com.reallin.smt.datasource.entities.SerialNumberEx; +import com.reallin.smt.datasource.mappers.SequenceMapperEx; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.utils.RedisLockUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.UUID; + +/** + * Description + * + * @Author: jishenghua + * @Date: 2021/3/16 16:33 + */ +@Service +public class SequenceService { + private Logger logger = LoggerFactory.getLogger(SequenceService.class); + + @Resource + private SequenceMapperEx sequenceMapperEx; + + @Resource + private RedisLockUtil redisLockUtil; + + private static final long LOCK_EXPIRE_TIME = 3000; // 锁有效期3秒 + private static final long LOCK_WAIT_TIME = 100; // 等待锁时间100ms + + public SerialNumber getSequence(long id)throws Exception { + return null; + } + + public List select(String name, Integer offset, Integer rows)throws Exception { + return null; + } + + public Long countSequence(String name)throws Exception { + return null; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertSequence(JSONObject obj, HttpServletRequest request)throws Exception { + return 0; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateSequence(JSONObject obj, HttpServletRequest request) throws Exception{ + return 0; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteSequence(Long id, HttpServletRequest request)throws Exception { + return 0; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSequence(String ids, HttpServletRequest request)throws Exception { + return 0; + } + + public int checkIsNameExist(Long id, String serialNumber)throws Exception { + return 0; + } + + /** + * 获取唯一单据编号 + */ + public String buildOnlyNumber() throws Exception { + String lockKey = "sequence:lock:" + BusinessConstants.DEPOT_NUMBER_SEQ; + String requestId = UUID.randomUUID().toString(); // 唯一请求ID + boolean locked = false; + try { + // 尝试获取分布式锁 + locked = redisLockUtil.tryLock( + lockKey, + requestId, + LOCK_EXPIRE_TIME, + LOCK_WAIT_TIME + ); + if (!locked) { + throw new BusinessRunTimeException(ExceptionConstants.SEQUENCE_ONLY_FAILED_CODE, ExceptionConstants.SEQUENCE_ONLY_FAILED_MSG); + } + // 执行业务逻辑 + return doGenerateSequence(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new BusinessRunTimeException(ExceptionConstants.SEQUENCE_ONLY_BREAK_CODE, ExceptionConstants.SEQUENCE_ONLY_BREAK_MSG); + } finally { + // 释放锁 + if (locked) { + redisLockUtil.unlock(lockKey, requestId); + } + } + } + + /** + * 实际生成单据编号 + */ + private String doGenerateSequence() throws Exception { + try { + // 执行数据库更新 + sequenceMapperEx.updateBuildOnlyNumber(); + Long number = sequenceMapperEx.getBuildOnlyNumber(BusinessConstants.DEPOT_NUMBER_SEQ); + // 格式化返回 + return formatNumber(number); + } catch (Exception e) { + logger.error("生成单据编号失败", e); + throw new BusinessRunTimeException(ExceptionConstants.SEQUENCE_ONLY_BREAK_CODE, ExceptionConstants.SEQUENCE_ONLY_BREAK_MSG); + } + } + + /** + * 格式化数字 + */ + private String formatNumber(Long number) { + if (number < BusinessConstants.SEQ_TO_STRING_MIN_LENGTH) { + StringBuffer sb = new StringBuffer(number.toString()); + int len = BusinessConstants.SEQ_TO_STRING_MIN_LENGTH.toString().length() - sb.length(); + for (int i = 0; i < len; i++) { + sb.insert(0, BusinessConstants.SEQ_TO_STRING_LESS_INSERT); + } + return sb.toString(); + } else { + return number.toString(); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/SerialNumberService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/SerialNumberService.java new file mode 100644 index 0000000..9edd799 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/SerialNumberService.java @@ -0,0 +1,294 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.*; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SerialNumberService { + private Logger logger = LoggerFactory.getLogger(SerialNumberService.class); + + @Resource + private SerialNumberMapper serialNumberMapper; + @Resource + private SerialNumberMapperEx serialNumberMapperEx; + @Resource + private MaterialMapperEx materialMapperEx; + @Resource + private MaterialService materialService; + @Resource + private UserService userService; + @Resource + private LogService logService; + + public SerialNumber getSerialNumber(long id)throws Exception { + SerialNumber result=null; + try{ + result=serialNumberMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getSerialNumberListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + SerialNumberExample example = new SerialNumberExample(); + example.createCriteria().andIdIn(idList); + list = serialNumberMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getSerialNumber()throws Exception { + SerialNumberExample example = new SerialNumberExample(); + List list=null; + try{ + list=serialNumberMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String serialNumber, String materialName, Integer offset, Integer rows)throws Exception { + return null; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertSerialNumber(JSONObject obj, HttpServletRequest request)throws Exception { + return 0; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateSerialNumber(JSONObject obj, HttpServletRequest request) throws Exception{ + return 0; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteSerialNumber(Long id, HttpServletRequest request)throws Exception { + return 0; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSerialNumber(String ids, HttpServletRequest request)throws Exception { + return 0; + } + + public int checkIsNameExist(Long id, String serialNumber)throws Exception { + return 0; + } + + /** + * 根据商品名称判断给商品添加序列号是否可行 + * 1、根据商品名称必须查询到唯一的商品 + * 2、该商品必须已经启用序列号 + * 3、该商品已绑定序列号数量小于商品现有库存 + * 用商品的库存去限制序列号的添加有点不合乎道理,去掉此限制 + * @return Long 满足使用条件的商品的id + */ + public Long getSerialNumberMaterialIdByBarCode(String materialCode)throws Exception{ + if(StringUtil.isNotEmpty(materialCode)){ + //计算商品库存和目前占用的可用序列号数量关系 + //库存=入库-出库 + //入库数量 + Long materialId = 0L; + List list = materialService.getMaterialByBarCode(materialCode); + if(list!=null && list.size()>0) { + materialId = list.get(0).getId(); + } + return materialId; + } + return null; + } + + /** + * 出库时判断序列号库存是否足够, + * 同时将对应的序列号绑定单据 + */ + public void checkAndUpdateSerialNumber(DepotItem depotItem, String outBillNo,User userInfo, String snList) throws Exception{ + if(depotItem!=null){ + sellSerialNumber(depotItem.getMaterialId(), outBillNo, snList,userInfo); + } + } + + /** + * 出售序列号 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void sellSerialNumber(Long materialId, String outBillNo, String snList, User user) throws Exception{ + //将中文的逗号批量替换为英文逗号 + snList = snList.replaceAll(",",","); + String [] snArray=snList.split(","); + for (String sn : snArray) { + int isNotSellCount = serialNumberMapperEx.getIsNotSellCountByParam(materialId, sn); + if (isNotSellCount == 0) { + //如果序列号不存在或者已售出则进行提示,不再进行后续的出售操作 + throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_NOT_EXISTS_CODE, + String.format(ExceptionConstants.SERIAL_NUMBERE_NOT_EXISTS_MSG, sn)); + } + } + List minList = serialNumberMapperEx.getMinSerialNumberByMaterialIdAndSn(materialId, snArray); + List idList = new ArrayList<>(); + for (SerialNumber serialNumber : minList) { + idList.add(serialNumber.getId()); + } + serialNumberMapperEx.sellSerialNumber(idList, outBillNo, new Date(), user == null ? null : user.getId()); + } + + /** + * 赎回序列号 + * @Param: materialId + * @Param: depotheadId + * @Param: isSell 赎回'0' + * @Param: Count 卖出或者赎回的数量 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int cancelSerialNumber(Long materialId, String outBillNo,int count,User user) throws Exception{ + int result=0; + try{ + result = serialNumberMapperEx.cancelSerialNumber(materialId,outBillNo,count,new Date(),user==null?null:user.getId()); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 批量添加序列号,最多500个 + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batAddSerialNumber(String materialCode, String serialNumberPrefix, Integer batAddTotal, String remark)throws Exception { + int result=0; + try { + if (StringUtil.isNotEmpty(materialCode)) { + //查询商品id + Long materialId = getSerialNumberMaterialIdByBarCode(materialCode); + List list = null; + //当前用户 + User userInfo = userService.getCurrentUser(); + Long userId = userInfo == null ? null : userInfo.getId(); + Date date = null; + Long million = null; + synchronized (this) { + date = new Date(); + million = date.getTime(); + } + int insertNum = 0; + StringBuffer prefixBuf = new StringBuffer(serialNumberPrefix).append(million); + list = new ArrayList(); + int forNum = BusinessConstants.BATCH_INSERT_MAX_NUMBER >= batAddTotal ? batAddTotal : BusinessConstants.BATCH_INSERT_MAX_NUMBER; + for (int i = 0; i < forNum; i++) { + insertNum++; + SerialNumberEx each = new SerialNumberEx(); + each.setMaterialId(materialId); + each.setCreator(userId); + each.setCreateTime(date); + each.setUpdater(userId); + each.setUpdateTime(date); + each.setRemark(remark); + each.setSerialNumber(new StringBuffer(prefixBuf.toString()).append(insertNum).toString()); + list.add(each); + } + result = serialNumberMapperEx.batAddSerialNumber(list); + logService.insertLog("序列号", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_BATCH_ADD).append(batAddTotal).append(BusinessConstants.LOG_DATA_UNIT).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + public List getEnableSerialNumberList(String number, String name, String [] nameArray, Long depotId, String barCode, Integer offset, Integer rows)throws Exception { + List list =null; + try{ + list = serialNumberMapperEx.getEnableSerialNumberList(StringUtil.toNull(number), StringUtil.toNull(name), nameArray, depotId, barCode, offset, rows); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public Long getEnableSerialNumberCount(String number, String name, String [] nameArray, Long depotId, String barCode)throws Exception { + Long count = 0L; + try{ + count = serialNumberMapperEx.getEnableSerialNumberCount(StringUtil.toNull(number), StringUtil.toNull(name), nameArray, depotId, barCode); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return count; + } + + public void addSerialNumberByBill(String type, String subType, String inBillNo, Long materialId, Long depotId, BigDecimal inPrice, String snList) throws Exception { + //录入序列号的时候不能和库里面的重复-入库 + if ((BusinessConstants.SUB_TYPE_PURCHASE.equals(subType) || + BusinessConstants.SUB_TYPE_OTHER.equals(subType) || + BusinessConstants.SUB_TYPE_SALES_RETURN.equals(subType)|| + BusinessConstants.SUB_TYPE_RETAIL_RETURN.equals(subType)) && + BusinessConstants.DEPOTHEAD_TYPE_IN.equals(type)) { + //将中文的逗号批量替换为英文逗号 + snList = snList.replaceAll(",", ","); + List snArr = StringUtil.strToStringList(snList); + for (String sn : snArr) { + List list = new ArrayList<>(); + SerialNumberExample example = new SerialNumberExample(); + example.createCriteria().andMaterialIdEqualTo(materialId).andSerialNumberEqualTo(sn.trim()).andIsSellEqualTo("0") + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + list = serialNumberMapper.selectByExample(example); + //判断如果不存在重复序列号就新增 + if (list == null || list.size() == 0) { + SerialNumber serialNumber = new SerialNumber(); + serialNumber.setMaterialId(materialId); + serialNumber.setDepotId(depotId); + serialNumber.setSerialNumber(sn); + serialNumber.setInPrice(inPrice); + Date date = new Date(); + serialNumber.setCreateTime(date); + serialNumber.setUpdateTime(date); + User userInfo = userService.getCurrentUser(); + serialNumber.setCreator(userInfo == null ? null : userInfo.getId()); + serialNumber.setUpdater(userInfo == null ? null : userInfo.getId()); + serialNumber.setInBillNo(inBillNo); + serialNumberMapper.insertSelective(serialNumber); + } else { + if(!inBillNo.equals(list.get(0).getInBillNo())) { + throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_CODE, + String.format(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_MSG, sn)); + } + } + } + } + } + + /** + * 直接删除序列号 + * @param example + */ + public void deleteByExample(SerialNumberExample example) { + serialNumberMapper.deleteByExample(example); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/SmtInboundService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/SmtInboundService.java new file mode 100644 index 0000000..8a8f42e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/SmtInboundService.java @@ -0,0 +1,440 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.exception.BusinessRunTimeException; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.support.GeneratedKeyHolder; +import org.springframework.jdbc.support.KeyHolder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.sql.PreparedStatement; +import java.sql.Statement; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class SmtInboundService { + private static final String DEFAULT_SUPPLIER = "浙江瑞银电子有限公司"; + private static final String[] TEMPLATE_HEADERS = { + "单据编号", "单据日期", "成品物料代码", "成品名称", "规格型号", + "出货量", "商品单价", "未税金额", "价税合计", "来源单据号" + }; + + @Resource + private JdbcTemplate jdbcTemplate; + @Resource + private UserService userService; + + @Value("${smt.syncCreatorId:63}") + private Long syncCreatorId; + + public Long creatorId(HttpServletRequest request) { + try { + Long id = userService.getUserId(request); + return id == null ? syncCreatorId : id; + } catch (Exception e) { + return syncCreatorId; + } + } + + public String nextNumber(String businessDate) { + Date date = parseDate(businessDate); + String prefix = new SimpleDateFormat("'SM'yyMMdd").format(date); + String max = jdbcTemplate.queryForObject( + "select max(number) from tbl_depot_head where sub_type='总部入库' and delete_flag<>'1' and number like ?", + String.class, prefix + "%"); + int sequence = 1; + if (max != null && max.matches("SM\\d{10}")) { + sequence = Integer.parseInt(max.substring(8)) + 1; + } + return prefix + String.format("%04d", sequence); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Long save(JSONObject info, JSONArray rows, Long creatorId) { + validate(info, rows); + Long id = info.getLong("id"); + String number = info.getString("number").trim(); + Timestamp operTime = new Timestamp(parseDate(info.getString("operTime")).getTime()); + BigDecimal total = sum(rows, "totalMoney", "allPrice").negate(); + Long supplierId = defaultSupplierId(); + if (id == null) { + List> existing = jdbcTemplate.queryForList( + "select id,status from tbl_depot_head where number=? and sub_type='总部入库' and delete_flag<>'1' limit 1", + number); + if (!existing.isEmpty()) { + if (!"0".equals(String.valueOf(existing.get(0).get("status")))) { + throw new BusinessRunTimeException(500, "单据 " + number + " 已审核,不能覆盖"); + } + id = ((Number) existing.get(0).get("id")).longValue(); + } + } + if (id == null) { + KeyHolder keyHolder = new GeneratedKeyHolder(); + jdbcTemplate.update(connection -> { + PreparedStatement ps = connection.prepareStatement( + "insert into tbl_depot_head(type,sub_type,default_number,number,create_time,oper_time,creator," + + "organ_id,total_price,discount_last_money,other_money,deposit,change_amount,pay_type,remark," + + "status,purchase_status,source,delete_flag) " + + "values('入库','总部入库',?,?,now(),?,?,?,?,0,0,0,0,'现付',?,'0','0','0','0')", + Statement.RETURN_GENERATED_KEYS); + ps.setString(1, number); + ps.setString(2, number); + ps.setTimestamp(3, operTime); + ps.setLong(4, creatorId); + ps.setLong(5, supplierId); + ps.setBigDecimal(6, total); + ps.setString(7, info.getString("remark")); + return ps; + }, keyHolder); + id = Objects.requireNonNull(keyHolder.getKey()).longValue(); + } else { + String status = jdbcTemplate.queryForObject("select status from tbl_depot_head where id=?", String.class, id); + if (!"0".equals(status)) { + throw new BusinessRunTimeException(500, "已审核单据不能修改"); + } + jdbcTemplate.update("update tbl_depot_head set number=?,default_number=?,oper_time=?,organ_id=?,total_price=?," + + "discount_last_money=0,other_money=0,deposit=0,change_amount=0,remark=? where id=?", + number, number, operTime, supplierId, total, info.getString("remark"), id); + } + replaceRows(id, rows); + return id; + } + + private void replaceRows(Long headerId, JSONArray rows) { + jdbcTemplate.update("delete from tbl_headquarters_inbound_item where header_id=?", headerId); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + String code = first(row, "materialCode", "barCode"); + String name = first(row, "materialName", "name"); + String specification = first(row, "specification", "standard", "model"); + BigDecimal qty = decimal(row, "qtyPriceAmount", "qty", "operNumber"); + BigDecimal price = decimal(row, "finallyPrice", "unitPrice"); + BigDecimal net = decimal(row, "totalNetMoney"); + BigDecimal money = decimal(row, "totalMoney", "allPrice"); + Long depotId = row.getLong("depotId"); + if (money == null && qty != null && price != null) money = qty.multiply(price); + JSONObject itemJson = new JSONObject(true); + itemJson.put("成品物料代码", code); + itemJson.put("成品名称", name); + itemJson.put("规格型号", specification); + itemJson.put("出货量", qty); + itemJson.put("商品单价", price); + itemJson.put("未税金额", net); + itemJson.put("价税合计", money); + jdbcTemplate.update("insert into tbl_headquarters_inbound_item(header_id,material_code,material_name,specification,qty," + + "unit_price,total_net_money,total_money,depot_id,item_json,source_doc_no,delete_flag) values(?,?,?,?,?,?,?,?,?,?,?,'0')", + headerId, code, name, specification, qty, price, net, money, depotId, itemJson.toJSONString(), + first(row, "sourceDocNo", "source_doc_no")); + } + } + + public List> details(Long headerId) { + return jdbcTemplate.queryForList("select hi.id,cast(hi.depot_id as char) depotId,d.name depotName," + + "hi.material_code barCode,hi.material_code materialCode," + + "hi.material_name name,hi.material_name materialName,hi.specification standard,hi.specification," + + "hi.qty operNumber,hi.qty qtyPriceAmount,hi.unit_price unitPrice,hi.unit_price finallyPrice," + + "hi.total_net_money totalNetMoney,hi.total_money allPrice,hi.total_money totalMoney," + + "hi.item_json itemJson,hi.source_doc_no sourceDocNo from tbl_headquarters_inbound_item hi " + + "left join tbl_depot d on d.id=hi.depot_id and d.delete_flag<>'1' " + + "where hi.header_id=? and hi.delete_flag<>'1' order by hi.id", + headerId); + } + + public Map summary(Long headerId) { + List> rows = jdbcTemplate.queryForList( + "select group_concat(concat(material_code,' ',material_name) separator ', ') materials," + + "coalesce(sum(qty),0) material_count from tbl_headquarters_inbound_item " + + "where header_id=? and delete_flag<>'1'", headerId); + return rows.isEmpty() ? Collections.emptyMap() : rows.get(0); + } + + public Map importExcel(MultipartFile file, Long creatorId) throws Exception { + List list = new ArrayList<>(); + try (InputStream in = file.getInputStream(); Workbook workbook = WorkbookFactory.create(in)) { + Sheet sheet = workbook.getSheetAt(0); + DataFormatter formatter = new DataFormatter(); + for (int i = 1; i <= sheet.getLastRowNum(); i++) { + Row row = sheet.getRow(i); + if (row == null || formatter.formatCellValue(row.getCell(0)).trim().isEmpty()) continue; + JSONObject item = new JSONObject(); + item.put("docNo", formatter.formatCellValue(row.getCell(0)).trim()); + Cell dateCell = row.getCell(1); + item.put("businessDate", dateCell != null && DateUtil.isCellDateFormatted(dateCell) + ? new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(dateCell.getDateCellValue()) + : formatter.formatCellValue(dateCell).trim()); + item.put("materialCode", formatter.formatCellValue(row.getCell(2)).trim()); + item.put("materialName", formatter.formatCellValue(row.getCell(3)).trim()); + item.put("specification", formatter.formatCellValue(row.getCell(4)).trim()); + item.put("qtyPriceAmount", numeric(row.getCell(5), formatter)); + item.put("finallyPrice", numeric(row.getCell(6), formatter)); + item.put("totalNetMoney", numeric(row.getCell(7), formatter)); + item.put("totalMoney", numeric(row.getCell(8), formatter)); + item.put("sourceDocNo", formatter.formatCellValue(row.getCell(9)).trim()); + list.add(item); + } + } + return sync(list, creatorId); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Map sync(List payload, Long creatorId) { + LinkedHashMap> grouped = new LinkedHashMap<>(); + for (JSONObject row : payload) { + String docNo = row.getString("docNo"); + if (docNo == null || docNo.trim().isEmpty()) throw new IllegalArgumentException("单据编号不能为空"); + grouped.computeIfAbsent(docNo.trim(), k -> new ArrayList<>()).add(row); + } + int created = 0, overwritten = 0; + List audited = new ArrayList<>(); + for (Map.Entry> entry : grouped.entrySet()) { + List> found = jdbcTemplate.queryForList( + "select id,status from tbl_depot_head where number=? and sub_type='总部入库' and delete_flag<>'1' limit 1", + entry.getKey()); + if (!found.isEmpty() && !"0".equals(String.valueOf(found.get(0).get("status")))) { + audited.add(entry.getKey()); + continue; + } + JSONObject info = new JSONObject(); + if (!found.isEmpty()) info.put("id", ((Number) found.get(0).get("id")).longValue()); + info.put("number", entry.getKey()); + info.put("operTime", entry.getValue().get(0).getString("businessDate")); + info.put("remark", "SMT平台/Excel同步"); + JSONArray detailRows = new JSONArray(); + detailRows.addAll(entry.getValue()); + save(info, detailRows, creatorId); + if (found.isEmpty()) created++; else overwritten++; + } + Map result = new LinkedHashMap<>(); + result.put("created", created); + result.put("overwritten", overwritten); + result.put("rejected", audited.size()); + result.put("auditedDocNos", audited); + String summary = String.format("同步完成:新增%d,覆盖%d,已审核跳过%d", created, overwritten, audited.size()); + result.put("message", audited.isEmpty() ? summary : summary + ";冲突单号:" + String.join(", ", audited)); + return result; + } + + public void exportTemplate(HttpServletResponse response) throws Exception { + try (Workbook workbook = new XSSFWorkbook()) { + Sheet sheet = workbook.createSheet("Sheet1"); + Row header = sheet.createRow(0); + for (int i = 0; i < TEMPLATE_HEADERS.length; i++) { + header.createCell(i).setCellValue(TEMPLATE_HEADERS[i]); + sheet.setColumnWidth(i, i == 3 || i == 4 ? 6000 : 4500); + } + String fileName = URLEncoder.encode("总部入库导入模板.xlsx", StandardCharsets.UTF_8.name()); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + workbook.write(response.getOutputStream()); + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void prepareForApproval(Long headerId) { + List> rows = jdbcTemplate.queryForList( + "select * from tbl_headquarters_inbound_item where header_id=? and delete_flag<>'1' order by id", headerId); + if (rows.isEmpty()) return; + jdbcTemplate.update("delete from tbl_depot_item where header_id=?", headerId); + BigDecimal total = BigDecimal.ZERO; + for (Map row : rows) { + String code = String.valueOf(row.get("material_code")); + String name = String.valueOf(row.get("material_name")); + String specification = row.get("specification") == null ? null : String.valueOf(row.get("specification")); + BigDecimal price = bd(row.get("unit_price")); + Long depotId = validateDepot(row.get("depot_id"), code); + Long[] material = upsertMaterial(code, name, specification, price); + BigDecimal qty = bd(row.get("qty")); + BigDecimal money = bd(row.get("total_money")); + if (money == null) money = qty.multiply(price == null ? BigDecimal.ZERO : price); + total = total.add(money); + jdbcTemplate.update("insert into tbl_depot_item(header_id,material_id,material_extend_id,material_unit," + + "oper_number,basic_number,unit_price,purchase_unit_price,tax_unit_price,all_price,depot_id," + + "tax_money,tax_last_money,delete_flag) values(?,?,?,'件',?,?,?,?,?,?,?,?,?,'0')", + headerId, material[0], material[1], qty, qty, price, price, price, money, depotId, + money.subtract(bd(row.get("total_net_money")) == null ? money : bd(row.get("total_net_money"))), + money); + } + BigDecimal payableAmount = total.abs(); + jdbcTemplate.update("update tbl_depot_head set total_price=?,discount_last_money=?,other_money=0," + + "deposit=0,change_amount=0,debt=?,last_debt=? where id=?", + total.negate(), payableAmount, payableAmount, payableAmount, headerId); + } + + private Long validateDepot(Object depotValue, String materialCode) { + if (!(depotValue instanceof Number)) { + throw new BusinessRunTimeException(500, "商品 " + materialCode + " 未填写入库仓库,请编辑单据后再审核"); + } + Long depotId = ((Number) depotValue).longValue(); + Integer count = jdbcTemplate.queryForObject( + "select count(1) from tbl_depot where id=? and enabled=1 and delete_flag<>'1'", Integer.class, depotId); + if (count == null || count == 0) { + throw new BusinessRunTimeException(500, "商品 " + materialCode + " 选择的入库仓库不存在或已停用,请重新选择"); + } + return depotId; + } + + private Long defaultSupplierId() { + List ids = jdbcTemplate.query( + "select id from tbl_supplier where supplier=? and enabled=1 and delete_flag<>'1' order by id limit 1", + (rs, n) -> rs.getLong(1), DEFAULT_SUPPLIER); + if (ids.isEmpty()) { + throw new BusinessRunTimeException(500, "默认供应商不存在或未启用:" + DEFAULT_SUPPLIER); + } + return ids.get(0); + } + + private Long[] upsertMaterial(String code, String name, String specification, BigDecimal price) { + List> list = jdbcTemplate.queryForList( + "select m.id material_id,me.id extend_id from tbl_material_extend me join tbl_material m on m.id=me.material_id " + + "where me.bar_code=? and me.delete_flag<>'1' and m.delete_flag<>'1' limit 1", code); + Long materialId; + Long extendId; + if (list.isEmpty()) { + throw new BusinessRunTimeException(500, "商品条码不存在:" + code + ",请重新绑定正确商品,或点击新增商品信息后再审核"); + } else { + materialId = ((Number) list.get(0).get("material_id")).longValue(); + extendId = ((Number) list.get(0).get("extend_id")).longValue(); + } + return new Long[]{materialId, extendId}; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Map createMaterialIfMissing(JSONObject item) { + String code = first(item, "materialCode", "barCode"); + String name = first(item, "materialName", "name"); + String specification = first(item, "specification", "standard", "model"); + BigDecimal price = decimal(item, "finallyPrice", "unitPrice"); + if (code == null || name == null) { + throw new IllegalArgumentException("成品物料代码和成品名称不能为空"); + } + List> existing = jdbcTemplate.queryForList( + "select m.id material_id,me.id extend_id,m.name from tbl_material_extend me " + + "join tbl_material m on m.id=me.material_id " + + "where me.bar_code=? and me.delete_flag<>'1' and m.delete_flag<>'1' limit 1", code); + Map result = new LinkedHashMap<>(); + if (!existing.isEmpty()) { + result.put("created", false); + result.put("materialId", existing.get(0).get("material_id")); + result.put("materialName", existing.get(0).get("name")); + result.put("message", "商品条码已存在,未新增、未覆盖原商品信息"); + return result; + } + Long categoryId = finishedMaterialCategoryId(); + KeyHolder materialKey = new GeneratedKeyHolder(); + jdbcTemplate.update(c -> { + PreparedStatement ps = c.prepareStatement("insert into tbl_material(category_id,name,model,standard,unit,enabled," + + "enable_serial_number,enable_batch_number,delete_flag) values(?,?,?,?,'件',1,'0','0','0')", + Statement.RETURN_GENERATED_KEYS); + if (categoryId == null) ps.setNull(1, java.sql.Types.BIGINT); else ps.setLong(1, categoryId); + ps.setString(2, name); + ps.setString(3, specification); + ps.setString(4, specification); + return ps; + }, materialKey); + Long materialId = Objects.requireNonNull(materialKey.getKey()).longValue(); + KeyHolder extendKey = new GeneratedKeyHolder(); + jdbcTemplate.update(c -> { + PreparedStatement ps = c.prepareStatement("insert into tbl_material_extend(material_id,bar_code,commodity_unit," + + "purchase_decimal,commodity_decimal,wholesale_decimal,default_flag,create_time,delete_flag) " + + "values(?,?,'件',?,?,?,'1',now(),'0')", Statement.RETURN_GENERATED_KEYS); + ps.setLong(1, materialId); + ps.setString(2, code); + ps.setBigDecimal(3, price); + ps.setBigDecimal(4, price); + ps.setBigDecimal(5, price); + return ps; + }, extendKey); + result.put("created", true); + result.put("materialId", materialId); + result.put("materialExtendId", Objects.requireNonNull(extendKey.getKey()).longValue()); + result.put("message", "商品信息新增成功"); + return result; + } + + private Long finishedMaterialCategoryId() { + List ids = jdbcTemplate.query( + "select id from tbl_material_category where name='成品' and delete_flag<>'1' order by id limit 1", + (rs, n) -> rs.getLong(1)); + return ids.isEmpty() ? null : ids.get(0); + } + + private void validate(JSONObject info, JSONArray rows) { + if (info == null || info.getString("number") == null || info.getString("number").trim().isEmpty()) + throw new IllegalArgumentException("单据编号不能为空"); + if (!info.getString("number").matches("SM\\d{10}")) + throw new IllegalArgumentException("单据编号格式应为 SM+6位日期+4位流水号,例如 SM2503070001"); + if (rows == null || rows.isEmpty()) throw new IllegalArgumentException("至少需要一条入库明细"); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + if (first(row, "materialCode", "barCode") == null || first(row, "materialName", "name") == null) + throw new IllegalArgumentException("第 " + (i + 1) + " 行物料代码和成品名称不能为空"); + BigDecimal qty = decimal(row, "qtyPriceAmount", "qty", "operNumber"); + if (qty == null || qty.compareTo(BigDecimal.ZERO) <= 0) + throw new IllegalArgumentException("第 " + (i + 1) + " 行出货量必须大于0"); + } + } + + private Date parseDate(String value) { + if (value == null || value.trim().isEmpty()) return new Date(); + String[] patterns = {"yyyy-MM-dd HH:mm:ss.SSS", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd"}; + for (String pattern : patterns) { + try { + return new SimpleDateFormat(pattern).parse(value.trim()); + } catch (java.text.ParseException ignored) { + // 当前格式不匹配时继续尝试下一格式,全部失败后统一报错。 + } + } + throw new IllegalArgumentException("无法识别单据日期:" + value); + } + + private BigDecimal numeric(Cell cell, DataFormatter formatter) { + if (cell == null) return null; + if (cell.getCellType() == CellType.NUMERIC) return BigDecimal.valueOf(cell.getNumericCellValue()); + String value = formatter.formatCellValue(cell).trim(); + return value.isEmpty() ? null : new BigDecimal(value.replace(",", "")); + } + + private BigDecimal sum(JSONArray rows, String... keys) { + BigDecimal result = BigDecimal.ZERO; + for (int i = 0; i < rows.size(); i++) { + BigDecimal value = decimal(rows.getJSONObject(i), keys); + if (value != null) result = result.add(value); + } + return result; + } + + private String first(JSONObject row, String... keys) { + for (String key : keys) { + String value = row.getString(key); + if (value != null && !value.trim().isEmpty()) return value.trim(); + } + return null; + } + + private BigDecimal decimal(JSONObject row, String... keys) { + for (String key : keys) { + Object value = row.get(key); + if (value != null && !String.valueOf(value).trim().isEmpty()) return new BigDecimal(String.valueOf(value).replace(",", "")); + } + return null; + } + + private BigDecimal bd(Object value) { + return value == null ? null : new BigDecimal(String.valueOf(value)); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/SupplierService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/SupplierService.java new file mode 100644 index 0000000..8163814 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/SupplierService.java @@ -0,0 +1,725 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.datasource.mappers.*; +import com.reallin.smt.datasource.vo.DepotHeadVo4StatementAccount; +import com.reallin.smt.datasource.vo.SupplierSimple; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.*; +import jxl.Sheet; +import jxl.Workbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.math.BigDecimal; +import java.util.*; + + +@Service +public class SupplierService { + private Logger logger = LoggerFactory.getLogger(SupplierService.class); + + @Resource + private SupplierMapper supplierMapper; + + @Resource + private SupplierMapperEx supplierMapperEx; + @Resource + private LogService logService; + @Resource + private UserService userService; + @Resource + private AccountHeadMapperEx accountHeadMapperEx; + @Resource + private DepotHeadMapperEx depotHeadMapperEx; + @Resource + private AccountItemMapperEx accountItemMapperEx; + @Resource + private DepotHeadService depotHeadService; + @Resource + private UserBusinessService userBusinessService; + @Resource + private UserBusinessMapper userBusinessMapper; + + @Value(value="${file.exportTmp}") + private String fileExportTmp; + + public Supplier getSupplier(long id)throws Exception { + Supplier result=null; + try{ + result=supplierMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getSupplierListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + SupplierExample example = new SupplierExample(); + example.createCriteria().andIdIn(idList); + list = supplierMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getSupplier()throws Exception { + SupplierExample example = new SupplierExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=supplierMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String supplier, String type, String contacts, String phonenum, String telephone, Long categoryId) throws Exception{ + List list = new ArrayList<>(); + try{ + String [] creatorArray = depotHeadService.getCreatorArray(); + PageUtils.startPage(); + list = supplierMapperEx.selectByConditionSupplier(supplier, type, contacts, phonenum, telephone, creatorArray, categoryId); + for(Supplier s : list) { + Integer supplierId = s.getId().intValue(); + String beginTime = Tools.getYearBegin(); + String endTime = Tools.getCenternTime(new Date()); + BigDecimal sum = BigDecimal.ZERO; + String supplierType = type; + String inOutType = ""; + String subType = ""; + String typeBack = ""; + String subTypeBack = ""; + String billType = ""; + if (("供应商").equals(supplierType)) { + inOutType = "入库"; + subType = "采购"; + typeBack = "出库"; + subTypeBack = "采购退货"; + billType = "付款"; + } else if (("客户").equals(supplierType)) { + inOutType = "出库"; + subType = "销售"; + typeBack = "入库"; + subTypeBack = "销售退货"; + billType = "收款"; + } + List saList = depotHeadService.getStatementAccount(beginTime, endTime, supplierId, null, + 1, supplierType, inOutType, subType, typeBack, subTypeBack, billType, null, null); + if(saList.size()>0) { + DepotHeadVo4StatementAccount item = saList.get(0); + //期初 = 起始期初金额+上期欠款金额-上期退货的欠款金额-上期收付款 + BigDecimal preNeed = item.getBeginNeed().add(item.getPreDebtMoney()).subtract(item.getPreReturnDebtMoney()).subtract(item.getPreBackMoney()); + item.setPreNeed(preNeed); + //实际欠款 = 本期欠款-本期退货的欠款金额 + BigDecimal realDebtMoney = item.getDebtMoney().subtract(item.getReturnDebtMoney()); + item.setDebtMoney(realDebtMoney); + //期末 = 期初+实际欠款-本期收款 + BigDecimal allNeedGet = preNeed.add(realDebtMoney).subtract(item.getBackMoney()); + sum = sum.add(allNeedGet); + } + if(("客户").equals(s.getType())) { + s.setAllNeedGet(sum); + } else if(("供应商").equals(s.getType())) { + s.setAllNeedPay(sum); + } + } + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertSupplier(JSONObject obj, HttpServletRequest request)throws Exception { + Supplier supplier = JSONObject.parseObject(obj.toJSONString(), Supplier.class); + int result=0; + try{ + supplier.setEnabled(true); + User userInfo=userService.getCurrentUser(); + supplier.setCreator(userInfo==null?null:userInfo.getId()); + result=supplierMapper.insertSelective(supplier); + //新增客户时给当前用户和租户自动授权 + setUserCustomerPermission(request, supplier); + logService.insertLog("商家", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(supplier.getSupplier()).toString(),request); + // 将生成的ID回写到obj中 + obj.put("id", supplier.getId()); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateSupplier(JSONObject obj, HttpServletRequest request)throws Exception { + Supplier supplier = JSONObject.parseObject(obj.toJSONString(), Supplier.class); + if(supplier.getBeginNeedPay() == null) { + supplier.setBeginNeedPay(BigDecimal.ZERO); + } + if(supplier.getBeginNeedGet() == null) { + supplier.setBeginNeedGet(BigDecimal.ZERO); + } + int result=0; + try{ + result=supplierMapper.updateByPrimaryKeySelective(supplier); + logService.insertLog("商家", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(supplier.getSupplier()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteSupplier(Long id, HttpServletRequest request)throws Exception { + return batchDeleteSupplierByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSupplier(String ids, HttpServletRequest request) throws Exception{ + return batchDeleteSupplierByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSupplierByIds(String ids)throws Exception { + int result=0; + String [] idArray=ids.split(","); + //校验财务主表 tbl_accounthead + List accountHeadList=null; + try{ + accountHeadList = accountHeadMapperEx.getAccountHeadListByOrganIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(accountHeadList!=null&&accountHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,OrganIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //校验单据主表 tbl_depot_head + List depotHeadList=null; + try{ + depotHeadList = depotHeadMapperEx.getDepotHeadListByOrganIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(depotHeadList!=null&&depotHeadList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,OrganIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getSupplierListByIds(ids); + for(Supplier supplier: list){ + sb.append("[").append(supplier.getSupplier()).append("]"); + } + logService.insertLog("商家", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + //校验通过执行删除操作 + try{ + result = supplierMapperEx.batchDeleteSupplierByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + SupplierExample example = new SupplierExample(); + example.createCriteria().andIdNotEqualTo(id).andSupplierEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= supplierMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public int checkIsNameAndTypeExist(Long id, String name, String type)throws Exception { + name = name == null? "": name; + SupplierExample example = new SupplierExample(); + example.createCriteria().andIdNotEqualTo(id).andSupplierEqualTo(name).andTypeEqualTo(type) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= supplierMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + /** + * 更新会员的预付款 + * @param supplierId + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateAdvanceIn(Long supplierId) { + try{ + //查询会员在收预付款单据的总金额 + BigDecimal financialAllPrice = accountHeadMapperEx.getFinancialAllPriceByOrganId(supplierId); + //查询会员在零售出库单据的总金额 + BigDecimal billAllPrice = depotHeadMapperEx.getBillAllPriceByOrganId(supplierId); + Supplier supplier = new Supplier(); + supplier.setId(supplierId); + supplier.setAdvanceIn(financialAllPrice.subtract(billAllPrice)); + supplierMapper.updateByPrimaryKeySelective(supplier); + } catch (Exception e){ + JshException.writeFail(logger, e); + } + } + + public List findBySelectCus(String key, Long organId, Integer limit)throws Exception { + List list=null; + try{ + list = supplierMapperEx.findByTypeAndKey("客户", key, limit); + if(organId!=null) { + list = addOrganToList(list, organId); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List findBySelectSup(String key, Long organId, Integer limit)throws Exception { + List list=null; + try{ + list = supplierMapperEx.findByTypeAndKey("供应商", key, limit); + if(organId!=null) { + list = addOrganToList(list, organId); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List findBySelectRetail(String key, Long organId, Integer limit)throws Exception { + List list=null; + try{ + list = supplierMapperEx.findByTypeAndKey("会员", key, limit); + if(organId!=null) { + list = addOrganToList(list, organId); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + /** + * 给列表追加供应商信息 + * @param list + * @param organId + * @return + */ + public List addOrganToList(List list, Long organId) { + boolean isExist = false; + for(Supplier supplier: list) { + if(supplier.getId().equals(organId)) { + isExist = true; + } + } + if(!isExist) { + //列表里面不存在则追加 + Supplier info = supplierMapperEx.getInfoById(organId); + if(info!=null) { + list.add(info); + } + } + return list; + } + + public List findById(Long supplierId)throws Exception { + SupplierExample example = new SupplierExample(); + example.createCriteria().andIdEqualTo(supplierId) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id desc"); + List list=null; + try{ + list = supplierMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids)throws Exception { + logService.insertLog("商家", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ENABLED).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List supplierIds = StringUtil.strToLongList(ids); + Supplier supplier = new Supplier(); + supplier.setEnabled(status); + SupplierExample example = new SupplierExample(); + example.createCriteria().andIdIn(supplierIds); + int result=0; + try{ + result = supplierMapper.updateByExampleSelective(supplier, example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public List findUserCustomer()throws Exception{ + SupplierExample example = new SupplierExample(); + example.createCriteria().andTypeEqualTo("客户") + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("sort asc, id desc"); + List list=null; + try{ + list = supplierMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List findByAll(String supplier, String type, String phonenum, String telephone) throws Exception{ + List list=null; + try{ + list = supplierMapperEx.findByAll(supplier, type, phonenum, telephone); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public Map getBeginNeedByOrganId(Long organId) throws Exception { + Supplier supplier = getSupplier(organId); + Map map = new HashMap<>(); + BigDecimal needDebt = BigDecimal.ZERO; + if("供应商".equals(supplier.getType())) { + needDebt = supplier.getBeginNeedPay(); + } else if("客户".equals(supplier.getType())) { + needDebt = supplier.getBeginNeedGet(); + } + BigDecimal finishDebt = accountItemMapperEx.getFinishDebtByOrganId(organId).abs(); + BigDecimal eachAmount = BigDecimal.ZERO; + if(needDebt != null) { + eachAmount = needDebt.subtract(finishDebt); + } + //应收欠款 + map.put("needDebt", needDebt); + //已收欠款 + map.put("finishDebt", finishDebt); + //本次收款 + map.put("eachAmount", eachAmount); + return map; + } + + /** + * 校验文件格式 + * @param file + */ + public void checkFileExt(MultipartFile file) { + //文件扩展名只能为xls + String fileName = file.getOriginalFilename(); + if(StringUtil.isNotEmpty(fileName)) { + String fileExt = fileName.substring(fileName.lastIndexOf(".")+1); + if(!"xls".equals(fileExt)) { + throw new BusinessRunTimeException(ExceptionConstants.FILE_EXTENSION_ERROR_CODE, + ExceptionConstants.FILE_EXTENSION_ERROR_MSG); + } + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void importVendor(MultipartFile file, HttpServletRequest request) throws Exception{ + String type = "供应商"; + User userInfo = userService.getCurrentUser(); + Workbook workbook = Workbook.getWorkbook(file.getInputStream()); + Sheet src = workbook.getSheet(0); + //'名称', '联系人', '手机号码', '联系电话', '电子邮箱', '传真', '期初应付', '纳税人识别号', '税率(%)', '开户行', '账号', '地址', '备注', '排序', '状态' + List sList = new ArrayList<>(); + for (int i = 2; i < src.getRows(); i++) { + String supplierName = ExcelUtils.getContent(src, i, 0); + String enabled = ExcelUtils.getContent(src, i, 14); + if(StringUtil.isNotEmpty(supplierName) && StringUtil.isNotEmpty(enabled)) { + Supplier s = new Supplier(); + s.setType(type); + s.setSupplier(supplierName); + s.setContacts(ExcelUtils.getContent(src, i, 1)); + s.setTelephone(ExcelUtils.getContent(src, i, 2)); + s.setPhoneNum(ExcelUtils.getContent(src, i, 3)); + s.setEmail(ExcelUtils.getContent(src, i, 4)); + s.setFax(ExcelUtils.getContent(src, i, 5)); + s.setBeginNeedPay(parseBigDecimalEx(ExcelUtils.getContent(src, i, 6))); + s.setTaxNum(ExcelUtils.getContent(src, i, 7)); + s.setTaxRate(parseBigDecimalEx(ExcelUtils.getContent(src, i, 8))); + s.setBankName(ExcelUtils.getContent(src, i, 9)); + s.setAccountNumber(ExcelUtils.getContent(src, i, 10)); + s.setAddress(ExcelUtils.getContent(src, i, 11)); + s.setDescription(ExcelUtils.getContent(src, i, 12)); + s.setSort(ExcelUtils.getContent(src, i, 13)); + s.setCreator(userInfo==null?null:userInfo.getId()); + s.setEnabled("1".equals(enabled)); + sList.add(s); + } + } + importExcel(sList, type, request); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void importCustomer(MultipartFile file, HttpServletRequest request) throws Exception{ + String type = "客户"; + User userInfo = userService.getCurrentUser(); + Workbook workbook = Workbook.getWorkbook(file.getInputStream()); + Sheet src = workbook.getSheet(0); + //'名称', '联系人', '手机号码', '联系电话', '电子邮箱', '传真', '期初应收', '纳税人识别号', '税率(%)', '开户行', '账号', '地址', '备注', '排序', '状态' + List sList = new ArrayList<>(); + for (int i = 2; i < src.getRows(); i++) { + String supplierName = ExcelUtils.getContent(src, i, 0); + String enabled = ExcelUtils.getContent(src, i, 14); + if(StringUtil.isNotEmpty(supplierName) && StringUtil.isNotEmpty(enabled)) { + Supplier s = new Supplier(); + s.setType(type); + s.setSupplier(supplierName); + s.setContacts(ExcelUtils.getContent(src, i, 1)); + s.setTelephone(ExcelUtils.getContent(src, i, 2)); + s.setPhoneNum(ExcelUtils.getContent(src, i, 3)); + s.setEmail(ExcelUtils.getContent(src, i, 4)); + s.setFax(ExcelUtils.getContent(src, i, 5)); + s.setBeginNeedGet(parseBigDecimalEx(ExcelUtils.getContent(src, i, 6))); + s.setTaxNum(ExcelUtils.getContent(src, i, 7)); + s.setTaxRate(parseBigDecimalEx(ExcelUtils.getContent(src, i, 8))); + s.setBankName(ExcelUtils.getContent(src, i, 9)); + s.setAccountNumber(ExcelUtils.getContent(src, i, 10)); + s.setAddress(ExcelUtils.getContent(src, i, 11)); + s.setDescription(ExcelUtils.getContent(src, i, 12)); + s.setSort(ExcelUtils.getContent(src, i, 13)); + s.setCreator(userInfo==null?null:userInfo.getId()); + s.setEnabled("1".equals(enabled)); + sList.add(s); + } + } + importExcel(sList, type, request); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void importMember(MultipartFile file, HttpServletRequest request) throws Exception{ + String type = "会员"; + User userInfo = userService.getCurrentUser(); + Workbook workbook = Workbook.getWorkbook(file.getInputStream()); + Sheet src = workbook.getSheet(0); + //'名称', '联系人', '手机号码', '联系电话', '电子邮箱', '备注', '排序', '状态' + List sList = new ArrayList<>(); + for (int i = 2; i < src.getRows(); i++) { + String supplierName = ExcelUtils.getContent(src, i, 0); + String enabled = ExcelUtils.getContent(src, i, 7); + if(StringUtil.isNotEmpty(supplierName) && StringUtil.isNotEmpty(enabled)) { + Supplier s = new Supplier(); + s.setType(type); + s.setSupplier(supplierName); + s.setContacts(ExcelUtils.getContent(src, i, 1)); + s.setTelephone(ExcelUtils.getContent(src, i, 2)); + s.setPhoneNum(ExcelUtils.getContent(src, i, 3)); + s.setEmail(ExcelUtils.getContent(src, i, 4)); + s.setDescription(ExcelUtils.getContent(src, i, 5)); + s.setSort(ExcelUtils.getContent(src, i, 6)); + s.setCreator(userInfo==null?null:userInfo.getId()); + s.setEnabled("1".equals(enabled)); + sList.add(s); + } + } + importExcel(sList, type, request); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public BaseResponseInfo importExcel(List mList, String type, HttpServletRequest request) throws Exception { + logService.insertLog(type, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_IMPORT).append(mList.size()).append(BusinessConstants.LOG_DATA_UNIT).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + BaseResponseInfo info = new BaseResponseInfo(); + Map data = new HashMap<>(); + try { + for(Supplier supplier: mList) { + SupplierExample example = new SupplierExample(); + example.createCriteria().andSupplierEqualTo(supplier.getSupplier()).andTypeEqualTo(type).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list= supplierMapper.selectByExample(example); + if(list.size() <= 0) { + supplierMapper.insertSelective(supplier); + //新增客户时给当前用户和租户自动授权 + setUserCustomerPermission(request, supplier); + } else { + Long id = list.get(0).getId(); + supplier.setId(id); + supplierMapper.updateByPrimaryKeySelective(supplier); + } + } + info.code = 200; + data.put("message", "成功"); + } catch (Exception e) { + logger.error(e.getMessage(), e); + info.code = 500; + data.put("message", e.getMessage()); + } + info.data = data; + return info; + } + + public BigDecimal parseBigDecimalEx(String str)throws Exception{ + if(!StringUtil.isEmpty(str)) { + return new BigDecimal(str); + } else { + return null; + } + } + + public File exportExcel(List dataList, String type) throws Exception { + if("供应商".equals(type)) { + return exportExcelVendorOrCustomer(dataList, type); + } else if("客户".equals(type)) { + return exportExcelVendorOrCustomer(dataList, type); + } else { + //会员 + String[] names = {"会员卡号*", "联系人", "手机号码", "联系电话", "电子邮箱", "备注", "排序", "状态*"}; + String title = "信息内容"; + List objects = new ArrayList<>(); + if (null != dataList) { + for (Supplier s : dataList) { + Object[] objs = new Object[names.length]; + objs[0] = s.getSupplier(); + objs[1] = s.getContacts(); + objs[2] = s.getTelephone(); + objs[3] = s.getPhoneNum(); + objs[4] = s.getEmail(); + objs[5] = s.getDescription(); + objs[6] = s.getSort(); + objs[7] = s.getEnabled() ? "1" : "0"; + objects.add(objs); + } + } + return ExcelUtils.exportObjectsOneSheet(fileExportTmp, title, "*导入时本行内容请勿删除,切记!", names, title, objects); + } + } + + private File exportExcelVendorOrCustomer(List dataList, String type) throws Exception { + String beginNeedStr = ""; + if("供应商".equals(type)) { + beginNeedStr = "期初应付"; + } else if("客户".equals(type)) { + beginNeedStr = "期初应收"; + } + String[] names = {"名称*", "联系人", "手机号码", "联系电话", "电子邮箱", "传真", beginNeedStr, + "纳税人识别号", "税率(%)", "开户行", "账号", "地址", "备注", "排序", "状态*"}; + String title = "信息内容"; + List objects = new ArrayList<>(); + if (null != dataList) { + for (Supplier s : dataList) { + Object[] objs = new Object[names.length]; + objs[0] = s.getSupplier(); + objs[1] = s.getContacts(); + objs[2] = s.getTelephone(); + objs[3] = s.getPhoneNum(); + objs[4] = s.getEmail(); + objs[5] = s.getFax(); + if(("客户").equals(s.getType())) { + objs[6] = s.getBeginNeedGet() == null? "" : s.getBeginNeedGet().setScale(2,BigDecimal.ROUND_HALF_UP); + } else if(("供应商").equals(s.getType())) { + objs[6] = s.getBeginNeedPay() == null? "" : s.getBeginNeedPay().setScale(2,BigDecimal.ROUND_HALF_UP); + } + objs[7] = s.getTaxNum(); + objs[8] = s.getTaxRate() == null? "" : s.getTaxRate().setScale(2,BigDecimal.ROUND_HALF_UP); + objs[9] = s.getBankName(); + objs[10] = s.getAccountNumber(); + objs[11] = s.getAddress(); + objs[12] = s.getDescription(); + objs[13] = s.getSort(); + objs[14] = s.getEnabled() ? "1" : "0"; + objects.add(objs); + } + } + return ExcelUtils.exportObjectsOneSheet(fileExportTmp, title, "*导入时本行内容请勿删除,切记!", names, title, objects); + } + + /** + * 新增客户时给当前用户和租户自动授权 + * @param request + * @param supplier + * @throws Exception + */ + private void setUserCustomerPermission(HttpServletRequest request, Supplier supplier) throws Exception { + if("客户".equals(supplier.getType())) { + User user = userService.getCurrentUser(); + Supplier sInfo = supplierMapperEx.getSupplierByNameAndType(supplier.getSupplier(), supplier.getType()); + String ubKey = "[" + sInfo.getId() + "]"; + //授权当前用户 + setPermissionByParam(user.getId(), ubKey); + } + } + + /** + * 权限授权操作 + * @param userId + * @param ubKey + * @throws Exception + */ + private void setPermissionByParam(Long userId, String ubKey) throws Exception { + List ubList = userBusinessService.getBasicData(userId.toString(), "UserCustomer"); + if(ubList ==null || ubList.size() == 0) { + JSONObject ubObj = new JSONObject(); + ubObj.put("type", "UserCustomer"); + ubObj.put("keyId", userId); + ubObj.put("value", ubKey); + UserBusiness userBusiness = JSONObject.parseObject(ubObj.toJSONString(), UserBusiness.class); + userBusinessMapper.insertSelective(userBusiness); + } else { + UserBusiness ubInfo = ubList.get(0); + JSONObject ubObj = new JSONObject(); + ubObj.put("id", ubInfo.getId()); + ubObj.put("type", ubInfo.getType()); + ubObj.put("keyId", ubInfo.getKeyId()); + ubObj.put("value", ubInfo.getValue() + ubKey); + UserBusiness userBusiness = JSONObject.parseObject(ubObj.toJSONString(), UserBusiness.class); + userBusinessMapper.updateByPrimaryKeySelective(userBusiness); + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetAdvanceIn(String ids) throws Exception { + int res = 0; + List idList = StringUtil.strToLongList(ids); + for(Long sId: idList) { + updateAdvanceIn(sId); + res = 1; + } + return res; + } + + public List getAllCustomer() { + return supplierMapperEx.getAllCustomer(); + } + + public Supplier getInfoByName(String name, String type) { + return supplierMapperEx.getInfoByName(name, type); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/SysDictDataService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/SysDictDataService.java new file mode 100644 index 0000000..3cb7639 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/SysDictDataService.java @@ -0,0 +1,165 @@ +package com.reallin.smt.service; + +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.SysDictData; +import com.reallin.smt.datasource.mappers.SysDictDataMapper; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.DictUtils; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * 字典 业务层处理 + * + * @author jishenghua + */ +@Service +public class SysDictDataService { + + private Logger logger = LoggerFactory.getLogger(SysDictDataService.class); + + @Resource + private LogService logService; + + @Resource + private SysDictDataMapper dictDataMapper; + + /** + * 根据条件分页查询字典数据 + * + * @param dictData 字典数据信息 + * @return 字典数据集合信息 + */ + public List selectDictDataList(SysDictData dictData) + { + PageUtils.startPage(); + return dictDataMapper.selectDictDataList(dictData); + } + + /** + * 根据字典类型和字典键值查询字典数据信息 + * + * @param dictType 字典类型 + * @param dictValue 字典键值 + * @return 字典标签 + */ + public String selectDictLabel(String dictType, String dictValue) + { + return dictDataMapper.selectDictLabel(dictType, dictValue); + } + + /** + * 根据字典数据ID查询信息 + * + * @param dictCode 字典数据ID + * @return 字典数据 + */ + public SysDictData selectDictDataById(Long dictCode) + { + return dictDataMapper.selectDictDataById(dictCode); + } + + /** + * 批量删除字典数据信息 + * + * @param dictCodes 需要删除的字典数据ID + */ + public void deleteDictDataByIds(Long[] dictCodes) + { + for (Long dictCode : dictCodes) + { + SysDictData data = selectDictDataById(dictCode); + dictDataMapper.deleteDictDataById(dictCode); + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); + } + } + + /** + * 新增保存字典数据信息 + * + * @param data 字典数据信息 + * @return 结果 + */ + public int insertDictData(SysDictData data) + { + int row = dictDataMapper.insertDictData(data); + if (row > 0) + { + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); + } + return row; + } + + /** + * 修改保存字典数据信息 + * + * @param data 字典数据信息 + * @return 结果 + */ + public int updateDictData(SysDictData data) + { + int row = dictDataMapper.updateDictData(data); + if (row > 0) + { + List dictDatas = dictDataMapper.selectDictDataByType(data.getDictType()); + DictUtils.setDictCache(data.getDictType(), dictDatas); + } + return row; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteDictData(Long id, HttpServletRequest request) throws Exception { + return batchDeleteDictDataByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDictData(String ids, HttpServletRequest request) throws Exception { + return batchDeleteDictDataByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDictDataByIds(String ids)throws Exception { + int result = 0; + String[] idArray = ids.split(","); + try { + //记录日志 + String dictType = ""; + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getDictDataListByIds(ids); + if(!list.isEmpty()) { + dictType = list.get(0).getDictType(); + sb.append("字典:").append(dictType).append("下的数据:"); + } + for(SysDictData sysDictData: list){ + sb.append("[").append(sysDictData.getDictLabel()).append("]"); + } + result = dictDataMapper.batchDeleteDictDataByIds(idArray); + List dictDatas = dictDataMapper.selectDictDataByType(dictType); + DictUtils.setDictCache(dictType, dictDatas); + //记录日志 + logService.insertLog("字典数据", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + public List getDictDataListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + return dictDataMapper.getDictDataListByIds(idList); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/SysDictTypeService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/SysDictTypeService.java new file mode 100644 index 0000000..7d3d394 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/SysDictTypeService.java @@ -0,0 +1,257 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.Depot; +import com.reallin.smt.datasource.entities.DepotExample; +import com.reallin.smt.datasource.entities.SysDictData; +import com.reallin.smt.datasource.entities.SysDictType; +import com.reallin.smt.datasource.mappers.SysDictDataMapper; +import com.reallin.smt.datasource.mappers.SysDictTypeMapper; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.DictUtils; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 字典 业务层处理 + * + * @author jishenghua + */ +@Service +public class SysDictTypeService { + + private Logger logger = LoggerFactory.getLogger(SysDictTypeService.class); + + @Resource + private LogService logService; + + @Resource + private SysDictTypeMapper dictTypeMapper; + + @Resource + private SysDictDataMapper dictDataMapper; + + @Resource + private RedisService redisService; + + /** + * 项目启动时,初始化字典到缓存 + */ + @PostConstruct + public void init() + { + loadingDictCache(); + } + + /** + * 根据条件分页查询字典类型 + * + * @param dictType 字典类型信息 + * @return 字典类型集合信息 + */ + public List selectDictTypeList(SysDictType dictType) + { + PageUtils.startPage(); + return dictTypeMapper.selectDictTypeList(dictType); + } + + /** + * 根据所有字典类型 + * + * @return 字典类型集合信息 + */ + public List selectDictTypeAll() + { + return dictTypeMapper.selectDictTypeAll(); + } + + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ + public List selectDictDataByType(String dictType) + { + List dictDatas = DictUtils.getDictCache(dictType); + if (dictDatas!=null && !dictDatas.isEmpty()) { + return dictDatas; + } + dictDatas = dictDataMapper.selectDictDataByType(dictType); + if (dictDatas!=null && !dictDatas.isEmpty()) { + DictUtils.setDictCache(dictType, dictDatas); + return dictDatas; + } + return null; + } + + /** + * 根据字典类型ID查询信息 + * + * @param dictId 字典类型ID + * @return 字典类型 + */ + public SysDictType selectDictTypeById(Long dictId) + { + return dictTypeMapper.selectDictTypeById(dictId); + } + + /** + * 根据字典类型查询信息 + * + * @param dictType 字典类型 + * @return 字典类型 + */ + public SysDictType selectDictTypeByType(String dictType) + { + return dictTypeMapper.selectDictTypeByType(dictType); + } + + /** + * 加载字典缓存数据 + */ + public void loadingDictCache() + { + SysDictData dictData = new SysDictData(); + dictData.setStatus("0"); + Map> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType)); + for (Map.Entry> entry : dictDataMap.entrySet()) + { + DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList())); + } + } + + /** + * 清空字典缓存数据 + */ + public void clearDictCache() + { + DictUtils.clearDictCache(); + } + + /** + * 重置字典缓存数据 + */ + public void resetDictCache() + { + clearDictCache(); + loadingDictCache(); + } + + /** + * 新增保存字典类型信息 + * + * @param dict 字典类型信息 + * @return 结果 + */ + public int insertDictType(SysDictType dict) + { + int row = dictTypeMapper.insertDictType(dict); + if (row > 0) + { + DictUtils.setDictCache(dict.getDictType(), null); + } + return row; + } + + /** + * 修改保存字典类型信息 + * + * @param dict 字典类型信息 + * @return 结果 + */ + @Transactional + public int updateDictType(SysDictType dict) + { + SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId()); + dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType()); + int row = dictTypeMapper.updateDictType(dict); + if (row > 0) + { + List dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType()); + DictUtils.setDictCache(dict.getDictType(), dictDatas); + } + return row; + } + + /** + * 校验字典类型称是否唯一 + * + * @param dict 字典类型 + * @return 结果 + */ + public boolean checkDictTypeUnique(SysDictType dict) + { + Long dictId = StringUtil.isNull(dict.getDictId()) ? -1L : dict.getDictId(); + SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); + if (StringUtil.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) + { + return false; + } + return true; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteDictType(Long id, HttpServletRequest request) throws Exception { + return batchDeleteDictTypeByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDictType(String ids, HttpServletRequest request) throws Exception { + return batchDeleteDictTypeByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDictTypeByIds(String ids)throws Exception { + int result=0; + String [] idArray=ids.split(","); + List dictTypeList = new ArrayList<>(); + for (String dictId : idArray) { + SysDictType dictType = selectDictTypeById(Long.valueOf(dictId)); + dictTypeList.add(dictType.getDictType()); + if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) { + throw new BusinessRunTimeException(ExceptionConstants.DICT_TYPE_ALREADY_USED_CODE, + String.format(ExceptionConstants.DICT_TYPE_ALREADY_USED_MSG, dictType.getDictName())); + } + } + try { + //记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getDictTypeListByIds(ids); + for(SysDictType sysDictType: list){ + sb.append("[").append(sysDictType.getDictName()).append("]"); + } + result = dictTypeMapper.batchDeleteDictTypeByIds(idArray); + for (String dictType : dictTypeList) { + DictUtils.removeDictCache(dictType); + } + //记录日志 + logService.insertLog("字典类型", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } catch (Exception e) { + JshException.writeFail(logger, e); + } + return result; + } + + public List getDictTypeListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + return dictTypeMapper.getDictTypeListByIds(idList); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/SystemConfigService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/SystemConfigService.java new file mode 100644 index 0000000..2574833 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/SystemConfigService.java @@ -0,0 +1,681 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.aliyun.oss.ClientException; +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.OSSException; +import com.aliyun.oss.model.CopyObjectResult; +import com.aliyun.oss.model.PutObjectRequest; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.SystemConfig; +import com.reallin.smt.datasource.entities.SystemConfigExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.SystemConfigMapper; +import com.reallin.smt.datasource.mappers.SystemConfigMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import javax.imageio.stream.ImageOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.file.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class SystemConfigService { + private Logger logger = LoggerFactory.getLogger(SystemConfigService.class); + + @Resource + private SystemConfigMapper systemConfigMapper; + @Resource + private SystemConfigMapperEx systemConfigMapperEx; + @Resource + private PlatformConfigService platformConfigService; + @Resource + private UserService userService; + @Resource + private LogService logService; + + @Value(value="${file.uploadType}") + private Long fileUploadType; + + @Value(value="${file.path}") + private String filePath; + + @Value(value="${file.exportTmp}") + private String fileExportTmp; + + private static String DELETED = "deleted"; + + public SystemConfig getSystemConfig(long id)throws Exception { + SystemConfig result=null; + try{ + result=systemConfigMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getSystemConfig()throws Exception { + SystemConfigExample example = new SystemConfigExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=systemConfigMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + public List select(String companyName)throws Exception { + List list=null; + try{ + PageUtils.startPage(); + list=systemConfigMapperEx.selectByConditionSystemConfig(companyName); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertSystemConfig(JSONObject obj, HttpServletRequest request) throws Exception{ + SystemConfig systemConfig = JSONObject.parseObject(obj.toJSONString(), SystemConfig.class); + int result=0; + try{ + result=systemConfigMapper.insertSelective(systemConfig); + String logInfo = StringUtil.isNotEmpty(systemConfig.getCompanyName())?systemConfig.getCompanyName():"配置信息"; + logService.insertLogWithUserId(userService.getCurrentUser().getId(), userService.getCurrentUser().getTenantId(), "系统配置", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(logInfo).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateSystemConfig(JSONObject obj, HttpServletRequest request) throws Exception{ + SystemConfig systemConfig = JSONObject.parseObject(obj.toJSONString(), SystemConfig.class); + int result=0; + try{ + result = systemConfigMapper.updateByPrimaryKeySelective(systemConfig); + String logInfo = StringUtil.isNotEmpty(systemConfig.getCompanyName())?systemConfig.getCompanyName():"配置信息"; + logService.insertLogWithUserId(userService.getCurrentUser().getId(), userService.getCurrentUser().getTenantId(), "系统配置", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(logInfo).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteSystemConfig(Long id, HttpServletRequest request)throws Exception { + return batchDeleteSystemConfigByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSystemConfig(String ids, HttpServletRequest request)throws Exception { + return batchDeleteSystemConfigByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSystemConfigByIds(String ids)throws Exception { + logService.insertLog("系统配置", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + int result=0; + try{ + result = systemConfigMapperEx.batchDeleteSystemConfigByIds(new Date(), userInfo == null ? null : userInfo.getId(), idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name) throws Exception{ + SystemConfigExample example = new SystemConfigExample(); + example.createCriteria().andIdNotEqualTo(id).andCompanyNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list =null; + try{ + list=systemConfigMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + /** + * 本地文件上传 + * @param mf 文件 + * @param bizPath 自定义路径 + * @return + */ + public String uploadLocal(MultipartFile mf, String bizPath, HttpServletRequest request) throws Exception { + try { + if(StringUtil.isEmpty(bizPath)){ + bizPath = ""; + } + // Validate bizPath to prevent directory traversal + if (bizPath.contains("..") || bizPath.contains("/")) { + throw new IllegalArgumentException("Invalid bizPath"); + } + String ctxPath = filePath; + String fileName = null; + File file = new File(ctxPath + File.separator + bizPath + File.separator ); + if (!file.exists()) { + file.mkdirs();// 创建文件根目录 + } + String orgName = mf.getOriginalFilename();// 获取文件名 + orgName = FileUtils.getFileName(orgName); + + // Validate file extension to allow only specific types + String[] allowedExtensions = {".gif", ".jpg", ".jpeg", ".png", ".pdf", ".txt",".doc",".docx",".xls",".xlsx", + ".ppt",".pptx",".zip",".rar",".mp3",".mp4",".avi"}; + boolean isValidExtension = false; + for (String ext : allowedExtensions) { + if (orgName.toLowerCase().endsWith(ext)) { + isValidExtension = true; + break; + } + } + if (!isValidExtension) { + throw new IllegalArgumentException("Invalid file type"); + } + + if(orgName.contains(".")){ + fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.indexOf(".")); + }else{ + fileName = orgName+ "_" + System.currentTimeMillis(); + } + String savePath = file.getPath() + File.separator + fileName; + File savefile = new File(savePath); + FileCopyUtils.copy(mf.getBytes(), savefile); + + // 返回路径 + String dbpath = null; + if(StringUtil.isNotEmpty(bizPath)){ + dbpath = bizPath + File.separator + fileName; + }else{ + dbpath = fileName; + } + if (dbpath.contains("\\")) { + dbpath = dbpath.replace("\\", "/"); + } + return dbpath; + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + return ""; + } + + /** + * 阿里Oss文件上传 + * @param mf 文件 + * @param bizPath 自定义路径 + * @return + */ + public String uploadAliOss(MultipartFile mf, String bizPath, HttpServletRequest request) throws Exception { + if(StringUtil.isEmpty(bizPath)){ + bizPath = ""; + } + // Validate bizPath to prevent directory traversal + if (bizPath.contains("..") || bizPath.contains("/")) { + throw new IllegalArgumentException("Invalid bizPath"); + } + String endpoint = platformConfigService.getPlatformConfigByKey("aliOss_endpoint").getPlatformValue(); + String accessKeyId = platformConfigService.getPlatformConfigByKey("aliOss_accessKeyId").getPlatformValue(); + String accessKeySecret = platformConfigService.getPlatformConfigByKey("aliOss_accessKeySecret").getPlatformValue(); + String bucketName = platformConfigService.getPlatformConfigByKey("aliOss_bucketName").getPlatformValue(); + // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。 + String fileName = ""; + String orgName = mf.getOriginalFilename();// 获取文件名 + orgName = FileUtils.getFileName(orgName); + + // Validate file extension to allow only specific types + String[] allowedExtensions = {".gif", ".jpg", ".jpeg", ".png", ".pdf", ".txt",".doc",".docx",".xls",".xlsx", + ".ppt",".pptx",".zip",".rar",".mp3",".mp4",".avi"}; + boolean isValidExtension = false; + for (String ext : allowedExtensions) { + if (orgName.toLowerCase().endsWith(ext)) { + isValidExtension = true; + break; + } + } + if (!isValidExtension) { + throw new IllegalArgumentException("Invalid file type"); + } + + if(orgName.contains(".")){ + fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.indexOf(".")); + }else{ + fileName = orgName+ "_" + System.currentTimeMillis(); + } + String filePathStr = StringUtil.isNotEmpty(filePath)? filePath.substring(1):""; + String objectName = filePathStr + "/" + bizPath + "/" + fileName; + String smallObjectName = filePathStr + "-small/" + bizPath + "/" + fileName; + // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。 + byte [] byteArr = mf.getBytes(); + + // 创建OSSClient实例。 + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + + try { + // 保存原文件 + InputStream inputStream = new ByteArrayInputStream(byteArr); + PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream); + ossClient.putObject(putObjectRequest); + // 如果是图片-保存缩略图 + int index = fileName.lastIndexOf("."); + String ext = fileName.substring(index + 1); + if(ext.contains("gif") || ext.contains("jpg") || ext.contains("jpeg") || ext.contains("png") + || ext.contains("GIF") || ext.contains("JPG") || ext.contains("JPEG") || ext.contains("PNG")) { + String fileUrl = getFileUrlAliOss(bizPath + "/" + fileName); + URL url = new URL(fileUrl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setConnectTimeout(5 * 1000); + InputStream imgInputStream = conn.getInputStream();// 通过输入流获取图片数据 + BufferedImage smallImage = getImageMini(imgInputStream, 80); + ByteArrayOutputStream bs = new ByteArrayOutputStream(); + ImageOutputStream imOut = ImageIO.createImageOutputStream(bs); + ImageIO.write(smallImage, ext, imOut); + InputStream isImg = new ByteArrayInputStream(bs.toByteArray()); + PutObjectRequest putSmallObjectRequest = new PutObjectRequest(bucketName, smallObjectName, isImg); + ossClient.putObject(putSmallObjectRequest); + } + // 返回路径 + return bizPath + "/" + fileName; + } catch (OSSException oe) { + logger.error("Caught an OSSException, which means your request made it to OSS, " + + "but was rejected with an error response for some reason."); + logger.error("Error Message:" + oe.getErrorMessage()); + logger.error("Error Code:" + oe.getErrorCode()); + logger.error("Request ID:" + oe.getRequestId()); + logger.error("Host ID:" + oe.getHostId()); + } catch (ClientException ce) { + logger.error("Caught an ClientException, which means the client encountered " + + "a serious internal problem while trying to communicate with OSS, " + + "such as not being able to access the network."); + System.out.println("Error Message:" + ce.getMessage()); + } finally { + if (ossClient != null) { + ossClient.shutdown(); + } + } + return ""; + } + + public String getFileUrlLocal(String imgPath) { + return filePath + File.separator + imgPath; + } + + public String getFileUrlAliOss(String imgPath) throws Exception { + String linkUrl = platformConfigService.getPlatformConfigByKey("aliOss_linkUrl").getPlatformValue(); + return linkUrl + filePath + "/" + imgPath; + } + + /** + * 逻辑删除文件 + * @param pathList + */ + public void deleteFileByPathList(List pathList) throws Exception { + if(fileUploadType == 1) { + //本地 + for(String pathStr: pathList) { + if(StringUtil.isNotEmpty(pathStr)) { + String[] pathArr = pathStr.split(","); + for (String path : pathArr) { + // 提取文件的路径 + String pathDir = getDirByPath(path); + if (StringUtil.isNotEmpty(pathDir)) { + // 源文件路径 + Path sourcePath = Paths.get(filePath + File.separator + path); + // 目标文件路径(注意这里是新文件的完整路径,包括文件名) + Path targetPath = Paths.get(filePath + File.separator + DELETED + File.separator + path); + try { + File file = new File(filePath + File.separator + DELETED + File.separator + pathDir); + if (!file.exists()) { + file.mkdirs();// 创建文件根目录 + } + // 复制文件,如果目标文件已存在则替换它 + Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING); + // 删除源文件 + Files.delete(sourcePath); + logger.info("File copied successfully."); + } catch (NoSuchFileException e) { + logger.error("Source file not found: " + e.getMessage()); + } catch (IOException e) { + logger.error("An I/O error occurred: " + e.getMessage()); + } catch (SecurityException e) { + logger.error("No permission to copy file: " + e.getMessage()); + } + } + } + } + } + } else if(fileUploadType == 2) { + //oss + String endpoint = platformConfigService.getPlatformConfigByKey("aliOss_endpoint").getPlatformValue(); + String accessKeyId = platformConfigService.getPlatformConfigByKey("aliOss_accessKeyId").getPlatformValue(); + String accessKeySecret = platformConfigService.getPlatformConfigByKey("aliOss_accessKeySecret").getPlatformValue(); + String bucketName = platformConfigService.getPlatformConfigByKey("aliOss_bucketName").getPlatformValue(); + for(String pathStr: pathList) { + if(StringUtil.isNotEmpty(pathStr)) { + String[] pathArr = pathStr.split(","); + for (String path : pathArr) { + if(StringUtil.isNotEmpty(path)) { + // 创建OSSClient实例。 + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + try { + String filePathStr = StringUtil.isNotEmpty(filePath) ? filePath.substring(1) : ""; + String sourceObjectKey = filePathStr + "/" + path; + String sourceSmallObjectKey = filePathStr + "-small/" + path; + String destinationObjectKey = DELETED + "/list/" + sourceObjectKey; + String destinationSmallObjectKey = DELETED + "/list/" + sourceSmallObjectKey; + this.copySourceToDest(ossClient, bucketName, sourceObjectKey, destinationObjectKey); + this.copySourceToDest(ossClient, bucketName, sourceSmallObjectKey, destinationSmallObjectKey); + } catch (Exception e) { + logger.error(e.getMessage()); + } finally { + // 关闭OSSClient。 + if (ossClient != null) { + ossClient.shutdown(); + } + } + } + } + } + } + } + } + + /** + * + * @param ossClient + * @param bucketName + * @param sourceObjectKey 源文件路径,包括目录和文件名 + * @param destinationObjectKey 目标文件路径,包括新目录和文件名 + */ + public void copySourceToDest(OSS ossClient, String bucketName, String sourceObjectKey, String destinationObjectKey) { + // 复制文件 + CopyObjectResult copyResult = ossClient.copyObject(bucketName, sourceObjectKey, bucketName, destinationObjectKey); + // 确认复制成功 + if (copyResult != null && copyResult.getETag() != null) { + logger.info("文件复制成功,ETag: " + copyResult.getETag()); + // 删除源文件 + ossClient.deleteObject(bucketName, sourceObjectKey); + logger.info("源文件已删除:" + sourceObjectKey); + } else { + logger.info("文件复制失败"); + } + } + + public String getDirByPath(String path) { + if(path.lastIndexOf("/")>-1) { + return path.substring(0, path.lastIndexOf("/")); + } else { + return null; + } + } + + public BufferedImage getImageMini(InputStream inputStream, int w) throws Exception { + BufferedImage img = ImageIO.read(inputStream); + //获取图片的长和宽 + int width = img.getWidth(); + int height = img.getHeight(); + int tempw = 0; + int temph = 0; + if(width>height){ + tempw = w; + temph = height* w/width; + }else{ + tempw = w*width/height; + temph = w; + } + Image _img = img.getScaledInstance(tempw, temph, Image.SCALE_DEFAULT); + BufferedImage image = new BufferedImage(tempw, temph, BufferedImage.TYPE_INT_RGB); + Graphics2D graphics = image.createGraphics(); + graphics.drawImage(_img, 0, 0, null); + graphics.dispose(); + return image; + } + + /** + * 获取仓库开关 + * @return + * @throws Exception + */ + public boolean getDepotFlag() throws Exception { + boolean depotFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getDepotFlag(); + if(("1").equals(flag)) { + depotFlag = true; + } + } + return depotFlag; + } + + /** + * 获取客户开关 + * @return + * @throws Exception + */ + public boolean getCustomerFlag() throws Exception { + boolean customerFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getCustomerFlag(); + if(("1").equals(flag)) { + customerFlag = true; + } + } + return customerFlag; + } + + /** + * 获取负库存开关 + * @return + * @throws Exception + */ + public boolean getMinusStockFlag() throws Exception { + boolean minusStockFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getMinusStockFlag(); + if(("1").equals(flag)) { + minusStockFlag = true; + } + } + return minusStockFlag; + } + + /** + * 获取更新单价开关 + * @return + * @throws Exception + */ + public boolean getUpdateUnitPriceFlag() throws Exception { + boolean updateUnitPriceFlag = true; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getUpdateUnitPriceFlag(); + if(("0").equals(flag)) { + updateUnitPriceFlag = false; + } + } + return updateUnitPriceFlag; + } + + /** + * 获取超出关联单据开关 + * @return + * @throws Exception + */ + public boolean getOverLinkBillFlag() throws Exception { + boolean overLinkBillFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getOverLinkBillFlag(); + if(("1").equals(flag)) { + overLinkBillFlag = true; + } + } + return overLinkBillFlag; + } + + /** + * 获取强审核开关 + * @return + * @throws Exception + */ + public boolean getForceApprovalFlag() throws Exception { + boolean forceApprovalFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getForceApprovalFlag(); + if(("1").equals(flag)) { + forceApprovalFlag = true; + } + } + return forceApprovalFlag; + } + + /** + * 获取多级审核开关 + * @return + * @throws Exception + */ + public boolean getMultiLevelApprovalFlag() throws Exception { + boolean multiLevelApprovalFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getMultiLevelApprovalFlag(); + if(("1").equals(flag)) { + multiLevelApprovalFlag = true; + } + } + return multiLevelApprovalFlag; + } + + /** + * 获取出入库管理开关 + * @return + * @throws Exception + */ + public boolean getInOutManageFlag() throws Exception { + boolean inOutManageFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getInOutManageFlag(); + if(("1").equals(flag)) { + inOutManageFlag = true; + } + } + return inOutManageFlag; + } + + /** + * 获取移动平均价开关 + * @return + * @throws Exception + */ + public boolean getMoveAvgPriceFlag() throws Exception { + boolean moveAvgPriceFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getMoveAvgPriceFlag(); + if(("1").equals(flag)) { + moveAvgPriceFlag = true; + } + } + return moveAvgPriceFlag; + } + + /** + * 获取客户静态单价开关 + * @return + * @throws Exception + */ + public boolean getCustomerStaticPriceFlag() throws Exception { + boolean customerStaticPriceFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getCustomerStaticPriceFlag(); + if(("1").equals(flag)) { + customerStaticPriceFlag = true; + } + } + return customerStaticPriceFlag; + } + + /** + * 获取商品价格含税开关 + * @return + * @throws Exception + */ + public boolean getMaterialPriceTaxFlag() throws Exception { + boolean materialPriceTaxFlag = false; + List list = getSystemConfig(); + if(list.size()>0) { + String flag = list.get(0).getMaterialPriceTaxFlag(); + if(("1").equals(flag)) { + materialPriceTaxFlag = true; + } + } + return materialPriceTaxFlag; + } + + /** + * Excel导出统一方法 + * @param title + * @param head + * @param tip + * @param arr + * @param response + * @throws Exception + */ + public void exportExcelByParam(String title, String head, String tip, JSONArray arr, HttpServletResponse response) throws Exception { + List nameList = StringUtil.strToStringList(head); + String[] names = StringUtil.listToStringArray(nameList); + List objects = new ArrayList<>(); + if (null != arr) { + for (Object object: arr) { + List list = (List) object; + Object[] objs = new Object[names.length]; + for (int i = 0; i < list.size(); i++) { + if(null != list.get(i)) { + objs[i] = list.get(i); + } + } + objects.add(objs); + } + } + File file = ExcelUtils.exportObjectsOneSheet(fileExportTmp, title, tip, names, title, objects); + ExcelUtils.downloadExcel(file, file.getName(), response); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/TenantService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/TenantService.java new file mode 100644 index 0000000..e06166d --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/TenantService.java @@ -0,0 +1,204 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.Tenant; +import com.reallin.smt.datasource.entities.TenantEx; +import com.reallin.smt.datasource.entities.TenantExample; +import com.reallin.smt.datasource.entities.UserEx; +import com.reallin.smt.datasource.mappers.TenantMapper; +import com.reallin.smt.datasource.mappers.TenantMapperEx; +import com.reallin.smt.datasource.mappers.UserBusinessMapperEx; +import com.reallin.smt.datasource.mappers.UserMapperEx; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import com.reallin.smt.utils.Tools; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@Service +public class TenantService { + private Logger logger = LoggerFactory.getLogger(TenantService.class); + + @Resource + private TenantMapper tenantMapper; + + @Resource + private TenantMapperEx tenantMapperEx; + + @Resource + private UserMapperEx userMapperEx; + + @Resource + private UserBusinessMapperEx userBusinessMapperEx; + + @Resource + private UserService userService; + + @Resource + private LogService logService; + + @Value("${manage.roleId}") + private Integer manageRoleId; + + public Tenant getTenant(long id)throws Exception { + Tenant result=null; + try{ + result=tenantMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getTenant()throws Exception { + TenantExample example = new TenantExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=tenantMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String loginName, String type, String enabled, String remark)throws Exception { + List list = null; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + PageUtils.startPage(); + list = tenantMapperEx.selectByConditionTenant(loginName, type, enabled, remark); + if (null != list) { + for (TenantEx tenantEx : list) { + tenantEx.setCreateTimeStr(Tools.getCenternTime(tenantEx.getCreateTime())); + tenantEx.setExpireTimeStr(Tools.getCenternTime(tenantEx.getExpireTime())); + } + } + } + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertTenant(JSONObject obj, HttpServletRequest request)throws Exception { + UserEx ue = JSONObject.parseObject(obj.toJSONString(), UserEx.class); + ue.setUsername(ue.getLoginName()); + userService.checkLoginName(ue); //检查登录名 + userService.registerUser(ue,manageRoleId,request); + return 1; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateTenant(JSONObject obj, HttpServletRequest request)throws Exception { + Tenant tenant = JSONObject.parseObject(obj.toJSONString(), Tenant.class); + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + //如果租户下的用户限制数量为1,则将该租户之外的用户全部禁用 + if (1 == tenant.getUserNumLimit()) { + userMapperEx.disableUserByLimit(tenant.getTenantId()); + } + result = tenantMapper.updateByPrimaryKeySelective(tenant); + //更新租户对应的角色 + if(obj.get("roleId")!=null) { + String ubValue = "[" + obj.getString("roleId") + "]"; + userBusinessMapperEx.updateValueByTypeAndKeyId("UserRole", tenant.getTenantId().toString(), ubValue); + } + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteTenant(Long id, HttpServletRequest request)throws Exception { + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = tenantMapper.deleteByPrimaryKey(id); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteTenant(String ids, HttpServletRequest request)throws Exception { + List idList = StringUtil.strToLongList(ids); + TenantExample example = new TenantExample(); + example.createCriteria().andIdIn(idList); + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + result = tenantMapper.deleteByExample(example); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + TenantExample example = new TenantExample(); + example.createCriteria().andIdNotEqualTo(id).andLoginNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= tenantMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + public Tenant getTenantByTenantId(long tenantId) { + Tenant tenant = new Tenant(); + TenantExample example = new TenantExample(); + example.createCriteria().andTenantIdEqualTo(tenantId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = tenantMapper.selectByExample(example); + if(list.size()>0) { + tenant = list.get(0); + } + return tenant; + } + + public int batchSetStatus(Boolean status, String ids)throws Exception { + int result=0; + try{ + if(BusinessConstants.DEFAULT_MANAGER.equals(userService.getCurrentUser().getLoginName())) { + String statusStr = ""; + if (status) { + statusStr = "批量启用"; + } else { + statusStr = "批量禁用"; + } + logService.insertLog("用户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(ids).append("-").append(statusStr).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List idList = StringUtil.strToLongList(ids); + Tenant tenant = new Tenant(); + tenant.setEnabled(status); + TenantExample example = new TenantExample(); + example.createCriteria().andIdIn(idList); + result = tenantMapper.updateByExampleSelective(tenant, example); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/UnitService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/UnitService.java new file mode 100644 index 0000000..8053c97 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/UnitService.java @@ -0,0 +1,313 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.entities.Material; +import com.reallin.smt.datasource.entities.Unit; +import com.reallin.smt.datasource.entities.UnitExample; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.mappers.MaterialMapperEx; +import com.reallin.smt.datasource.mappers.UnitMapper; +import com.reallin.smt.datasource.mappers.UnitMapperEx; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import com.reallin.smt.utils.PageUtils; +import com.reallin.smt.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.*; + +@Service +public class UnitService { + private Logger logger = LoggerFactory.getLogger(UnitService.class); + + @Resource + private UnitMapper unitMapper; + + @Resource + private UnitMapperEx unitMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; + @Resource + private MaterialMapperEx materialMapperEx; + + public Unit getUnit(long id)throws Exception { + Unit result=null; + try{ + result=unitMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getUnitListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + UnitExample example = new UnitExample(); + example.createCriteria().andIdIn(idList); + list = unitMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getUnit()throws Exception { + UnitExample example = new UnitExample(); + example.createCriteria().andEnabledEqualTo(true).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=unitMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String name)throws Exception { + List list=null; + try{ + PageUtils.startPage(); + list=unitMapperEx.selectByConditionUnit(name); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertUnit(JSONObject obj, HttpServletRequest request)throws Exception { + Unit unit = JSONObject.parseObject(obj.toJSONString(), Unit.class); + int result=0; + try{ + parseNameByUnit(unit); + unit.setEnabled(true); + result=unitMapper.insertSelective(unit); + logService.insertLog("多单位", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(unit.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateUnit(JSONObject obj, HttpServletRequest request)throws Exception { + Unit unit = JSONObject.parseObject(obj.toJSONString(), Unit.class); + int result=0; + try{ + parseNameByUnit(unit); + result=unitMapper.updateByPrimaryKeySelective(unit); + if(unit.getRatioTwo()==null) { + unitMapperEx.updateRatioTwoById(unit.getId()); + } + if(unit.getRatioThree()==null) { + unitMapperEx.updateRatioThreeById(unit.getId()); + } + logService.insertLog("多单位", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(unit.getName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + /** + * 根据单位信息生成名称的格式 + * @param unit + */ + private void parseNameByUnit(Unit unit) { + String unitName = unit.getBasicUnit() + "/" + "(" + unit.getOtherUnit() + "=" + unit.getRatio().toString() + unit.getBasicUnit() + ")"; + if(StringUtil.isNotEmpty(unit.getOtherUnitTwo()) && unit.getRatioTwo()!=null) { + unitName += "/" + "(" + unit.getOtherUnitTwo() + "=" + unit.getRatioTwo().toString() + unit.getBasicUnit() + ")"; + if(StringUtil.isNotEmpty(unit.getOtherUnitThree()) && unit.getRatioThree()!=null) { + unitName += "/" + "(" + unit.getOtherUnitThree() + "=" + unit.getRatioThree().toString() + unit.getBasicUnit() + ")"; + } + } + unit.setName(unitName); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteUnit(Long id, HttpServletRequest request)throws Exception { + return batchDeleteUnitByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteUnit(String ids, HttpServletRequest request) throws Exception{ + return batchDeleteUnitByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteUnitByIds(String ids)throws Exception { + int result=0; + String [] idArray=ids.split(","); + //校验产品表 tbl_material + List materialList=null; + try{ + materialList=materialMapperEx.getMaterialListByUnitIds(idArray); + }catch(Exception e){ + JshException.readFail(logger, e); + } + if(materialList!=null&&materialList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,UnitIds[{}]", + ExceptionConstants.DELETE_FORCE_CONFIRM_CODE,ExceptionConstants.DELETE_FORCE_CONFIRM_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DELETE_FORCE_CONFIRM_CODE, + ExceptionConstants.DELETE_FORCE_CONFIRM_MSG); + } + //记录日志 + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getUnitListByIds(ids); + for(Unit unit: list){ + sb.append("[").append(unit.getName()).append("]"); + } + logService.insertLog("多单位", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + //校验通过执行删除操作 + try{ + result=unitMapperEx.batchDeleteUnitByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + UnitExample example = new UnitExample(); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=unitMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + + /** + * 根据条件查询单位id + * @param basicUnit + * @param otherUnit + * @param ratio + * @return + */ + public Long getUnitIdByParam(String basicUnit, String otherUnit, BigDecimal ratio){ + Long unitId = null; + UnitExample example = new UnitExample(); + example.createCriteria().andBasicUnitEqualTo(basicUnit).andOtherUnitEqualTo(otherUnit).andRatioEqualTo(ratio) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = unitMapper.selectByExample(example); + if(list!=null && list.size()>0) { + unitId = list.get(0).getId(); + } + return unitId; + } + + /** + * 根据多单位的比例进行库存换算(保留两位小数) + * @param stock + * @param unitInfo + * @param materialUnit + * @return + */ + public BigDecimal parseStockByUnit(BigDecimal stock, Unit unitInfo, String materialUnit) { + if(stock!=null && unitInfo!=null && StringUtil.isNotEmpty(materialUnit)) { + if (materialUnit.equals(unitInfo.getOtherUnit()) && unitInfo.getRatio() != null && unitInfo.getRatio().compareTo(BigDecimal.ZERO) != 0) { + stock = stock.divide(unitInfo.getRatio(), 2, BigDecimal.ROUND_HALF_UP); + } + if (materialUnit.equals(unitInfo.getOtherUnitTwo()) && unitInfo.getRatioTwo() != null && unitInfo.getRatioTwo().compareTo(BigDecimal.ZERO) != 0) { + stock = stock.divide(unitInfo.getRatioTwo(), 2, BigDecimal.ROUND_HALF_UP); + } + if (materialUnit.equals(unitInfo.getOtherUnitThree()) && unitInfo.getRatioThree() != null && unitInfo.getRatioThree().compareTo(BigDecimal.ZERO) != 0) { + stock = stock.divide(unitInfo.getRatioThree(), 2, BigDecimal.ROUND_HALF_UP); + } + } + return stock; + } + + /** + * 根据多单位的比例进行单价换算(保留两位小数),变大 + * @param unitPrice + * @param unitInfo + * @param materialUnit + * @return + */ + public BigDecimal parseUnitPriceByUnit(BigDecimal unitPrice, Unit unitInfo, String materialUnit) { + if(unitPrice!=null) { + if (materialUnit.equals(unitInfo.getOtherUnit()) && unitInfo.getRatio() != null && unitInfo.getRatio().compareTo(BigDecimal.ZERO) != 0) { + unitPrice = unitPrice.multiply(unitInfo.getRatio()); + } + if (materialUnit.equals(unitInfo.getOtherUnitTwo()) && unitInfo.getRatioTwo() != null && unitInfo.getRatioTwo().compareTo(BigDecimal.ZERO) != 0) { + unitPrice = unitPrice.multiply(unitInfo.getRatioTwo()); + } + if (materialUnit.equals(unitInfo.getOtherUnitThree()) && unitInfo.getRatioThree() != null && unitInfo.getRatioThree().compareTo(BigDecimal.ZERO) != 0) { + unitPrice = unitPrice.multiply(unitInfo.getRatioThree()); + } + } + return unitPrice; + } + + /** + * 根据多单位的比例进行总金额换算(保留两位小数),变小 + * @param allPrice + * @param unitInfo + * @param materialUnit + * @return + */ + public BigDecimal parseAllPriceByUnit(BigDecimal allPrice, Unit unitInfo, String materialUnit) { + if(allPrice!=null) { + if (materialUnit.equals(unitInfo.getOtherUnit()) && unitInfo.getRatio() != null && unitInfo.getRatio().compareTo(BigDecimal.ZERO) != 0) { + allPrice = allPrice.divide(unitInfo.getRatio(), 2, BigDecimal.ROUND_HALF_UP); + } + if (materialUnit.equals(unitInfo.getOtherUnitTwo()) && unitInfo.getRatioTwo() != null && unitInfo.getRatioTwo().compareTo(BigDecimal.ZERO) != 0) { + allPrice = allPrice.divide(unitInfo.getRatioTwo(), 2, BigDecimal.ROUND_HALF_UP); + } + if (materialUnit.equals(unitInfo.getOtherUnitThree()) && unitInfo.getRatioThree() != null && unitInfo.getRatioThree().compareTo(BigDecimal.ZERO) != 0) { + allPrice = allPrice.divide(unitInfo.getRatioThree(), 2, BigDecimal.ROUND_HALF_UP); + } + } + return allPrice; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Boolean status, String ids)throws Exception { + logService.insertLog("多单位", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ENABLED).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + List unitIds = StringUtil.strToLongList(ids); + Unit unit = new Unit(); + unit.setEnabled(status); + UnitExample example = new UnitExample(); + example.createCriteria().andIdIn(unitIds); + int result=0; + try{ + result = unitMapper.updateByExampleSelective(unit, example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public Map getUnitMap() throws Exception { + List unitList = getUnit(); + Map unitMap = new HashMap<>(); + for(Unit unit : unitList){ + unitMap.put(unit.getId(), unit); + } + return unitMap; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/UserBusinessService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/UserBusinessService.java new file mode 100644 index 0000000..21166cd --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/UserBusinessService.java @@ -0,0 +1,244 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.User; +import com.reallin.smt.datasource.entities.UserBusiness; +import com.reallin.smt.datasource.entities.UserBusinessExample; +import com.reallin.smt.datasource.mappers.UserBusinessMapper; +import com.reallin.smt.datasource.mappers.UserBusinessMapperEx; +import com.reallin.smt.exception.JshException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class UserBusinessService { + private Logger logger = LoggerFactory.getLogger(UserBusinessService.class); + + @Resource + private UserBusinessMapper userBusinessMapper; + @Resource + private UserBusinessMapperEx userBusinessMapperEx; + @Resource + private LogService logService; + @Resource + private UserService userService; + + public UserBusiness getUserBusiness(long id)throws Exception { + UserBusiness result=null; + try{ + result=userBusinessMapper.selectByPrimaryKey(id); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getUserBusiness()throws Exception { + UserBusinessExample example = new UserBusinessExample(); + example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list=userBusinessMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertUserBusiness(JSONObject obj, HttpServletRequest request) throws Exception { + UserBusiness userBusiness = JSONObject.parseObject(obj.toJSONString(), UserBusiness.class); + int result=0; + try{ + String value = userBusiness.getValue(); + String newValue = value.replaceAll(",","\\]\\["); + newValue = newValue.replaceAll("\\[0\\]","").replaceAll("\\[\\]",""); + userBusiness.setValue(newValue); + result=userBusinessMapper.insertSelective(userBusiness); + logService.insertLog("关联关系", BusinessConstants.LOG_OPERATION_TYPE_ADD, request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateUserBusiness(JSONObject obj, HttpServletRequest request) throws Exception { + UserBusiness userBusiness = JSONObject.parseObject(obj.toJSONString(), UserBusiness.class); + int result=0; + try{ + String value = userBusiness.getValue(); + String newValue = value.replaceAll(",","\\]\\["); + newValue = newValue.replaceAll("\\[0\\]","").replaceAll("\\[\\]",""); + userBusiness.setValue(newValue); + result=userBusinessMapper.updateByPrimaryKeySelective(userBusiness); + logService.insertLog("关联关系", BusinessConstants.LOG_OPERATION_TYPE_EDIT, request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteUserBusiness(Long id, HttpServletRequest request)throws Exception { + return batchDeleteUserBusinessByIds(id.toString()); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteUserBusiness(String ids, HttpServletRequest request)throws Exception { + return batchDeleteUserBusinessByIds(ids); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteUserBusinessByIds(String ids) throws Exception{ + logService.insertLog("关联关系", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + int result=0; + try{ + result= userBusinessMapperEx.batchDeleteUserBusinessByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public int checkIsNameExist(Long id, String name)throws Exception { + return 1; + } + + public List getBasicData(String keyId, String type)throws Exception{ + List list=null; + try{ + list= userBusinessMapperEx.getBasicDataByKeyIdAndType(keyId, type); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public String getUBValueByTypeAndKeyId(String type, String keyId) throws Exception { + String ubValue = ""; + List ubList = getBasicData(keyId, type); + if(ubList!=null && ubList.size()>0) { + ubValue = ubList.get(0).getValue(); + } + return ubValue; + } + + public Long checkIsValueExist(String type, String keyId)throws Exception { + UserBusinessExample example = new UserBusinessExample(); + example.createCriteria().andTypeEqualTo(type).andKeyIdEqualTo(keyId) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= userBusinessMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + Long id = null; + if(list!=null&&list.size() > 0) { + id = list.get(0).getId(); + } + return id; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateBtnStr(String keyId, String type, String btnStr) throws Exception{ + logService.insertLog("关联关系", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append("角色的按钮权限").toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + UserBusiness userBusiness = new UserBusiness(); + userBusiness.setBtnStr(btnStr); + UserBusinessExample example = new UserBusinessExample(); + example.createCriteria().andKeyIdEqualTo(keyId).andTypeEqualTo(type); + int result=0; + try{ + result= userBusinessMapper.updateByExampleSelective(userBusiness, example); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + public List getUBKeyIdByTypeAndOneValue(String type, String oneValue) { + return userBusinessMapperEx.getUBKeyIdByTypeAndOneValue(type, oneValue); + } + + public int updateOneValueByKeyIdAndType(String type, JSONArray keyIdArr, String oneValue) { + int res = 0; + try { + Map keyIdMap = new HashMap<>(); + List oldUbList = userBusinessMapperEx.getOldListByType(type); + for(Object keyIdObj: keyIdArr) { + String keyId = keyIdObj.toString(); + keyIdMap.put(keyId, keyId); + List ubList = userBusinessMapperEx.getBasicDataByKeyIdAndType(keyId, type); + if(ubList.size()>0) { + String valueStr = ubList.get(0).getValue(); + Boolean flag = valueStr.contains("[" + oneValue + "]"); + if(flag) { + //存在则忽略 + } else { + //不存在则追加并更新 + valueStr = valueStr + "[" + oneValue + "]"; + UserBusiness userBusiness = new UserBusiness(); + userBusiness.setId(ubList.get(0).getId()); + userBusiness.setValue(valueStr); + userBusinessMapper.updateByPrimaryKeySelective(userBusiness); + } + } else { + //新增数据 + UserBusiness userBusiness = new UserBusiness(); + userBusiness.setType(type); + userBusiness.setKeyId(keyId); + userBusiness.setValue("[" + oneValue + "]"); + userBusinessMapper.insertSelective(userBusiness); + } + } + //检查被移除的keyId + for(UserBusiness item: oldUbList) { + String oldValue = item.getValue(); + String oldkeyId = item.getKeyId(); + if(keyIdMap.get(oldkeyId) == null) { + //处理被删除的keyId + String valueStr = "[" + oneValue + "]"; + if(oldValue.equals(valueStr)) { + //说明value里面只有一条数据,需要进行逻辑删除 + UserBusiness userBusiness = new UserBusiness(); + userBusiness.setId(item.getId()); + userBusiness.setDeleteFlag("1"); + userBusinessMapper.updateByPrimaryKeySelective(userBusiness); + } else { + //多条进行替换后再更新 + String newValue = oldValue.replace(valueStr, ""); + UserBusiness userBusiness = new UserBusiness(); + userBusiness.setId(item.getId()); + userBusiness.setValue(newValue); + userBusinessMapper.updateByPrimaryKeySelective(userBusiness); + } + } + } + res = 1; + } catch (Exception e) { + res = 0; + logger.error(e.getMessage(), e); + } + return res; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/service/UserService.java b/smtERP-boot/src/main/java/com/reallin/smt/service/UserService.java new file mode 100644 index 0000000..ac6a57d --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/service/UserService.java @@ -0,0 +1,941 @@ +package com.reallin.smt.service; + +import com.reallin.smt.datasource.entities.*; +import com.reallin.smt.utils.*; +import org.springframework.util.StringUtils; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.constants.ExceptionConstants; +import com.reallin.smt.datasource.mappers.UserMapper; +import com.reallin.smt.datasource.mappers.UserMapperEx; +import com.reallin.smt.datasource.vo.TreeNodeEx; +import com.reallin.smt.exception.BusinessRunTimeException; +import com.reallin.smt.exception.JshException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.security.NoSuchAlgorithmException; +import java.util.*; + +@Service +public class UserService { + private Logger logger = LoggerFactory.getLogger(UserService.class); + + @Resource + private UserMapper userMapper; + @Resource + private UserMapperEx userMapperEx; + @Resource + private OrgaUserRelService orgaUserRelService; + @Resource + private LogService logService; + @Resource + private UserService userService; + @Resource + private UserBusinessService userBusinessService; + @Resource + private RoleService roleService; + @Resource + private FunctionService functionService; + @Resource + private PlatformConfigService platformConfigService; + @Resource + private RedisService redisService; + @Resource + private LoginAttemptService loginAttemptService; + + public User getUser(long id)throws Exception { + User result=null; + try{ + //先校验是否登录,然后才能查询用户数据 + HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + Long userId = this.getUserId(request); + if(userId!=null) { + result = userMapper.selectByPrimaryKey(id); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + public List getUserListByIds(String ids)throws Exception { + List idList = StringUtil.strToLongList(ids); + List list = new ArrayList<>(); + try{ + UserExample example = new UserExample(); + example.createCriteria().andIdIn(idList); + list = userMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getUser(HttpServletRequest request) throws Exception { + List list=null; + try{ + //先校验是否登录,然后才能查询用户数据 + Long userId = this.getUserId(request); + if(userId!=null) { + UserExample example = new UserExample(); + example.createCriteria().andStatusEqualTo(BusinessConstants.USER_STATUS_NORMAL).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + list = userMapper.selectByExample(example); + } + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List select(String userName, String loginName)throws Exception { + List list=null; + try { + //先校验是否登录,然后才能查询用户数据 + HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + Long userId = this.getUserId(request); + if(userId!=null) { + PageUtils.startPage(); + list = userMapperEx.selectByConditionUser(userName, loginName); + for (UserEx ue : list) { + String userType = ""; + userType = ue.getIsystem() != null && ue.getIsystem() == 1 ? "系统管理员" : "普通用户"; + ue.setUserType(userType); + //是否经理 + String leaderFlagStr = ""; + if ("1".equals(ue.getLeaderFlag())) { + leaderFlagStr = "是"; + } else { + leaderFlagStr = "否"; + } + ue.setLeaderFlagStr(leaderFlagStr); + } + } + } catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public Long countUser(String userName, String loginName)throws Exception { + Long result=null; + try{ + result=userMapperEx.countsByUser(userName, loginName); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertUser(JSONObject obj, HttpServletRequest request)throws Exception { + User user = JSONObject.parseObject(obj.toJSONString(), User.class); + String password = "123456"; + //因密码用MD5加密,需要对密码进行转化 + try { + password = Tools.md5Encryp(password); + user.setPassword(password); + } catch (NoSuchAlgorithmException e) { + logger.error(">>>>>>>>>>>>>>转化MD5字符串错误 :" + e.getMessage()); + } + int result=0; + try{ + result=userMapper.insertSelective(user); + logService.insertLog("用户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_ADD).append(user.getLoginName()).toString(), request); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateUser(JSONObject obj, HttpServletRequest request) throws Exception{ + User user = JSONObject.parseObject(obj.toJSONString(), User.class); + int result=0; + try{ + //判断是否登录过 + Object userId = redisService.getObjectFromSessionByKey(request,"userId"); + if (userId != null) { + result = userMapper.updateByPrimaryKeySelective(user); + logService.insertLog("用户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(user.getLoginName()).toString(), request); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateUserByObj(User user, HttpServletRequest request) throws Exception{ + int result=0; + try{ + //判断是否登录过 + Object userId = redisService.getObjectFromSessionByKey(request,"userId"); + if (userId != null) { + result = userMapper.updateByPrimaryKeySelective(user); + logService.insertLog("用户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(user.getId()).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int resetPwd(String md5Pwd, Long id, HttpServletRequest request) throws Exception{ + int result=0; + User u = getUser(id); + String loginName = u.getLoginName(); + if("admin".equals(loginName)){ + logger.info("禁止重置超管密码"); + } else { + User user = new User(); + user.setId(id); + user.setPassword(md5Pwd); + try{ + //判断是否登录过 + Object userId = redisService.getObjectFromSessionByKey(request,"userId"); + if (userId != null) { + result = userMapper.updateByPrimaryKeySelective(user); + logService.insertLog("用户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(id).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + } + return result; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteUser(Long id, HttpServletRequest request)throws Exception { + return batDeleteUser(id.toString(), request); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteUser(String ids, HttpServletRequest request)throws Exception { + return batDeleteUser(ids, request); + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batDeleteUser(String ids, HttpServletRequest request) throws Exception{ + int result=0; + StringBuffer sb = new StringBuffer(); + sb.append(BusinessConstants.LOG_OPERATION_TYPE_DELETE); + List list = getUserListByIds(ids); + for(User user: list){ + sb.append("[").append(user.getLoginName()).append("]"); + } + String[] idsArray =ids.split(","); + try{ + //判断是否登录过 + Object userId = redisService.getObjectFromSessionByKey(request,"userId"); + if (userId != null) { + result = userMapperEx.batDeleteOrUpdateUser(idsArray); + if(result>0) { + //从redis中移除这些用户的登录状态 + for (String idStr : idsArray) { + redisService.deleteObjectByUser(Long.valueOf(idStr)); + } + } + logService.insertLog("用户", sb.toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } + }catch(Exception e){ + JshException.writeFail(logger, e); + } + if(result<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids:[{}]", + ExceptionConstants.USER_DELETE_FAILED_CODE,ExceptionConstants.USER_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.USER_DELETE_FAILED_CODE, + ExceptionConstants.USER_DELETE_FAILED_MSG); + } + return result; + } + + /** + * 校验验证码 + * @param code 验证码 + * @param uuid 唯一标识 + * @return 结果 + */ + public void validateCaptcha(String code, String uuid) throws Exception { + PlatformConfig platformConfig = platformConfigService.getInfoByKey("checkcode_flag"); + if(platformConfig!=null && "1".equals(platformConfig.getPlatformValue())) { + if(StringUtil.isNotEmpty(code) && StringUtil.isNotEmpty(uuid)) { + code = code.trim(); + uuid = uuid.trim(); + String verifyKey = BusinessConstants.CAPTCHA_CODE_KEY + uuid; + String captcha = redisService.getCacheObject(verifyKey); + redisService.deleteObject(verifyKey); + if (captcha == null) { + logger.error("异常码[{}],异常提示[{}]", ExceptionConstants.USER_JCAPTCHA_EXPIRE_CODE, ExceptionConstants.USER_JCAPTCHA_EXPIRE_MSG); + throw new BusinessRunTimeException(ExceptionConstants.USER_JCAPTCHA_EXPIRE_CODE, ExceptionConstants.USER_JCAPTCHA_EXPIRE_MSG); + } + if (!code.equalsIgnoreCase(captcha)) { + logger.error("异常码[{}],异常提示[{}]", ExceptionConstants.USER_JCAPTCHA_ERROR_CODE, ExceptionConstants.USER_JCAPTCHA_ERROR_MSG); + throw new BusinessRunTimeException(ExceptionConstants.USER_JCAPTCHA_ERROR_CODE, ExceptionConstants.USER_JCAPTCHA_ERROR_MSG); + } + } else { + logger.error("异常码[{}],异常提示[{}]", ExceptionConstants.USER_JCAPTCHA_EMPTY_CODE, ExceptionConstants.USER_JCAPTCHA_EMPTY_MSG); + throw new BusinessRunTimeException(ExceptionConstants.USER_JCAPTCHA_EMPTY_CODE, ExceptionConstants.USER_JCAPTCHA_EMPTY_MSG); + } + } + } + + /** + * 用户登录 + * @param loginName + * @param password + * @param request + * @return + * @throws Exception + */ + public Map login(String loginName, String password, HttpServletRequest request) throws Exception { + Map data = new HashMap<>(); + String msgTip = ""; + User user = null; + long remainingDelaySeconds = loginAttemptService.getRemainingDelaySeconds(loginName); + if (remainingDelaySeconds > 0) { + data.put("msgTip", "user login locked"); + data.put("retryAfterSeconds", remainingDelaySeconds); + return data; + } + //判断用户是否已经登录过,登录过不再处理 + Object userId = redisService.getObjectFromSessionByKey(request,"userId"); + if (userId != null) { + logger.info("====用户已经登录过, login 方法调用结束===="); + msgTip = "user already login"; + } + //获取用户状态 + int userStatus = -1; + try { + redisService.deleteObjectBySession(request,"userId"); + userStatus = validateUser(loginName, password); + } catch (Exception e) { + logger.error(">>>>>>>>>>>>>用户 " + loginName + " 登录 login 方法 访问服务层异常====", e); + msgTip = "access service exception"; + } + String token = UUID.randomUUID().toString().replaceAll("-", "") + ""; + switch (userStatus) { + case ExceptionCodeConstants.UserExceptionCode.USER_NOT_EXIST: + msgTip = "user is not exist"; + break; + case ExceptionCodeConstants.UserExceptionCode.USER_PASSWORD_ERROR: + msgTip = "user password error"; + long delaySeconds = loginAttemptService.recordPasswordFailure(loginName); + if (delaySeconds > 0) { + msgTip = "user login locked"; + data.put("retryAfterSeconds", delaySeconds); + } + break; + case ExceptionCodeConstants.UserExceptionCode.BLACK_USER: + msgTip = "user is black"; + break; + case ExceptionCodeConstants.UserExceptionCode.USER_ACCESS_EXCEPTION: + msgTip = "access service error"; + break; + case ExceptionCodeConstants.UserExceptionCode.USER_CONDITION_FIT: + msgTip = "user can login"; + loginAttemptService.clear(loginName); + //验证通过 ,可以登录,放入session,记录登录日志 + user = getUserByLoginName(loginName); + redisService.storageObjectBySession(token,"userId",user.getId()); + break; + default: + break; + } + data.put("msgTip", msgTip); + if(user!=null){ + //校验下密码是不是过于简单 + boolean pwdSimple = false; + if(user.getPassword().equals(Tools.md5Encryp(BusinessConstants.USER_DEFAULT_PASSWORD))) { + pwdSimple = true; + } + user.setPassword(null); + if(BusinessConstants.DEFAULT_MANAGER.equals(user.getLoginName())) { + //如果是管理员,则发送登录邮件 + sendEmailToCurrentUser(request, user); + } + redisService.storageObjectBySession(token,"clientIp", Tools.getLocalIp(request)); + logService.insertLogWithUserId(user.getId(), user.getTenantId(), "用户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_LOGIN).append(user.getLoginName()).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + data.put("token", token); + data.put("user", user); + data.put("pwdSimple", pwdSimple); + } + return data; + } + + public int validateUser(String loginName, String password) throws Exception { + /**默认是可以登录的*/ + List list = null; + try { + UserExample example = new UserExample(); + example.createCriteria().andLoginNameEqualTo(loginName).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + list = userMapper.selectByExample(example); + if (null != list && list.size() == 0) { + return ExceptionCodeConstants.UserExceptionCode.USER_NOT_EXIST; + } else if(list.size() ==1) { + if(list.get(0).getStatus()!=0) { + return ExceptionCodeConstants.UserExceptionCode.BLACK_USER; + } + } + } catch (Exception e) { + logger.error(">>>>>>>>访问验证用户姓名是否存在后台信息异常", e); + return ExceptionCodeConstants.UserExceptionCode.USER_ACCESS_EXCEPTION; + } + try { + UserExample example = new UserExample(); + example.createCriteria().andLoginNameEqualTo(loginName).andPasswordEqualTo(password) + .andStatusEqualTo(BusinessConstants.USER_STATUS_NORMAL).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + list = userMapper.selectByExample(example); + if (null != list && list.size() == 0) { + return ExceptionCodeConstants.UserExceptionCode.USER_PASSWORD_ERROR; + } + } catch (Exception e) { + logger.error(">>>>>>>>>>访问验证用户密码后台信息异常", e); + return ExceptionCodeConstants.UserExceptionCode.USER_ACCESS_EXCEPTION; + } + return ExceptionCodeConstants.UserExceptionCode.USER_CONDITION_FIT; + } + + public User getUserByLoginName(String loginName)throws Exception { + UserExample example = new UserExample(); + example.createCriteria().andLoginNameEqualTo(loginName).andStatusEqualTo(BusinessConstants.USER_STATUS_NORMAL) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= userMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + User user =null; + if(list!=null&&list.size()>0){ + user = list.get(0); + } + return user; + } + + /** + * 发送邮件给当前用户 + * @param request + * @param user + * @throws Exception + */ + private void sendEmailToCurrentUser(HttpServletRequest request, User user) throws Exception { + String platformName = platformConfigService.getPlatformConfigByKey("platform_name").getPlatformValue(); + String emailFrom = platformConfigService.getPlatformConfigByKey("email_from").getPlatformValue(); + String emailAuthCode = platformConfigService.getPlatformConfigByKey("email_auth_code").getPlatformValue(); + String emailSmtpHost = platformConfigService.getPlatformConfigByKey("email_smtp_host").getPlatformValue(); + if(StringUtil.isNotEmpty(emailFrom) && StringUtil.isNotEmpty(emailAuthCode) && StringUtil.isNotEmpty(emailSmtpHost) + && StringUtil.isNotEmpty(user.getEmail())) { + String emailSubject = "用户" + user.getLoginName() + "成功登录" + platformName; + String emailBody = "用户" + user.getLoginName() + "成功登录" + platformName + ",登录时间:" + Tools.getCenternTime(new Date()) + + ",登录IP:" + Tools.getLocalIp(request); + platformConfigService.sendEmail(emailFrom, emailAuthCode, emailSmtpHost, user.getEmail(), emailSubject, emailBody); + } + } + + public int checkIsNameExist(Long id, String name)throws Exception { + UserExample example = new UserExample(); + List userStatus = new ArrayList<>(); + userStatus.add(BusinessConstants.USER_STATUS_NORMAL); + example.createCriteria().andIdNotEqualTo(id).andLoginNameEqualTo(name).andStatusIn(userStatus) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list=null; + try{ + list= userMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list==null?0:list.size(); + } + /** + * create by: cjl + * description: + * 获取当前用户信息 + * create time: 2019/1/24 10:01 + * @Param: + * @return com.reallin.smt.datasource.entities.User + */ + public User getCurrentUser()throws Exception{ + HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + Long userId = Long.parseLong(redisService.getObjectFromSessionByKey(request,"userId").toString()); + return getUser(userId); + } + + /** + * 根据用户名查询id + * @param loginName + * @return + */ + public Long getIdByLoginName(String loginName) { + Long userId = 0L; + UserExample example = new UserExample(); + example.createCriteria().andLoginNameEqualTo(loginName).andStatusEqualTo(BusinessConstants.USER_STATUS_NORMAL) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = userMapper.selectByExample(example); + if(list!=null) { + userId = list.get(0).getId(); + } + return userId; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void addUserAndOrgUserRel(UserEx ue, HttpServletRequest request) throws Exception{ + if(BusinessConstants.DEFAULT_MANAGER.equals(ue.getLoginName())) { + throw new BusinessRunTimeException(ExceptionConstants.USER_NAME_LIMIT_USE_CODE, + ExceptionConstants.USER_NAME_LIMIT_USE_MSG); + } else { + logService.insertLog("用户", + BusinessConstants.LOG_OPERATION_TYPE_ADD, + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + //校验角色和部门的选择逻辑 + checkRoleAndOrg(ue); + //检查用户名和登录名 + checkLoginName(ue); + //新增用户信息 + ue= this.addUser(ue); + if(ue==null){ + logger.error("异常码[{}],异常提示[{}],参数,[{}]", + ExceptionConstants.USER_ADD_FAILED_CODE,ExceptionConstants.USER_ADD_FAILED_MSG); + throw new BusinessRunTimeException(ExceptionConstants.USER_ADD_FAILED_CODE, + ExceptionConstants.USER_ADD_FAILED_MSG); + } + //用户id,根据用户名查询id + Long userId = getIdByLoginName(ue.getLoginName()); + if(ue.getRoleId()!=null){ + JSONObject ubObj = new JSONObject(); + ubObj.put("type", "UserRole"); + ubObj.put("keyid", userId); + ubObj.put("value", "[" + ue.getRoleId() + "]"); + userBusinessService.insertUserBusiness(ubObj, request); + } + if(ue.getOrgaId()!=null && "1".equals(ue.getLeaderFlag())){ + //检查当前部门是否存在经理 + List checkList = userMapperEx.getListByOrgaId(ue.getId(), ue.getOrgaId()); + if(checkList.size()>0) { + throw new BusinessRunTimeException(ExceptionConstants.USER_LEADER_IS_EXIST_CODE, + ExceptionConstants.USER_LEADER_IS_EXIST_MSG); + } + } + //新增用户和部门关联关系 + OrgaUserRel oul=new OrgaUserRel(); + //部门id + oul.setOrgaId(ue.getOrgaId()); + oul.setUserId(userId); + //用户在部门中的排序 + oul.setUserBlngOrgaDsplSeq(ue.getUserBlngOrgaDsplSeq()); + oul=orgaUserRelService.addOrgaUserRel(oul); + if(oul==null){ + logger.error("异常码[{}],异常提示[{}],参数,[{}]", + ExceptionConstants.ORGA_USER_REL_ADD_FAILED_CODE,ExceptionConstants.ORGA_USER_REL_ADD_FAILED_MSG); + throw new BusinessRunTimeException(ExceptionConstants.ORGA_USER_REL_ADD_FAILED_CODE, + ExceptionConstants.ORGA_USER_REL_ADD_FAILED_MSG); + } + } + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public UserEx addUser(UserEx ue) throws Exception{ + /** + * 新增用户默认设置 + * 1是否系统自带默认为非系统自带 + * 2是否管理者默认为员工 + * 3默认用户状态为正常 + * */ + ue.setIsystem(BusinessConstants.USER_NOT_SYSTEM); + if(ue.getIsmanager()==null){ + ue.setIsmanager(BusinessConstants.USER_NOT_MANAGER); + } + ue.setStatus(BusinessConstants.USER_STATUS_NORMAL); + int result=0; + try{ + result= userMapper.insertSelective(ue); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + if(result>0){ + return ue; + } + return null; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void registerUser(UserEx ue, Integer manageRoleId, HttpServletRequest request) throws Exception{ + /** + * 多次创建事务,事物之间无法协同,应该在入口处创建一个事务以做协调 + */ + if(BusinessConstants.DEFAULT_MANAGER.equals(ue.getLoginName())) { + throw new BusinessRunTimeException(ExceptionConstants.USER_NAME_LIMIT_USE_CODE, + ExceptionConstants.USER_NAME_LIMIT_USE_MSG); + } else { + ue.setPassword(ue.getPassword()); + ue.setIsystem(BusinessConstants.USER_NOT_SYSTEM); + if (ue.getIsmanager() == null) { + ue.setIsmanager(BusinessConstants.USER_NOT_MANAGER); + } + ue.setStatus(BusinessConstants.USER_STATUS_NORMAL); + try{ + userMapper.insertSelective(ue); + Long userId = getIdByLoginName(ue.getLoginName()); + ue.setId(userId); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + //新增用户与角色的关系 + JSONObject ubObj = new JSONObject(); + ubObj.put("type", "UserRole"); + ubObj.put("keyid", ue.getId()); + JSONArray ubArr = new JSONArray(); + ubArr.add(manageRoleId); + ubObj.put("value", ubArr.toString()); + userBusinessService.insertUserBusiness(ubObj, null); + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateUserTenant(User user) throws Exception{ + UserExample example = new UserExample(); + example.createCriteria().andIdEqualTo(user.getId()); + try{ + userMapper.updateByPrimaryKeySelective(user); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public void updateUserAndOrgUserRel(UserEx ue, HttpServletRequest request) throws Exception{ + if(BusinessConstants.DEFAULT_MANAGER.equals(ue.getLoginName())) { + throw new BusinessRunTimeException(ExceptionConstants.USER_NAME_LIMIT_USE_CODE, + ExceptionConstants.USER_NAME_LIMIT_USE_MSG); + } else { + logService.insertLog("用户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(ue.getId()).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + //校验角色和部门的选择逻辑 + checkRoleAndOrg(ue); + //检查用户名和登录名 + checkLoginName(ue); + //更新用户信息 + ue = this.updateUser(ue); + if (ue == null) { + logger.error("异常码[{}],异常提示[{}],参数,[{}]", + ExceptionConstants.USER_EDIT_FAILED_CODE, ExceptionConstants.USER_EDIT_FAILED_MSG); + throw new BusinessRunTimeException(ExceptionConstants.USER_EDIT_FAILED_CODE, + ExceptionConstants.USER_EDIT_FAILED_MSG); + } + if(ue.getRoleId()!=null){ + JSONObject ubObj = new JSONObject(); + ubObj.put("type", "UserRole"); + ubObj.put("keyid", ue.getId()); + ubObj.put("value", "[" + ue.getRoleId() + "]"); + Long ubId = userBusinessService.checkIsValueExist("UserRole", ue.getId().toString()); + if(ubId!=null) { + ubObj.put("id", ubId); + userBusinessService.updateUserBusiness(ubObj, request); + } else { + userBusinessService.insertUserBusiness(ubObj, request); + } + } + if(ue.getOrgaId()!=null && "1".equals(ue.getLeaderFlag())){ + //检查当前部门是否存在经理 + List checkList = userMapperEx.getListByOrgaId(ue.getId(), ue.getOrgaId()); + if(checkList.size()>0) { + throw new BusinessRunTimeException(ExceptionConstants.USER_LEADER_IS_EXIST_CODE, + ExceptionConstants.USER_LEADER_IS_EXIST_MSG); + } + } + //更新用户和部门关联关系 + OrgaUserRel oul = new OrgaUserRel(); + //部门和用户关联关系id + oul.setId(ue.getOrgaUserRelId()); + //部门id + oul.setOrgaId(ue.getOrgaId()); + //用户id + oul.setUserId(ue.getId()); + //用户在部门中的排序 + oul.setUserBlngOrgaDsplSeq(ue.getUserBlngOrgaDsplSeq()); + if (oul.getId() != null) { + //已存在部门和用户的关联关系,更新 + oul = orgaUserRelService.updateOrgaUserRel(oul); + } else { + //不存在部门和用户的关联关系,新建 + oul = orgaUserRelService.addOrgaUserRel(oul); + } + if (oul == null) { + logger.error("异常码[{}],异常提示[{}],参数,[{}]", + ExceptionConstants.ORGA_USER_REL_EDIT_FAILED_CODE, ExceptionConstants.ORGA_USER_REL_EDIT_FAILED_MSG); + throw new BusinessRunTimeException(ExceptionConstants.ORGA_USER_REL_EDIT_FAILED_CODE, + ExceptionConstants.ORGA_USER_REL_EDIT_FAILED_MSG); + } + } + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public UserEx updateUser(UserEx ue)throws Exception{ + int result =0; + try{ + result=userMapper.updateByPrimaryKeySelective(ue); + }catch(Exception e){ + JshException.writeFail(logger, e); + } + if(result>0){ + return ue; + } + return null; + } + + /** + * 校验角色和部门的选择逻辑:如果角色的数据类型是本部门数据,此时如果未选择部门,则异常 + * @param ue + */ + private void checkRoleAndOrg(UserEx ue) throws Exception { + // 单机版只按角色菜单授权,不再启用角色数据范围限制。 + } + /** + * 检查登录名不能重复 + * create time: 2019/3/12 11:36 + * @Param: userEx + * @return void + */ + public void checkLoginName(UserEx userEx)throws Exception{ + List list=null; + if(userEx==null){ + return; + } + Long userId=userEx.getId(); + //检查登录名 + if(!StringUtils.isEmpty(userEx.getLoginName())){ + String loginName=userEx.getLoginName(); + list=this.getUserListByloginName(loginName); + if(list!=null&&list.size()>0){ + if(list.size()>1){ + //超过一条数据存在,该登录名已存在 + logger.error("异常码[{}],异常提示[{}],参数,loginName:[{}]", + ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_CODE,ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_MSG,loginName); + throw new BusinessRunTimeException(ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_CODE, + ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_MSG); + } + //一条数据,新增时抛出异常,修改时和当前的id不同时抛出异常 + if(list.size()==1){ + if(userId==null||(userId!=null&&!userId.equals(list.get(0).getId()))){ + logger.error("异常码[{}],异常提示[{}],参数,loginName:[{}]", + ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_CODE,ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_MSG,loginName); + throw new BusinessRunTimeException(ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_CODE, + ExceptionConstants.USER_LOGIN_NAME_ALREADY_EXISTS_MSG); + } + } + } + } + } + /** + * 通过登录名获取用户列表 + * */ + public List getUserListByloginName(String loginName){ + List list =null; + try{ + list=userMapperEx.getUserListByUserNameOrLoginName(null,loginName); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + public List getOrganizationUserTree()throws Exception { + List list =null; + try{ + list=userMapperEx.getNodeTree(); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + + /** + * 根据用户id查询角色信息 + * @param userId + * @return + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public Role getRoleTypeByUserId(long userId) throws Exception { + Role role = new Role(); + List list = userBusinessService.getBasicData(String.valueOf(userId), "UserRole"); + UserBusiness ub = null; + if(list.size() > 0) { + ub = list.get(0); + String values = ub.getValue(); + String roleId = null; + if(values!=null) { + values = values.replaceAll("\\[\\]",",").replace("[","").replace("]",""); + } + String [] valueArray=values.split(","); + if(valueArray.length>0) { + roleId = valueArray[0]; + } + role = roleService.getRoleWithoutTenant(Long.parseLong(roleId)); + } + return role; + } + + /** + * 获取用户id + * @param request + * @return + */ + public Long getUserId(HttpServletRequest request) throws Exception{ + Object userIdObj = redisService.getObjectFromSessionByKey(request,"userId"); + Long userId = null; + if(userIdObj != null) { + userId = Long.parseLong(userIdObj.toString()); + } + return userId; + } + + /** + * 用户的按钮权限 + * @param userId + * @return + * @throws Exception + */ + public JSONArray getBtnStrArrById(Long userId) throws Exception { + JSONArray btnStrArr = new JSONArray(); + List userRoleList = userBusinessService.getBasicData(userId.toString(), "UserRole"); + if(userRoleList!=null && userRoleList.size()>0) { + String roleValue = userRoleList.get(0).getValue(); + if(StringUtil.isNotEmpty(roleValue) && roleValue.indexOf("[")>-1 && roleValue.indexOf("]")>-1){ + roleValue = roleValue.replace("[", "").replace("]", ""); //角色id-单个 + List roleFunctionsList = userBusinessService.getBasicData(roleValue, "RoleFunctions"); + if(roleFunctionsList!=null && roleFunctionsList.size()>0) { + String btnStr = roleFunctionsList.get(0).getBtnStr(); + if(StringUtil.isNotEmpty(btnStr)){ + btnStrArr = JSONArray.parseArray(btnStr); + } + } + } + } + //将数组中的funId转为url + JSONArray btnStrWithUrlArr = new JSONArray(); + if(btnStrArr.size()>0) { + List functionList = functionService.getFunction(); + Map functionMap = new HashMap<>(); + for (Function function: functionList) { + functionMap.put(function.getId(), function.getUrl()); + } + for (Object obj : btnStrArr) { + JSONObject btnStrObj = JSONObject.parseObject(obj.toString()); + Long funId = btnStrObj.getLong("funId"); + JSONObject btnStrWithUrlObj = new JSONObject(); + btnStrWithUrlObj.put("url", functionMap.get(funId)); + btnStrWithUrlObj.put("btnStr", btnStrObj.getString("btnStr")); + btnStrWithUrlArr.add(btnStrWithUrlObj); + } + } + return btnStrWithUrlArr; + } + + /** + * 判断当前用户是否拥有权限管理按钮权限。 + * 默认管理员作为初始授权入口,始终拥有该权限。 + * + * @return true-可查看并分配全部菜单,false-只能分配自身已有菜单 + */ + public boolean hasPermissionManagement() throws Exception { + User userInfo = getCurrentUser(); + if(userInfo == null) { + return false; + } + if(BusinessConstants.DEFAULT_MANAGER.equals(userInfo.getLoginName())) { + return true; + } + JSONArray btnStrArr = getBtnStrArrById(userInfo.getId()); + for(Object obj : btnStrArr) { + JSONObject btnObj = JSONObject.parseObject(obj.toString()); + if(BusinessConstants.PERMISSION_MANAGEMENT_URL.equals(btnObj.getString("url"))) { + String btnStr = btnObj.getString("btnStr"); + if(StringUtil.isNotEmpty(btnStr) + && ("," + btnStr + ",").contains("," + BusinessConstants.PERMISSION_MANAGEMENT_BUTTON + ",")) { + return true; + } + } + } + return false; + } + + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchSetStatus(Byte status, String ids, HttpServletRequest request)throws Exception { + int result=0; + List list = getUserListByIds(ids); + StringBuilder userStr = new StringBuilder(); + List idList = new ArrayList<>(); + for(User user: list) { + idList.add(user.getId()); + userStr.append(user.getLoginName()).append(" "); + } + String statusStr =""; + if(status == 0) { + statusStr ="批量启用"; + } else if(status == 2) { + statusStr ="批量禁用"; + } + if(idList.size()>0) { + User user = new User(); + user.setStatus(status); + UserExample example = new UserExample(); + example.createCriteria().andIdIn(idList); + result = userMapper.updateByExampleSelective(user, example); + logService.insertLog("用户", + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(userStr).append("-").append(statusStr).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + } else { + result = 1; + } + return result; + } + + public User getUserByWeixinCode(String weixinCode) throws Exception { + String weixinLogin = platformConfigService.getPlatformConfigByKey("weixinUrl").getPlatformValue() + BusinessConstants.WEIXIN_LOGIN; + String weixinAppid = platformConfigService.getPlatformConfigByKey("weixinAppid").getPlatformValue(); + String weixinSecret = platformConfigService.getPlatformConfigByKey("weixinSecret").getPlatformValue(); + String url = weixinLogin + "?appid=" + weixinAppid + "&secret=" + weixinSecret + "&js_code=" + weixinCode + + "&grant_type=authorization_code"; + JSONObject jsonObject = HttpClient.httpGet(url); + if(jsonObject!=null) { + String weixinOpenId = jsonObject.getString("openid"); + if(StringUtil.isNotEmpty(weixinOpenId)) { + return userMapperEx.getUserByWeixinOpenId(weixinOpenId); + } + } + return null; + } + + public int weixinBind(String loginName, String password, String weixinCode) throws Exception { + String weixinUrl = platformConfigService.getPlatformConfigByKey("weixinUrl").getPlatformValue() + BusinessConstants.WEIXIN_LOGIN; + String weixinAppid = platformConfigService.getPlatformConfigByKey("weixinAppid").getPlatformValue(); + String weixinSecret = platformConfigService.getPlatformConfigByKey("weixinSecret").getPlatformValue(); + String url = weixinUrl + "?appid=" + weixinAppid + "&secret=" + weixinSecret + "&js_code=" + weixinCode + + "&grant_type=authorization_code"; + JSONObject jsonObject = HttpClient.httpGet(url); + if(jsonObject!=null) { + String weixinOpenId = jsonObject.getString("openid"); + if(StringUtil.isNotEmpty(weixinOpenId)) { + return userMapperEx.updateUserWithWeixinOpenId(loginName, password, weixinOpenId); + } + } + return 0; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/AnnotationUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/AnnotationUtils.java new file mode 100644 index 0000000..eb0cf3c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/AnnotationUtils.java @@ -0,0 +1,28 @@ +package com.reallin.smt.utils; + +import java.lang.annotation.Annotation; +import java.lang.annotation.Documented; + +/** + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +public class AnnotationUtils { + public static A getAnnotation(Class cls, Class annotationClass) { + A res = cls.getAnnotation(annotationClass); + if (res == null) { + for (Annotation annotation : cls.getAnnotations()) { + if (annotation instanceof Documented) { + break; + } + res = getAnnotation(annotation.annotationType(), annotationClass); + if (res != null) + break; + } + } + return res; + } + + public static A getAnnotation(T obj, Class annotationClass) { + return getAnnotation(obj.getClass(), annotationClass); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/BaseResponseInfo.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/BaseResponseInfo.java new file mode 100644 index 0000000..77509fe --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/BaseResponseInfo.java @@ -0,0 +1,11 @@ +package com.reallin.smt.utils; + +public class BaseResponseInfo { + public int code; + public Object data; + + public BaseResponseInfo() { + code = 400; + data = null; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ColumnPropertyUtil.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ColumnPropertyUtil.java new file mode 100644 index 0000000..fea1771 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ColumnPropertyUtil.java @@ -0,0 +1,65 @@ +package com.reallin.smt.utils; + +/** + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +public class ColumnPropertyUtil { + + /** + * 将数据库字段转换成属性 + */ + public static String columnToProperty(String column) { + StringBuilder result = new StringBuilder(); + // 快速检查 + if (StringUtil.isEmpty(column)) { + // 没必要转换 + return ""; + } else if (!column.contains("_")) { + // 不做转换 + return column; + } else { + // 用下划线将原始字符串分割 + String[] columns = column.split("_"); + for (String columnSplit : columns) { + // 跳过原始字符串中开头、结尾的下换线或双重下划线 + if (StringUtil.isEmpty(columnSplit)) { + continue; + } + // 处理真正的驼峰片段 + if (result.length() == 0) { + // 第一个驼峰片段,全部字母都小写 + result.append(columnSplit.toLowerCase()); + } else { + // 其他的驼峰片段,首字母大写 + result.append(columnSplit.substring(0, 1).toUpperCase()).append(columnSplit.substring(1).toLowerCase()); + } + } + return result.toString(); + } + + } + + + /** + * 驼峰转换下划线 + */ + public static String propertyToColumn(String property) { + if (StringUtil.isEmpty(property)) { + return ""; + } + StringBuilder column = new StringBuilder(); + column.append(property.substring(0, 1).toLowerCase()); + for (int i = 1; i < property.length(); i++) { + String s = property.substring(i, i + 1); + // 在小写字母前添加下划线 + if (!Character.isDigit(s.charAt(0)) && s.equals(s.toUpperCase())) { + column.append("_"); + } + // 其他字符直接转成小写 + column.append(s.toLowerCase()); + } + + return column.toString(); + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ComputerInfo.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ComputerInfo.java new file mode 100644 index 0000000..699f9ef --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ComputerInfo.java @@ -0,0 +1,137 @@ +package com.reallin.smt.utils; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/* + * <取网卡物理地址-- + * 1.在Windows,Linux系统下均可用; + * 2.通过ipconifg,ifconfig获得计算机信息; + * 3.再用模式匹配方式查找MAC地址,与操作系统的语言无关> + * + * //* Description: <取计算机名--从环境变量中取> + * abstract 限制继承/创建实例 + */ +public abstract class ComputerInfo { + private static String macAddressStr = null; + private static String computerName = System.getenv().get("COMPUTERNAME"); + + private static final String[] windowsCommand = { "ipconfig", "/all" }; + private static final String[] linuxCommand = { "/sbin/ifconfig", "-a" }; + private static final Pattern macPattern = Pattern.compile(".*((:?[0-9a-f]{2}[-:]){5}[0-9a-f]{2}).*", + Pattern.CASE_INSENSITIVE); + + /** + * 获取多个网卡地址 + * + * @return + * @throws IOException + */ + private final static List getMacAddressList() throws IOException { + final ArrayList macAddressList = new ArrayList(); + final String os = System.getProperty("os.name"); + final String command[]; + + if (os.startsWith("Windows")) { + command = windowsCommand; + } else if (os.startsWith("Linux")) { + command = linuxCommand; + } else { + throw new IOException("Unknow operating system:" + os); + } + // 执行命令 + final Process process = Runtime.getRuntime().exec(command); + + BufferedReader bufReader = new BufferedReader(new InputStreamReader(process.getInputStream())); + for (String line = null; (line = bufReader.readLine()) != null;) { + Matcher matcher = macPattern.matcher(line); + if (matcher.matches()) { + macAddressList.add(matcher.group(1)); + // macAddressList.add(matcher.group(1).replaceAll("[-:]", + // ""));//去掉MAC中的“-” + } + } + + process.destroy(); + bufReader.close(); + return macAddressList; + } + + /** + * 获取一个网卡地址(多个网卡时从中获取一个) + * + * @return + */ + public static String getMacAddress() { + if (macAddressStr == null || macAddressStr.equals("")) { + StringBuffer sb = new StringBuffer(); // 存放多个网卡地址用,目前只取一个非0000000000E0隧道的值 + try { + List macList = getMacAddressList(); + for (Iterator iter = macList.iterator(); iter.hasNext();) { + String amac = iter.next(); + if (!amac.equals("0000000000E0")) { + sb.append(amac); + break; + } + } + } catch (IOException ignored) { + } + + macAddressStr = sb.toString(); + + } + + return macAddressStr; + } + + /** + * 获取电脑名 + * + * @return + */ + public static String getComputerName() { + if (computerName == null || computerName.equals("")) { + computerName = System.getenv().get("COMPUTERNAME"); + } + return computerName; + } + + /** + * 获取客户端IP地址 + * + * @return + */ + public static String getIpAddrAndName() throws IOException { + return InetAddress.getLocalHost().toString(); + } + + /** + * 获取客户端IP地址 + * + * @return + */ + public static String getIpAddr() throws IOException { + return InetAddress.getLocalHost().getHostAddress().toString(); + } + + /** + * 限制创建实例 + */ + private ComputerInfo() { + + } + + public static void main(String[] args) throws IOException { + System.out.println(ComputerInfo.getMacAddress()); + System.out.println(ComputerInfo.getComputerName()); + System.out.println(ComputerInfo.getIpAddr()); + System.out.println(ComputerInfo.getIpAddrAndName()); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/Constants.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/Constants.java new file mode 100644 index 0000000..84f7227 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/Constants.java @@ -0,0 +1,34 @@ +package com.reallin.smt.utils; + +import java.util.UUID; + +/** + * by jishenghua qq-752718920 2018-10-7 12:01:36 + */ +public class Constants { + + //查询参数 + public final static String PAGE_SIZE = "pageSize"; + public final static String CURRENT_PAGE = "currentPage"; + public final static String ORDER = "order"; + public final static String FILTER = "filter"; + public final static String SPLIT = ","; + public final static String SEARCH = "search"; + public final static String DEVICE_ID = "deviceId"; + public final static String OFFSET = "offset"; + public final static String ROWS = "rows"; + public final static String IS_RECURSION = "isRecursion"; + public final static String IS_RECURSION_VALUE = "1"; + public final static String IS_QUERYBYNODEID = "isquerybyid"; + public final static String IS_QUERYBYNODEID_VALUE = "1"; + + //级联类别 + public final static String TYPE = "type"; + + //转发 + public final static String TEAM = "team"; + + //增加了角色等级常量 + public final static String LEVEL="level"; + +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/Convert.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/Convert.java new file mode 100644 index 0000000..cf4e31c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/Convert.java @@ -0,0 +1,536 @@ +package com.reallin.smt.utils; + +import com.reallin.smt.utils.StringUtil; + +import java.math.BigDecimal; +import java.text.NumberFormat; + +/** + * 类型转换器 + * + * @author ji-sheng-hua + */ +public class Convert +{ + /** + * 转换为字符串
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static String toStr(Object value, String defaultValue) + { + if (null == value) + { + return defaultValue; + } + if (value instanceof String) + { + return (String) value; + } + return value.toString(); + } + + /** + * 转换为字符串
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static String toStr(Object value) + { + return toStr(value, null); + } + + /** + * 转换为字符
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Character toChar(Object value, Character defaultValue) + { + if (null == value) + { + return defaultValue; + } + if (value instanceof Character) + { + return (Character) value; + } + + final String valueStr = toStr(value, null); + return StringUtil.isEmpty(valueStr) ? defaultValue : valueStr.charAt(0); + } + + /** + * 转换为字符
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Character toChar(Object value) + { + return toChar(value, null); + } + + /** + * 转换为byte
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Byte toByte(Object value, Byte defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Byte) + { + return (Byte) value; + } + if (value instanceof Number) + { + return ((Number) value).byteValue(); + } + final String valueStr = toStr(value, null); + if (StringUtil.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Byte.parseByte(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为byte
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Byte toByte(Object value) + { + return toByte(value, null); + } + + /** + * 转换为Short
+ * 如果给定的值为null,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Short toShort(Object value, Short defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Short) + { + return (Short) value; + } + if (value instanceof Number) + { + return ((Number) value).shortValue(); + } + final String valueStr = toStr(value, null); + if (StringUtil.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Short.parseShort(valueStr.trim()); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Short
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Short toShort(Object value) + { + return toShort(value, null); + } + + /** + * 转换为Number
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Number toNumber(Object value, Number defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Number) + { + return (Number) value; + } + final String valueStr = toStr(value, null); + if (StringUtil.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return NumberFormat.getInstance().parse(valueStr); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为Number
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Number toNumber(Object value) + { + return toNumber(value, null); + } + + /** + * 转换为int
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Integer toInt(Object value, Integer defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Integer) + { + return (Integer) value; + } + if (value instanceof Number) + { + return ((Number) value).intValue(); + } + final String valueStr = toStr(value, null); + if (StringUtil.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + return Integer.parseInt(valueStr.trim()); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为int
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Integer toInt(Object value) + { + return toInt(value, null); + } + + /** + * 转换为Integer数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static Integer[] toIntArray(String str) + { + return toIntArray(",", str); + } + + /** + * 转换为Long数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static Long[] toLongArray(String str) + { + return toLongArray(",", str); + } + + /** + * 转换为Integer数组
+ * + * @param split 分隔符 + * @param split 被转换的值 + * @return 结果 + */ + public static Integer[] toIntArray(String split, String str) + { + if (StringUtil.isEmpty(str)) + { + return new Integer[] {}; + } + String[] arr = str.split(split); + final Integer[] ints = new Integer[arr.length]; + for (int i = 0; i < arr.length; i++) + { + final Integer v = toInt(arr[i], 0); + ints[i] = v; + } + return ints; + } + + /** + * 转换为Long数组
+ * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static Long[] toLongArray(String split, String str) + { + if (StringUtil.isEmpty(str)) + { + return new Long[] {}; + } + String[] arr = str.split(split); + final Long[] longs = new Long[arr.length]; + for (int i = 0; i < arr.length; i++) + { + final Long v = toLong(arr[i], null); + longs[i] = v; + } + return longs; + } + + /** + * 转换为String数组
+ * + * @param str 被转换的值 + * @return 结果 + */ + public static String[] toStrArray(String str) + { + return toStrArray(",", str); + } + + /** + * 转换为String数组
+ * + * @param split 分隔符 + * @param split 被转换的值 + * @return 结果 + */ + public static String[] toStrArray(String split, String str) + { + return str.split(split); + } + + /** + * 转换为long
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Long toLong(Object value, Long defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Long) + { + return (Long) value; + } + if (value instanceof Number) + { + return ((Number) value).longValue(); + } + final String valueStr = toStr(value, null); + if (StringUtil.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + // 支持科学计数法 + return new BigDecimal(valueStr.trim()).longValue(); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为long
+ * 如果给定的值为null,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Long toLong(Object value) + { + return toLong(value, null); + } + + /** + * 转换为double
+ * 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Double toDouble(Object value, Double defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Double) + { + return (Double) value; + } + if (value instanceof Number) + { + return ((Number) value).doubleValue(); + } + final String valueStr = toStr(value, null); + if (StringUtil.isEmpty(valueStr)) + { + return defaultValue; + } + try + { + // 支持科学计数法 + return new BigDecimal(valueStr.trim()).doubleValue(); + } + catch (Exception e) + { + return defaultValue; + } + } + + /** + * 转换为double
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Double toDouble(Object value) + { + return toDouble(value, null); + } + + /** + * 转换为boolean
+ * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @param defaultValue 转换错误时的默认值 + * @return 结果 + */ + public static Boolean toBool(Object value, Boolean defaultValue) + { + if (value == null) + { + return defaultValue; + } + if (value instanceof Boolean) + { + return (Boolean) value; + } + String valueStr = toStr(value, null); + if (StringUtil.isEmpty(valueStr)) + { + return defaultValue; + } + valueStr = valueStr.trim().toLowerCase(); + switch (valueStr) + { + case "true": + case "yes": + case "ok": + case "1": + return true; + case "false": + case "no": + case "0": + return false; + default: + return defaultValue; + } + } + + /** + * 转换为boolean
+ * 如果给定的值为空,或者转换失败,返回默认值null
+ * 转换失败不会报错 + * + * @param value 被转换的值 + * @return 结果 + */ + public static Boolean toBool(Object value) + { + return toBool(value, null); + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/DictUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/DictUtils.java new file mode 100644 index 0000000..579c13e --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/DictUtils.java @@ -0,0 +1,249 @@ +package com.reallin.smt.utils; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.constants.BusinessConstants; +import com.reallin.smt.datasource.entities.SysDictData; +import com.reallin.smt.service.RedisService; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * 字典工具类 + * + * @author shenghua.ji + */ +public class DictUtils { + /** + * 分隔符 + */ + public static final String SEPARATOR = ","; + + /** + * 设置字典缓存 + * + * @param key 参数键 + * @param dictDatas 字典数据列表 + */ + public static void setDictCache(String key, List dictDatas) + { + String dictDatasStr = JSONObject.toJSONString(dictDatas); + StringUtil.getBean(RedisService.class).setCacheObject(getCacheKey(key), dictDatasStr); + } + + /** + * 获取字典缓存 + * + * @param key 参数键 + * @return dictDatas 字典数据列表 + */ + public static List getDictCache(String key) + { + List list = new ArrayList<>(); + String strCache = StringUtil.getBean(RedisService.class).getCacheObject(getCacheKey(key)); + if(StringUtil.isNotEmpty(strCache)) { + JSONArray arrayCache = JSONArray.parseArray(strCache); + if (StringUtil.isNotNull(arrayCache)) + { + for (Object item: arrayCache) { + SysDictData sysDictData = JSONObject.parseObject(item.toString(), SysDictData.class); + list.add(sysDictData); + } + return list; + } + } + return null; + } + + /** + * 根据字典类型和字典值获取字典标签 + * + * @param dictType 字典类型 + * @param dictValue 字典值 + * @return 字典标签 + */ + public static String getDictLabel(String dictType, String dictValue) + { + if (StringUtil.isEmpty(dictValue)) + { + return StringUtil.EMPTY; + } + return getDictLabel(dictType, dictValue, SEPARATOR); + } + + /** + * 根据字典类型和字典标签获取字典值 + * + * @param dictType 字典类型 + * @param dictLabel 字典标签 + * @return 字典值 + */ + public static String getDictValue(String dictType, String dictLabel) + { + if (StringUtil.isEmpty(dictLabel)) + { + return StringUtil.EMPTY; + } + return getDictValue(dictType, dictLabel, SEPARATOR); + } + + /** + * 根据字典类型和字典值获取字典标签 + * + * @param dictType 字典类型 + * @param dictValue 字典值 + * @param separator 分隔符 + * @return 字典标签 + */ + public static String getDictLabel(String dictType, String dictValue, String separator) + { + StringBuilder propertyString = new StringBuilder(); + List datas = getDictCache(dictType); + if (StringUtil.isNull(datas)) + { + return StringUtil.EMPTY; + } + if (StringUtil.containsAny(separator, dictValue)) + { + for (SysDictData dict : datas) + { + for (String value : dictValue.split(separator)) + { + if (value.equals(dict.getDictValue())) + { + propertyString.append(dict.getDictLabel()).append(separator); + break; + } + } + } + } + else + { + for (SysDictData dict : datas) + { + if (dictValue.equals(dict.getDictValue())) + { + return dict.getDictLabel(); + } + } + } + return StringUtil.stripEnd(propertyString.toString(), separator); + } + + /** + * 根据字典类型和字典标签获取字典值 + * + * @param dictType 字典类型 + * @param dictLabel 字典标签 + * @param separator 分隔符 + * @return 字典值 + */ + public static String getDictValue(String dictType, String dictLabel, String separator) + { + StringBuilder propertyString = new StringBuilder(); + List datas = getDictCache(dictType); + if (StringUtil.isNull(datas)) + { + return StringUtil.EMPTY; + } + if (StringUtil.containsAny(separator, dictLabel)) + { + for (SysDictData dict : datas) + { + for (String label : dictLabel.split(separator)) + { + if (label.equals(dict.getDictLabel())) + { + propertyString.append(dict.getDictValue()).append(separator); + break; + } + } + } + } + else + { + for (SysDictData dict : datas) + { + if (dictLabel.equals(dict.getDictLabel())) + { + return dict.getDictValue(); + } + } + } + return StringUtil.stripEnd(propertyString.toString(), separator); + } + + /** + * 根据字典类型获取字典所有值 + * + * @param dictType 字典类型 + * @return 字典值 + */ + public static String getDictValues(String dictType) + { + StringBuilder propertyString = new StringBuilder(); + List datas = getDictCache(dictType); + if (StringUtil.isNull(datas)) + { + return StringUtil.EMPTY; + } + for (SysDictData dict : datas) + { + propertyString.append(dict.getDictValue()).append(SEPARATOR); + } + return StringUtil.stripEnd(propertyString.toString(), SEPARATOR); + } + + /** + * 根据字典类型获取字典所有标签 + * + * @param dictType 字典类型 + * @return 字典值 + */ + public static String getDictLabels(String dictType) + { + StringBuilder propertyString = new StringBuilder(); + List datas = getDictCache(dictType); + if (StringUtil.isNull(datas)) + { + return StringUtil.EMPTY; + } + for (SysDictData dict : datas) + { + propertyString.append(dict.getDictLabel()).append(SEPARATOR); + } + return StringUtil.stripEnd(propertyString.toString(), SEPARATOR); + } + + /** + * 删除指定字典缓存 + * + * @param key 字典键 + */ + public static void removeDictCache(String key) + { + StringUtil.getBean(RedisService.class).deleteObject(getCacheKey(key)); + } + + /** + * 清空字典缓存 + */ + public static void clearDictCache() + { + Collection keys = StringUtil.getBean(RedisService.class).keys(BusinessConstants.SYS_DICT_KEY + "*"); + StringUtil.getBean(RedisService.class).deleteObject(keys); + } + + /** + * 设置cache key + * + * @param configKey 参数键 + * @return 缓存键key + */ + public static String getCacheKey(String configKey) + { + return BusinessConstants.SYS_DICT_KEY + configKey; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ErpInfo.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ErpInfo.java new file mode 100644 index 0000000..6d2cfe5 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ErpInfo.java @@ -0,0 +1,37 @@ +package com.reallin.smt.utils; + +/** + * + */ +public enum ErpInfo { + //通过构造传递参数 + OK(200, "成功"), + BAD_REQUEST(400, "请求错误或参数错误"), + UNAUTHORIZED(401, "未认证用户"), + INVALID_VERIFY_CODE(461, "错误的验证码"), + ERROR(500, "服务内部错误"), + WARING_MSG(201, "提醒信息"), + REDIRECT(301, "session失效,重定向"), + FORWARD_REDIRECT(302, "转发请求session失效"), + FORWARD_FAILED(303, "转发请求失败!"), + TEST_USER(-1, "演示用户禁止操作"); + + public final int code; + public final String name; + + public int getCode() { + return code; + } + + public String getName() { + return name; + } + + /** + * 定义枚举构造函数 + */ + ErpInfo(int code, String name) { + this.code = code; + this.name = name; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ExcelUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ExcelUtils.java new file mode 100644 index 0000000..2fc827b --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ExcelUtils.java @@ -0,0 +1,246 @@ +package com.reallin.smt.utils; + +import java.io.*; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.util.*; + +import jxl.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StringUtils; +import jxl.format.*; +import jxl.write.Label; +import jxl.write.WritableCellFormat; +import jxl.write.WritableFont; +import jxl.write.WritableSheet; +import jxl.write.WritableWorkbook; + +import javax.servlet.http.HttpServletResponse; + +@Slf4j +public class ExcelUtils { + + public static InputStream getPathByFileName(String template, String tmpFileName) { + File tmpFile = new File(template, tmpFileName); + InputStream path = null; + //判断文件或文件夹是否存在 + if (tmpFile.exists()) { + try { + path = new FileInputStream(tmpFile); + } catch (FileNotFoundException e) { + log.error("", e); + } + } + return path; + } + + /** + * 导出excel,带多sheet + * + * @param wtwb + * @param tip + * @param names + * @param title + * @param index + * @param objects + * @return + * @throws Exception + */ + public static void exportObjectsManySheet(WritableWorkbook wtwb, String tip, + String[] names, String title, int index, List objects) throws Exception { + WritableSheet sheet = wtwb.createSheet(title, index); + sheet.getSettings().setDefaultColumnWidth(12); + + // 标题的格式-红色 + WritableFont redWF = new WritableFont(WritableFont.ARIAL, 12, + WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, + Colour.RED); + WritableCellFormat redWFFC = new WritableCellFormat(redWF); + redWFFC.setVerticalAlignment(VerticalAlignment.CENTRE); + redWFFC.setBorder(Border.ALL, BorderLineStyle.THIN); + + // 标题的格式-黑色 + WritableFont blackWF = new WritableFont(WritableFont.ARIAL, 12, + WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, + Colour.BLACK); + WritableCellFormat blackWFFC = new WritableCellFormat(blackWF); + blackWFFC.setVerticalAlignment(VerticalAlignment.CENTRE); + blackWFFC.setBorder(Border.ALL, BorderLineStyle.THIN); + + // 设置字体以及单元格格式 + WritableFont wfont = new WritableFont(WritableFont.createFont("楷书"), 12); + WritableCellFormat format = new WritableCellFormat(wfont); + format.setAlignment(Alignment.LEFT); + format.setVerticalAlignment(VerticalAlignment.TOP); + format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); + + // 第一行写入提示 + if(com.reallin.smt.utils.StringUtil.isNotEmpty(tip) && tip.contains("*")) { + sheet.addCell(new Label(0, 0, tip, redWFFC)); + } else { + sheet.addCell(new Label(0, 0, tip, blackWFFC)); + } + + // 第二行写入标题 + for (int i = 0; i < names.length; i++) { + if(StringUtil.isNotEmpty(names[i]) && names[i].contains("*")) { + sheet.addCell(new Label(i, 1, names[i], redWFFC)); + } else { + sheet.addCell(new Label(i, 1, names[i], blackWFFC)); + } + } + + // 其余行依次写入数据 + int rowNum = 2; + for (int j = 0; j < objects.size(); j++) { + String[] obj = objects.get(j); + for (int h = 0; h < obj.length; h++) { + sheet.addCell(new Label(h, rowNum, obj[h], format)); + } + rowNum = rowNum + 1; + } + } + + /** + * 导出excel,带单个sheet + * + * @param fileName + * @param names + * @param title + * @param objects + * @return + * @throws Exception + */ + + public static File exportObjectsOneSheet(String path, String fileName, String tip, + String[] names, String title, List objects) throws Exception { + FileUtils.makedir(path); + File excelFile = new File(path + File.separator + fileName); + WritableWorkbook wtwb = Workbook.createWorkbook(excelFile); + WritableSheet sheet = wtwb.createSheet(title, 0); + sheet.getSettings().setDefaultColumnWidth(12); + + // 标题的格式-红色 + WritableFont redWF = new WritableFont(WritableFont.ARIAL, 12, + WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.RED); + WritableCellFormat redWFFC = new WritableCellFormat(redWF); + redWFFC.setVerticalAlignment(VerticalAlignment.CENTRE); + redWFFC.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); + + // 标题的格式-黑色 + WritableFont blackWF = new WritableFont(WritableFont.ARIAL, 12, + WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK); + WritableCellFormat blackWFFC = new WritableCellFormat(blackWF); + blackWFFC.setVerticalAlignment(VerticalAlignment.CENTRE); + blackWFFC.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); + + // 设置字体以及单元格格式 + WritableFont wfont = new WritableFont(WritableFont.createFont("楷书"), 12); + WritableCellFormat format = new WritableCellFormat(wfont); + format.setAlignment(Alignment.LEFT); + format.setVerticalAlignment(VerticalAlignment.TOP); + format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); + + // 第一行写入提示 + if(StringUtil.isNotEmpty(tip) && tip.contains("*")) { + sheet.addCell(new Label(0, 0, tip, redWFFC)); + } else { + sheet.addCell(new Label(0, 0, tip, blackWFFC)); + } + + // 第二行写入标题 + for (int i = 0; i < names.length; i++) { + if(StringUtil.isNotEmpty(names[i]) && names[i].contains("*")) { + sheet.addCell(new Label(i, 1, names[i], redWFFC)); + } else { + sheet.addCell(new Label(i, 1, names[i], blackWFFC)); + } + } + + // 其余行依次写入数据 + int rowNum = 2; + for (int j = 0; j < objects.size(); j++) { + Object[] obj = objects.get(j); + for (int h = 0; h < obj.length; h++) { + if(obj[h] instanceof String) { + sheet.addCell(new Label(h, rowNum, obj[h].toString(), format)); + } else if(obj[h] instanceof BigDecimal || obj[h] instanceof Double || obj[h] instanceof Integer || obj[h] instanceof Long) { + sheet.addCell(new jxl.write.Number(h, rowNum, Double.parseDouble(obj[h].toString()), format)); + } else { + String cont = obj[h]!=null?obj[h].toString():""; + sheet.addCell(new Label(h, rowNum, cont, format)); + } + } + rowNum = rowNum + 1; + } + wtwb.write(); + wtwb.close(); + return excelFile; + } + + public static String getContent(Sheet src, int rowNum, int colNum) { + if(colNum < src.getRow(rowNum).length) { + return src.getRow(rowNum)[colNum].getContents().trim(); + } else { + return null; + } + } + + public static String getContentNumber(Sheet src, int rowNum, int colNum) { + if(colNum < src.getRow(rowNum).length) { + Cell cell = src.getCell(colNum, rowNum); + if(cell.getType() == CellType.NUMBER) { + NumberCell numCell = (NumberCell)cell; + double value = numCell.getValue(); // 获取完整精度的数值 + DecimalFormat df = new DecimalFormat("#.######"); // 设置足够多的小数位 + return df.format(value); + } else { + return cell.getContents().trim(); // 获取原始字符串内容 + } + } else { + return null; + } + } + + /** + * 获取真实的行数,剔除掉空白行 + * @param src + * @return + */ + public static int getRightRows(Sheet src) { + int rsRows = src.getRows(); //行数 + int rsCols = src.getColumns(); //列数 + int nullCellNum; + int rightRows = rsRows; + for (int i = 1; i < rsRows; i++) { //统计行中为空的单元格数 + nullCellNum = 0; + for (int j = 0; j < rsCols; j++) { + String val = src.getCell(j, i).getContents().trim(); + if (StringUtils.isEmpty(val)) { + nullCellNum++; + } + } + if (nullCellNum >= rsCols) { //如果nullCellNum大于或等于总的列数 + rightRows--; //行数减一 + } + } + return rightRows; + } + + public static void downloadExcel(File excelFile, String fileName, HttpServletResponse response) throws Exception{ + response.setContentType("application/octet-stream"); + fileName = new String(fileName.getBytes("gbk"),"ISO8859_1"); + response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + ".xls" + "\""); + FileInputStream fis = new FileInputStream(excelFile); + OutputStream out = response.getOutputStream(); + + int SIZE = 1024 * 1024; + byte[] bytes = new byte[SIZE]; + int LENGTH = -1; + while((LENGTH = fis.read(bytes)) != -1){ + out.write(bytes,0,LENGTH); + } + out.flush(); + fis.close(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ExceptionCodeConstants.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ExceptionCodeConstants.java new file mode 100644 index 0000000..af6fab8 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ExceptionCodeConstants.java @@ -0,0 +1,43 @@ +package com.reallin.smt.utils; + +public interface ExceptionCodeConstants { + /** + * 用户错误码定义 + */ + public class UserExceptionCode { + /** + * 用户不存在 + */ + public static final int USER_NOT_EXIST = 1; + + /** + * 用户密码错误 + */ + public static final int USER_PASSWORD_ERROR = 2; + + /** + * 用户被加入黑名单 + */ + public static final int BLACK_USER = 3; + + /** + * 可以登录 + */ + public static final int USER_CONDITION_FIT = 4; + + /** + * 访问数据库异常 + */ + public static final int USER_ACCESS_EXCEPTION = 5; + + /** + * 租户被加入黑名单 + */ + public static final int BLACK_TENANT = 6; + + /** + * 租户已经过期 + */ + public static final int EXPIRE_TENANT = 7; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ExtJsonUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ExtJsonUtils.java new file mode 100644 index 0000000..e435346 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ExtJsonUtils.java @@ -0,0 +1,141 @@ +package com.reallin.smt.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.ParserConfig; +import com.alibaba.fastjson.parser.deserializer.ExtraProcessor; +import com.alibaba.fastjson.parser.deserializer.FieldDeserializer; +import com.alibaba.fastjson.serializer.*; + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +public class ExtJsonUtils { + private static class NPFloatCodec extends FloatCodec { + public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType) throws IOException { + SerializeWriter out = serializer.getWriter(); + + if (object == null) { + if (serializer.isEnabled(SerializerFeature.WriteNullNumberAsZero)) { + out.write('0'); + } else { + out.writeNull(); + } + return; + } + + float floatValue = (Float) object; + + if (Float.isNaN(floatValue)) { + out.writeNull(); + } else if (Float.isInfinite(floatValue)) { + out.writeNull(); + } else { + String floatText = Float.toString(floatValue); + out.write(floatText); + + if (serializer.isEnabled(SerializerFeature.WriteClassName)) { + out.write('F'); + } + } + } + } + + private static class NPDoubleSerializer extends DoubleSerializer { + public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType) throws IOException { + SerializeWriter out = serializer.getWriter(); + + if (object == null) { + if (!serializer.isEnabled(SerializerFeature.WriteNullNumberAsZero)) { + out.writeNull(); + } else { + out.write('0'); + } + return; + } + + double doubleValue = (Double) object; + + if (Double.isNaN(doubleValue)) { + out.writeNull(); + } else if (Double.isInfinite(doubleValue)) { + out.writeNull(); + } else { + String doubleText; + doubleText = Double.toString(doubleValue); + out.append(doubleText); + + if (serializer.isEnabled(SerializerFeature.WriteClassName)) { + out.write('D'); + } + } + } + } + + private static final String EXT_NAME = "ext"; + + static class ExtFilter extends AfterFilter implements PropertyFilter { + static { + SerializeConfig.getGlobalInstance().put(Float.class, new NPFloatCodec()); + SerializeConfig.getGlobalInstance().put(float.class, new NPFloatCodec()); + SerializeConfig.getGlobalInstance().put(Double.class, new NPDoubleSerializer()); + SerializeConfig.getGlobalInstance().put(double.class, new NPDoubleSerializer()); + } + + private Map map = new HashMap<>(); + + private Map> ignoredKey = new HashMap<>(); + + @Override + public boolean apply(Object object, String name, Object value) { + if (name.equals(EXT_NAME) && value instanceof String) { + map.put(object, JSON.parseObject((String) value)); + return false; + } + if (!map.containsKey(object)) { + ignoredKey.put(object, new HashSet()); + } + ignoredKey.get(object).add(name); +// if (value instanceof Float || value instanceof Double) { +// if (!floatMap.containsKey(object)) { +// floatMap.put(object, new HashMap()); +// } +// floatMap.get(object).put(name, value); +// return false; +// } + return true; + } + + @Override + public void writeAfter(Object object) { + if (map.containsKey(object)) { + Set ignoredKeys; + if (ignoredKey.containsKey(object)) { + ignoredKeys = ignoredKey.get(object); + } else { + ignoredKeys = new HashSet<>(); + } + for (Map.Entry entry : map.get(object).entrySet()) { + if (!ignoredKeys.contains(entry.getKey())) { + writeKeyValue(entry.getKey(), entry.getValue()); + } + } + } + } + } + + public static String toJSONString(Object object) { + return JSON.toJSONString(object, new ExtFilter()); + } + + public interface ExtExtractor { + String getExt(Object bean); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/FileUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/FileUtils.java new file mode 100644 index 0000000..8a6bfa2 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/FileUtils.java @@ -0,0 +1,320 @@ +package com.reallin.smt.utils; + +import java.io.*; +import java.util.*; + +/** + * + * 文件处理工具类 + * + */ +public class FileUtils { + + /** + * 功 能: 创建文件夹 + * + * @param path + * 参 数:要创建的文件夹名称 + * @return 返回值: 如果成功true;否则false 如:FileUtils.mkdir("/usr/apps/upload/"); + */ + public static boolean makedir(String path) { + File file = new File(path); + if (!file.exists()) + return file.mkdirs(); + else + return true; + } + + /** + * 保存文件 + * + * @param stream + * @param path + * 存放路径 + * @param filename + * 文件名 + * @throws IOException + */ + public static void SaveFileFromInputStream(InputStream stream, String path, String filename) + throws IOException { + File file = new File(path); + boolean flag=true; + if(!file.exists()){ + flag=file.mkdirs(); + } + if(flag){ + FileOutputStream fs = new FileOutputStream(new File(path+filename)); + byte[] buffer = new byte[1024 * 1024]; + int byteread = 0; + while ((byteread = stream.read(buffer)) != -1) { + fs.write(buffer, 0, byteread); + fs.flush(); + } + fs.close(); + stream.close(); + } + } + + + /** + * 列出某个目录下的所有文件,子目录不列出 + * @param folderPath:文件夹路径 + * @return + */ + public static List listFile(String folderPath){ + List fileList = new ArrayList(); //FileViewer.getListFiles(destPath, null, false); + File f = new File(folderPath); + File[] t = f.listFiles(); + for(int i = 0; i < t.length; i++){ + fileList.add(t[i].getAbsolutePath()); + } + return fileList; + } + + + /** + * 判断文件是否存在 + * + * @param fileName + * @return + */ + public static boolean exists(String fileName) { + File file = new File(fileName); + if (file.exists()) { + return true; + } else { + return false; + } + } + + /** + * 获取文件扩展名 + * + * @param fileName + * @return + * */ + public static String getFileExtendName(String fileName) { + if (fileName == null) { + return ""; + } else { + return fileName.substring(fileName.lastIndexOf(".") + 1, fileName + .length()); + } + } + + /** + * 创建一个新文件,如果存在则报错 + * + * @param filePath + * @param fileName + * @return + */ + public static void createFile(String filePath, String fileName) + throws RuntimeException { + String file = null; + if (filePath == null) { + file = fileName; + } else { + file = filePath + File.separator + fileName; + } + createFile(file); + } + + /** + * 创建一个新文件(含路径),如果存在则报错 + * + * @param fileName + * 含有路径的文件名 + * @return + */ + public static void createFile(String fileName) throws RuntimeException { + File f = new File(fileName); + if (f.exists()) { + throw new RuntimeException("FILE_EXIST_ERROR"); + } else { + try { + File fileFolder = f.getParentFile(); + if (!fileFolder.exists()) + fileFolder.mkdirs(); + f.createNewFile(); + } catch (IOException ie) { + System.out.println("文件" + fileName + "创建失败:" + ie.getMessage()); + throw new RuntimeException("FILE_CREATE_ERROR"); + } + } + } + + + /** + * 创建目录,如果存在则不创建 + * + * @param path + * @return 返回结果null则创建成功,否则返回的是错误信息 + * @return + */ + public static String createDir(String path, boolean isCreateSubPah) { + String msg = null; + File dir = new File(path); + + if (dir == null) { + msg = "不能创建空目录"; + return msg; + } + if (dir.isFile()) { + msg = "已有同名文件存在"; + return msg; + } + if (!dir.exists()) { + if (isCreateSubPah && !dir.mkdirs()) { + msg = "目录创建失败,原因不明"; + } else if (!dir.mkdir()) { + msg = "目录创建失败,原因不明"; + } + } + return msg; + } + + /** + * 删除指定目录或文件。 如果要删除是目录,同时删除子目录下所有的文件 + * + * @file:File 目录 + * */ + public static void delFileOrFolder(String fileName) { + if (!exists(fileName)) + return; + File file = new File(fileName); + delFileOrFolder(file); + } + + /** + * 删除指定目录或文件。 如果要删除是目录,同时删除子目录下所有的文件 + * + * @file:File 目录 + * */ + public static void delFileOrFolder(File file) { + if (!file.exists()) + return; + if (file.isFile()) { + file.delete(); + } else { + File[] sub = file.listFiles(); + if (sub == null || sub.length <= 0) { + file.delete(); + } else { + for (int i = 0; i < sub.length; i++) { + delFileOrFolder(sub[i]); + } + file.delete(); + } + } + } + + /** + * 从Properties格式配置文件中获取所有参数并保存到HashMap中。 + * 配置中的key值即map表中的key值,如果配置文件保存时用的中文,则返回结果也会转成中文。 + * + * @param file + * @return + * @throws IOException + */ + @SuppressWarnings("unchecked") + public static HashMap readPropertyFile(String file, String charsetName) throws IOException { + if (charsetName==null || charsetName.trim().length()==0){ + charsetName="gbk"; + } + HashMap map = new HashMap(); + InputStream is =null; + if(file.startsWith("file:")) + is=new FileInputStream(new File(file.substring(5))); + else + is=FileUtils.class.getClassLoader().getResourceAsStream(file); + Properties properties = new Properties(); + properties.load(is); + Enumeration en = properties.propertyNames(); + while (en.hasMoreElements()) { + String key = (String) en.nextElement(); + String code = new String(properties.getProperty(key).getBytes( + "ISO-8859-1"), charsetName); + map.put(key, code); + } + return map; + } + /** + * + * @param path + * 文件路径 + * @param suffix + * 后缀名 + * @param isdepth + * 是否遍历子目录 + * @return + */ + @SuppressWarnings("unchecked") + public static List getListFiles(String path, String suffix, boolean isdepth) { + File file = new File(path); + return FileUtils.listFile(file, suffix, isdepth); + } + + /** + * @param f + * @param suffix:后缀名 + * @param isdepth:是否遍历子目录 + * @return + */ + @SuppressWarnings("unchecked") + public static List listFile(File f, String suffix, boolean isdepth) { + // 是目录,同时需要遍历子目录 + List fileList = new ArrayList(); + if (f.isDirectory() && isdepth == true) { + File[] t = f.listFiles(); + for (int i = 0; i < t.length; i++) { + listFile(t[i], suffix, isdepth); + } + } else { + String filePath = f.getAbsolutePath(); + + if (suffix != null) { + int begIndex = filePath.lastIndexOf(".");// 最后一个.(即后缀名前面的.)的索引 + String tempsuffix = ""; + + if (begIndex != -1)// 防止是文件但却没有后缀名结束的文件 + { + tempsuffix = filePath.substring(begIndex + 1, filePath + .length()); + } + + if (tempsuffix.equals(suffix)) { + fileList.add(filePath); + } + } else { + // 后缀名为null则为所有文件 + fileList.add(filePath); + } + + } + + return fileList; + } + + /** + * 判断文件名是否带盘符,重新处理 + * @param fileName + * @return + */ + public static String getFileName(String fileName){ + //判断是否带有盘符信息 + // Check for Unix-style path + int unixSep = fileName.lastIndexOf('/'); + // Check for Windows-style path + int winSep = fileName.lastIndexOf('\\'); + // Cut off at latest possible point + int pos = (winSep > unixSep ? winSep : unixSep); + if (pos != -1) { + // Any sort of path separator found... + fileName = fileName.substring(pos + 1); + } + //替换上传文件名字的特殊字符 + fileName = fileName.replace("=","").replace(",","").replace("&",""); + return fileName; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/HttpClient.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/HttpClient.java new file mode 100644 index 0000000..892e05c --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/HttpClient.java @@ -0,0 +1,90 @@ +package com.reallin.smt.utils; + +import com.alibaba.fastjson.JSONObject; +import org.apache.http.HttpEntity; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.entity.EntityBuilder; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.ContentType; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +import static org.apache.http.HttpStatus.SC_OK; + +public final class HttpClient { + private static Logger logger = LoggerFactory.getLogger(HttpClient.class); + + private static final RequestConfig REQUEST_CONFIG = RequestConfig.custom().setSocketTimeout(15000).setConnectTimeout(10000).build(); + + /** + * 采用Get方式发送请求,获取响应数据 + * @param url + * @return + */ + public static JSONObject httpGet(String url){ + CloseableHttpClient client = HttpClientBuilder.create().build(); + HttpGet httpGet = new HttpGet(url); + httpGet.setConfig(REQUEST_CONFIG); + try { + CloseableHttpResponse chr = client.execute(httpGet); + int statusCode = chr.getStatusLine().getStatusCode(); + if (SC_OK != statusCode) { + throw new RuntimeException(String.format("%s查询出现异常", url)); + } + String entity = EntityUtils.toString(chr.getEntity(), StandardCharsets.UTF_8); + JSONObject object = JSONObject.parseObject(entity); + return object; + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RuntimeException(String.format("%s", url) + "查询出现异常"); + } finally { + try { + client.close(); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + } + } + + /** + * 采用Post方式发送请求,获取响应数据 + * + * @param url url地址 + * @param param 参数值键值对的字符串 + * @return + */ + public static String httpPost(String url, String param) { + CloseableHttpClient client = HttpClientBuilder.create().build(); + try { + HttpPost post = new HttpPost(url); + EntityBuilder builder = EntityBuilder.create(); + builder.setContentType(ContentType.APPLICATION_JSON); + builder.setText(param); + post.setEntity(builder.build()); + + CloseableHttpResponse response = client.execute(post); + int statusCode = response.getStatusLine().getStatusCode(); + + HttpEntity entity = response.getEntity(); + String data = EntityUtils.toString(entity, StandardCharsets.UTF_8); + logger.info("状态:"+statusCode+",数据:"+data); + return data; + } catch(Exception e){ + throw new RuntimeException("HTTP POST 请求失败", e); + } finally { + try{ + client.close(); + } catch (IOException ex) { + logger.warn("关闭 HTTP 客户端失败", ex); + } + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/JsonUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/JsonUtils.java new file mode 100644 index 0000000..ea31397 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/JsonUtils.java @@ -0,0 +1,22 @@ +package com.reallin.smt.utils; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +/** + * Created by jishenghua 2018-5-11 09:48:08 + * + * @author jishenghua + */ +public class JsonUtils { + + public static JSONObject ok(){ + JSONObject obj = new JSONObject(); + JSONObject tmp = new JSONObject(); + tmp.put("message", "成功"); + obj.put("code", 200); + obj.put("data", tmp); + return obj; + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/LegacyInventoryResponse.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/LegacyInventoryResponse.java new file mode 100644 index 0000000..2e48469 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/LegacyInventoryResponse.java @@ -0,0 +1,36 @@ +package com.reallin.smt.utils; + +/** + * 原 n2tpm 盘点接口的响应包装。 + */ +public class LegacyInventoryResponse { + private final String code; + private final String msg; + private final Object data; + + private LegacyInventoryResponse(String code, String msg, Object data) { + this.code = code; + this.msg = msg; + this.data = data; + } + + public static LegacyInventoryResponse success(Object data) { + return new LegacyInventoryResponse("200", "操作成功", data); + } + + public static LegacyInventoryResponse fail(String message) { + return new LegacyInventoryResponse("500", message, null); + } + + public String getCode() { + return code; + } + + public String getMsg() { + return msg; + } + + public Object getData() { + return data; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/OrderUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/OrderUtils.java new file mode 100644 index 0000000..581de55 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/OrderUtils.java @@ -0,0 +1,69 @@ +package com.reallin.smt.utils; + +/** + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +public class OrderUtils { + + /** + * 将指定字段排序 + * + * @param orders 格式 属性名,排序方式 例如( name,asc或ip,desc) + * @return 排序字符串 例如:(name asc 或 ip desc) + */ + public static String getOrderString(String orders) { + if (StringUtil.isNotEmpty(orders)) { + String[] splits = orders.split(Constants.SPLIT); + if (splits.length == 2) { + String column = ColumnPropertyUtil.propertyToColumn(splits[0]); + if (column.equals("audit_status")) { + // TODO: 2015/12/24 这么处理不好,得相伴办法调整 + return "IF(`audit_status`=3,-1,`audit_status`) " + splits[1]; + } else if (column.equals("create_time") || column.equals("modify_time")) { + // TODO: 2015/12/24 这么处理不好,得相伴办法调整 + return column + " " + splits[1]; + } else { + return "convert(" + column + " using gbk) " + splits[1]; + } + } + } + return ""; + } + + public static String getJoinTablesOrderString(String orders, String tableName) { + if (StringUtil.isNotEmpty(orders)) { + String[] splits = orders.split(Constants.SPLIT); + if (splits.length == 2) { + return "convert(" + tableName + "." + ColumnPropertyUtil.propertyToColumn(splits[0]) + " using gbk) " + splits[1]; + } + } + return ""; + } + + + /** + * 将指定字段排序 + * inet_aton:mysql将IP 转成 long类别函数 + * + * @param orders 格式 属性名,排序方式 例如( name,asc或ip,desc) + * @param ipPropertyName 如果需要按IP属性排序,需要将属性名传入(可不传) + * @return 排序字符串 例如:(name asc 或 ip desc) + */ + public static String getOrderString(String orders, String... ipPropertyName) { + if (StringUtil.isNotEmpty(orders)) { + String[] splits = orders.split(Constants.SPLIT); + if (splits.length == 2) { + String column = ColumnPropertyUtil.propertyToColumn(splits[0]); + if (ipPropertyName != null && ipPropertyName.length > 0) { + for (String ip : ipPropertyName) { + if (ip.equals(column)) { + return "inet_aton(" + column + ") " + splits[1]; + } + } + } + return column + " " + splits[1]; + } + } + return ""; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/PageQueryInfo.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/PageQueryInfo.java new file mode 100644 index 0000000..363fbe1 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/PageQueryInfo.java @@ -0,0 +1,30 @@ +package com.reallin.smt.utils; + +import java.util.List; + +/** + * 分页查询结果 + * + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +public class PageQueryInfo { + + private Long total; + private List rows; + + public Long getTotal() { + return total; + } + + public void setTotal(Long total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/PageUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/PageUtils.java new file mode 100644 index 0000000..b40f944 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/PageUtils.java @@ -0,0 +1,34 @@ +package com.reallin.smt.utils; + +import com.github.pagehelper.PageHelper; +import com.reallin.smt.base.PageDomain; +import com.reallin.smt.base.TableSupport; + +/** + * 分页工具类 + * + * @author ji-sheng-hua + */ +public class PageUtils extends PageHelper +{ + /** + * 设置请求分页数据 + */ + public static void startPage() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer currentPage = pageDomain.getCurrentPage(); + Integer pageSize = pageDomain.getPageSize(); + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + Boolean reasonable = pageDomain.getReasonable(); + PageHelper.startPage(currentPage, pageSize, orderBy).setReasonable(reasonable); + } + + /** + * 清理分页的线程变量 + */ + public static void clearPage() + { + PageHelper.clearPage(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ParamUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ParamUtils.java new file mode 100644 index 0000000..1de8d99 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ParamUtils.java @@ -0,0 +1,57 @@ +package com.reallin.smt.utils; + +import javax.servlet.http.HttpServletRequest; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; + +/** + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +public class ParamUtils { + public static String getPageOffset(Integer currentPage, Integer pageSize) { + if (currentPage != null && pageSize != null) { + int offset = (currentPage - 1) * pageSize; + if (offset <= 0) { + return "0"; + } else { + return new StringBuffer().append(offset).toString(); + } + } + return null; + } + public static Integer getNumberPageOffset(Integer currentPage, Integer pageSize) { + if (currentPage != null && pageSize != null) { + int offset = (currentPage - 1) * pageSize; + if (offset <= 0) { + return 0; + } else { + return offset; + } + } + return null; + } + public static Integer getNumberPageRows(Integer currentPage, Integer pageSize) { + if (currentPage != null && pageSize != null) { + int rows = (currentPage) * pageSize; + if (rows <= 0) { + return 0; + } else { + return rows; + } + } + return null; + } + + public static HashMap requestToMap(HttpServletRequest request) { + + HashMap parameterMap = new HashMap(); + Enumeration names = request.getParameterNames(); + if (names != null) { + for (String name : Collections.list(names)) { + parameterMap.put(name, request.getParameter(name)); + } + } + return parameterMap; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/PinYinUtil.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/PinYinUtil.java new file mode 100644 index 0000000..321fcc1 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/PinYinUtil.java @@ -0,0 +1,52 @@ +package com.reallin.smt.utils; + +import lombok.extern.slf4j.Slf4j; +import net.sourceforge.pinyin4j.PinyinHelper; +import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; +import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; +import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; +import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; + +/** + * @Author jishenghua + * @Date 2024-01-08 23:03 + */ +@Slf4j +public class PinYinUtil { + + public static String getFirstLettersLo(String ChineseLanguage) { + return getFirstLetters(ChineseLanguage, HanyuPinyinCaseType.LOWERCASE); + } + + public static String getFirstLetters(String chineseLanguage, HanyuPinyinCaseType caseType) { + char[] cl_chars = chineseLanguage.trim().toCharArray(); + StringBuilder pinyin = new StringBuilder(); + HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); + // 输出拼音全部大写 + defaultFormat.setCaseType(caseType); + // 不带声调 + defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); + try { + for (char cl_char : cl_chars) { + String str = String.valueOf(cl_char); + if (str.matches("[\u4e00-\u9fa5]+")) { + // 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 + pinyin.append(PinyinHelper.toHanyuPinyinStringArray(cl_char, defaultFormat)[0].substring(0, 1)); + } else if (str.matches("[0-9]+")) { + // 如果字符是数字,取数字 + pinyin.append(cl_char); + } else if (str.matches("[a-zA-Z]+")) { + // 如果字符是字母,取字母 + pinyin.append(cl_char); + } else { + // 否则不转换 + //如果是标点符号的话,带着 + pinyin.append(cl_char); + } + } + } catch (BadHanyuPinyinOutputFormatCombination e) { + log.error(chineseLanguage + "转拼音失败!", e); + } + return pinyin.toString(); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/QueryUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/QueryUtils.java new file mode 100644 index 0000000..093b99d --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/QueryUtils.java @@ -0,0 +1,142 @@ +package com.reallin.smt.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.Map; + +import static com.reallin.smt.utils.Constants.CURRENT_PAGE; +import static com.reallin.smt.utils.Constants.PAGE_SIZE; + +/** + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +public class QueryUtils { + public static String filterSqlSpecialChar(String search) { + return search != null ? search + .replaceAll("_", "\\\\_") + .replaceAll("!", "\\\\!") + .replaceAll("\\[", "\\\\[") + .replaceAll("\\]", "\\\\]") + .replaceAll("\\^", "\\\\^") : null; + } + + public static T list2One(List list, String label) { + Assert.notNull(label); + Assert.notEmpty(list, label + "对应的记录不存在"); + Assert.isTrue(list.size() == 1, label + "对应的记录不止一个"); + return list.get(0); + } + + public static T list2One(List list, String label, T defaultValue) { + Assert.notNull(list); + Assert.notNull(label); + if (list.isEmpty()) + return defaultValue; + else { + Assert.isTrue(list.size() == 1, label + "对应的记录不止一个"); + return list.get(0); + } + } + + public static List search(Map map) { + List search = null; + + String str = map.get(Constants.SEARCH); + if (StringUtil.isNotEmpty(str)) { + search = StringUtil.searchCondition(str); + } + return search; + } + + public static int rows(Map map) { + return Integer.parseInt(map.get(PAGE_SIZE)); + } + + public static int offset(Map map) { + return (currentPage(map) - 1) * pageSize(map); + } + + public static int pageSize(Map map) { + return Integer.parseInt(map.get(PAGE_SIZE)); + } + + public static int currentPage(Map map) { + int val = Integer.parseInt(map.get(CURRENT_PAGE)); + if (val < 1) + throw new RuntimeException("当前页数目:" + val + " 必须大于0"); + return val; + } + + public static String order(Map map) { + String orderString = OrderUtils.getOrderString(map.get(Constants.ORDER)); + return orderString.trim().isEmpty() ? null : orderString; + } + + public static Integer level(Map map) { + String levelString = map.get(Constants.LEVEL); + return StringUtil.isEmpty(levelString) ? null : Integer.parseInt(levelString); + } + + public static boolean isRecursion(Map map) { + String isRecursion = map.get(Constants.IS_RECURSION); + return StringUtil.isNotEmpty(isRecursion) && Constants.IS_RECURSION_VALUE.equals(isRecursion); + } + + public static int type(Map map) { + return Integer.parseInt(map.get(Constants.TYPE)); + } + + public static String filter(Map map) { + if (map.containsKey(Constants.FILTER)) { + JSONArray array = JSON.parseArray(map.get(Constants.FILTER)); + if (array.isEmpty()) { + return null; + } else { + boolean first = true; + StringBuilder builder = new StringBuilder(); + for (int idx = 0; idx < array.size(); ++idx) { + JSONObject object = array.getJSONObject(idx); + if (object.get("value") instanceof JSONArray) { + + JSONArray value = object.getJSONArray("value"); + + if (!value.isEmpty()) { + if (!first) { + builder.append(" AND "); + } else { + first = false; + } + + String key = object.getString("name"); + + builder.append("("); + + builder.append("`").append(key).append("`"); + + builder.append(" IN "); + + builder.append("("); + + for (int vidx = 0; vidx < value.size(); ++vidx) { + if (vidx != 0) { + builder.append(","); + } + builder.append(value.getString(vidx)); + } + builder.append(")"); + + builder.append(")"); + } + } + } + return builder.toString(); + } + } else { + return null; + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/RandImageUtil.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/RandImageUtil.java new file mode 100644 index 0000000..4242608 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/RandImageUtil.java @@ -0,0 +1,140 @@ +package com.reallin.smt.utils; + +import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletResponse; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Base64; +import java.util.Random; + +/** + * 登录验证码工具类 + */ +public class RandImageUtil { + + public static final String key = "JEECG_LOGIN_KEY"; + + /** + * 定义图形大小 + */ + private static final int width = 105; + /** + * 定义图形大小 + */ + private static final int height = 35; + + /** + * 定义干扰线数量 + */ + private static final int count = 200; + + /** + * 干扰线的长度=1.414*lineWidth + */ + private static final int lineWidth = 2; + + /** + * 图片格式 + */ + private static final String IMG_FORMAT = "JPEG"; + + /** + * base64 图片前缀 + */ + private static final String BASE64_PRE = "data:image/jpg;base64,"; + + /** + * 直接通过response 返回图片 + * @param response + * @param resultCode + * @throws IOException + */ + public static void generate(HttpServletResponse response, String resultCode) throws IOException { + BufferedImage image = getImageBuffer(resultCode); + // 输出图象到页面 + ImageIO.write(image, IMG_FORMAT, response.getOutputStream()); + } + + /** + * 生成base64字符串 + * @param resultCode + * @return + * @throws IOException + */ + public static String generate(String resultCode) throws IOException { + BufferedImage image = getImageBuffer(resultCode); + + ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); + //写入流中 + ImageIO.write(image, IMG_FORMAT, byteStream); + //转换成字节 + byte[] bytes = byteStream.toByteArray(); + //转换成base64串 + String base64 = Base64.getEncoder().encodeToString(bytes).trim(); + base64 = base64.replaceAll("\n", "").replaceAll("\r", "");//删除 \r\n + + //写到指定位置 + //ImageIO.write(bufferedImage, "png", new File("")); + + return BASE64_PRE+base64; + } + + private static BufferedImage getImageBuffer(String resultCode){ + // 在内存中创建图象 + final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + // 获取图形上下文 + final Graphics2D graphics = (Graphics2D) image.getGraphics(); + // 设定背景颜色 + graphics.setColor(Color.WHITE); // ---1 + graphics.fillRect(0, 0, width, height); + // 设定边框颜色 +// graphics.setColor(getRandColor(100, 200)); // ---2 + graphics.drawRect(0, 0, width - 1, height - 1); + + final Random random = new Random(); + // 随机产生干扰线,使图象中的认证码不易被其它程序探测到 + for (int i = 0; i < count; i++) { + graphics.setColor(getRandColor(150, 200)); // ---3 + + final int x = random.nextInt(width - lineWidth - 1) + 1; // 保证画在边框之内 + final int y = random.nextInt(height - lineWidth - 1) + 1; + final int xl = random.nextInt(lineWidth); + final int yl = random.nextInt(lineWidth); + graphics.drawLine(x, y, x + xl, y + yl); + } + // 取随机产生的认证码 + for (int i = 0; i < resultCode.length(); i++) { + // 将认证码显示到图象中,调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成 + // graphics.setColor(new Color(20 + random.nextInt(130), 20 + random + // .nextInt(130), 20 + random.nextInt(130))); + // 设置字体颜色 + graphics.setColor(Color.BLACK); + // 设置字体样式 +// graphics.setFont(new Font("Arial Black", Font.ITALIC, 18)); + graphics.setFont(new Font("Times New Roman", Font.BOLD, 24)); + // 设置字符,字符间距,上边距 + graphics.drawString(String.valueOf(resultCode.charAt(i)), (23 * i) + 8, 26); + } + // 图象生效 + graphics.dispose(); + return image; + } + + private static Color getRandColor(int fc, int bc) { // 取得给定范围随机颜色 + final Random random = new Random(); + if (fc > 255) { + fc = 255; + } + if (bc > 255) { + bc = 255; + } + + final int r = fc + random.nextInt(bc - fc); + final int g = fc + random.nextInt(bc - fc); + final int b = fc + random.nextInt(bc - fc); + + return new Color(r, g, b); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/RedisLockUtil.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/RedisLockUtil.java new file mode 100644 index 0000000..c342862 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/RedisLockUtil.java @@ -0,0 +1,120 @@ +package com.reallin.smt.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.script.DefaultRedisScript; +import org.springframework.stereotype.Component; + +import java.util.Collections; + +@Slf4j +@Component +public class RedisLockUtil { + + @Autowired + private RedisTemplate redisTemplate; + + private static final String UNLOCK_LUA_SCRIPT = + "if redis.call('get', KEYS[1]) == ARGV[1] then " + + " return redis.call('del', KEYS[1]) " + + "else " + + " return 0 " + + "end"; + + private static final String LOCK_LUA_SCRIPT = + "local key = KEYS[1] " + + "local value = ARGV[1] " + + "local expire = ARGV[2] " + + "local result = redis.call('setnx', key, value) " + + "if result == 1 then " + + " redis.call('pexpire', key, expire) " + + " return 1 " + + "else " + + " local currentValue = redis.call('get', key) " + + " if currentValue == value then " + + " redis.call('pexpire', key, expire) " + + " return 1 " + + " else " + + " return 0 " + + " end " + + "end"; + + /** + * 尝试获取分布式锁(支持锁重入) + * @param lockKey 锁的key + * @param requestId 请求ID(可使用UUID) + * @param expireMillis 锁的过期时间(毫秒) + * @param waitMillis 等待时间(毫秒) + * @return 是否获取成功 + */ + public boolean tryLock(String lockKey, String requestId, + long expireMillis, long waitMillis) + throws InterruptedException { + + long startTime = System.currentTimeMillis(); + + while (System.currentTimeMillis() - startTime < waitMillis) { + // 使用Lua脚本保证原子性 + DefaultRedisScript script = new DefaultRedisScript<>(); + script.setScriptText(LOCK_LUA_SCRIPT); + script.setResultType(Long.class); + + Long result = redisTemplate.execute( + script, + Collections.singletonList(lockKey), + requestId, + String.valueOf(expireMillis) + ); + + if (result != null && result == 1L) { + return true; // 获取锁成功 + } + + // 短暂休眠后重试 + Thread.sleep(10); + } + + return false; // 获取锁失败 + } + + /** + * 释放分布式锁 + */ + public boolean unlock(String lockKey, String requestId) { + try { + DefaultRedisScript script = new DefaultRedisScript<>(); + script.setScriptText(UNLOCK_LUA_SCRIPT); + script.setResultType(Long.class); + + Long result = redisTemplate.execute( + script, + Collections.singletonList(lockKey), + requestId + ); + + return result != null && result == 1L; + } catch (Exception e) { + log.error("释放锁失败, lockKey: {}", lockKey, e); + return false; + } + } + + /** + * 快速获取锁(立即返回,不等待) + */ + public boolean lockFast(String lockKey, String requestId, long expireMillis) { + DefaultRedisScript script = new DefaultRedisScript<>(); + script.setScriptText(LOCK_LUA_SCRIPT); + script.setResultType(Long.class); + + Long result = redisTemplate.execute( + script, + Collections.singletonList(lockKey), + requestId, + String.valueOf(expireMillis) + ); + + return result != null && result == 1L; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/RegExpTools.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/RegExpTools.java new file mode 100644 index 0000000..aae9039 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/RegExpTools.java @@ -0,0 +1,154 @@ +package com.reallin.smt.utils; + +import org.springframework.util.Assert; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Adm on 2015/12/14. + * + * @author yubiao + *

+ * mysql匹配正则表达式 + */ +public class RegExpTools { + /** + * @param search 模糊匹配字符串数组 + */ + public static String regexp(List search) { + if (search == null || search.isEmpty()) + return null; + String regexp = ""; + for (String s : search) { + if (!regexp.isEmpty()) { + regexp = regexp + "|"; + } + regexp = regexp + ".*"; + regexp = regexp + s.replaceAll("\\.", "\\\\."); + regexp = regexp + ".*"; + } + return regexp; + } + + /** + * @param key json字段key + * @param search 模糊匹配字符串数组 + * json的mysql匹配正则表达式 + */ + public static String regexp(String key, List search) { + if (search == null || search.isEmpty()) + return null; + StringBuilder sb = new StringBuilder(); + for (String s : search) { + if (sb.length() == 0) { + sb.append(".*\\\"").append(key).append("\\\":\\\"[a-zA-Z0-9]*("); + } else { + sb.append("|"); + } + sb.append(s); + } + sb.append(")[a-zA-Z0-9]*\\\".*"); + return sb.toString(); + } + + public static class RegExp { + public static final String ANY = ".*"; + public static final String QUOTE = "\\\""; + public static final String LFT_PAREN = "("; + public static final String RHT_PAREN = ")"; + public static final String COLON = ":"; + public static final String OR = "|"; + + private final StringBuilder builder = new StringBuilder(); + + public RegExp any() { + builder.append(ANY); + return this; + } + + public RegExp lftParen() { + builder.append(LFT_PAREN); + return this; + } + + public RegExp rhtParen() { + builder.append(RHT_PAREN); + return this; + } + + public RegExp colon() { + builder.append(COLON); + return this; + + } + + public RegExp quote() { + builder.append(QUOTE); + return this; + } + + public RegExp quote(String str) { + Assert.notNull(str, "str为空"); + builder.append(QUOTE).append(str).append(QUOTE); + return this; + } + + public RegExp value(String str) { + Assert.notNull(str, "str为空"); + builder.append(str); + return this; + } + + public RegExp or() { + builder.append(OR); + return this; + } + + public RegExp or(List values) { + Assert.notEmpty(values, "values必须非空"); + lftParen(); + boolean first = true; + for (String value : values) { + if (first) { + builder.append(value); + first = false; + } else { + builder.append(OR).append(value); + } + } + rhtParen(); + return this; + } + + @Override + public String toString() { + return builder.toString(); + } + + public static void main(String[] args) { + List values = new ArrayList(); + + values.add("310"); + values.add(String.valueOf(2)); + values.add(String.valueOf(3)); + + RegExp exp = new RegExp(); + + exp.any(); + exp.quote("fullKbNum").colon() + .quote() + .value("[a-zA-Z0-9]*").or(values).value("[a-zA-Z0-9]*") + .quote(); + exp.or(); + exp.quote("gbId[a-f0-9-]{36}").colon() + .quote() + .value("[0-9]*").or(values).value("[0-9]*") + .quote(); + exp.any(); + + System.out.println(exp); + } + + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ResponseCode.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ResponseCode.java new file mode 100644 index 0000000..cc5e095 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ResponseCode.java @@ -0,0 +1,24 @@ +package com.reallin.smt.utils; + +import com.alibaba.fastjson.annotation.JSONCreator; +import com.alibaba.fastjson.annotation.JSONField; + +/** + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +public class ResponseCode { + + public final int code; + public final Object data; + + /** + * + * @param code + * @param data + */ + @JSONCreator + public ResponseCode(@JSONField(name = "code") int code, @JSONField(name = "data")Object data) { + this.code = code; + this.data = data; + } +} \ No newline at end of file diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ResponseJsonUtil.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ResponseJsonUtil.java new file mode 100644 index 0000000..4f9fe15 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ResponseJsonUtil.java @@ -0,0 +1,64 @@ +package com.reallin.smt.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson.serializer.ValueFilter; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TimeZone; + +public class ResponseJsonUtil { + public static final SimpleDateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd"); + + static { + FORMAT.setTimeZone(TimeZone.getTimeZone("GMT+8")); + } + + /** + * 响应过滤器 + */ + public static final class ResponseFilter extends ExtJsonUtils.ExtFilter implements ValueFilter { + @Override + public Object process(Object object, String name, Object value) { + if (name.equals("createTime") || name.equals("modifyTime")||name.equals("updateTime")) { + return value; + } else if (value instanceof Date) { + return FORMAT.format(value); + } else { + return value; + } + } + } + + /** + * 成功的json串 + * @param responseCode + * @return + */ + public static String backJson(ResponseCode responseCode) { + if (responseCode != null) { + return JSON.toJSONString(responseCode, new ResponseFilter(), + SerializerFeature.DisableCircularReferenceDetect, + SerializerFeature.WriteNonStringKeyAsString); + } + return null; + } + + public static String returnJson(Map map, String message, int code) { + map.put("message", message); + return backJson(new ResponseCode(code, map)); + } + + public static String returnStr(Map objectMap, int res) { + if(res > 0) { + return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); + } else if(res == -1) { + return returnJson(objectMap, ErpInfo.TEST_USER.name, ErpInfo.TEST_USER.code); + } else { + return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); + } + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/ServletUtils.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/ServletUtils.java new file mode 100644 index 0000000..1a826db --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/ServletUtils.java @@ -0,0 +1,123 @@ +package com.reallin.smt.utils; + +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; + +/** + * 客户端工具类 + * + * @author ji-sheng-hua + */ +public class ServletUtils +{ + /** + * 定义移动端请求的所有可能类型 + */ + private final static String[] agent = { "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" }; + + /** + * 获取String参数 + */ + public static String getParameter(String name) + { + return getRequest().getParameter(name); + } + + /** + * 获取String参数 + */ + public static String getParameter(String name, String defaultValue) + { + return Convert.toStr(getRequest().getParameter(name), defaultValue); + } + + /** + * 获取Integer参数 + */ + public static Integer getParameterToInt(String name) + { + return Convert.toInt(getRequest().getParameter(name)); + } + + /** + * 获取Integer参数 + */ + public static Integer getParameterToInt(String name, Integer defaultValue) + { + return Convert.toInt(getRequest().getParameter(name), defaultValue); + } + + /** + * 获取Boolean参数 + */ + public static Boolean getParameterToBool(String name) + { + return Convert.toBool(getRequest().getParameter(name)); + } + + /** + * 获取Boolean参数 + */ + public static Boolean getParameterToBool(String name, Boolean defaultValue) + { + return Convert.toBool(getRequest().getParameter(name), defaultValue); + } + + /** + * 获取request + */ + public static HttpServletRequest getRequest() + { + return getRequestAttributes().getRequest(); + } + + /** + * 获取response + */ + public static HttpServletResponse getResponse() + { + return getRequestAttributes().getResponse(); + } + + /** + * 获取session + */ + public static HttpSession getSession() + { + return getRequest().getSession(); + } + + public static ServletRequestAttributes getRequestAttributes() + { + RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); + return (ServletRequestAttributes) attributes; + } + + /** + * 将字符串渲染到客户端 + * + * @param response 渲染对象 + * @param string 待渲染的字符串 + * @return null + */ + public static String renderString(HttpServletResponse response, String string) + { + try + { + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + response.getWriter().print(string); + } + catch (IOException e) + { + org.slf4j.LoggerFactory.getLogger(ServletUtils.class).warn("写入响应失败", e); + } + return null; + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/SqlUtil.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/SqlUtil.java new file mode 100644 index 0000000..7ab3105 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/SqlUtil.java @@ -0,0 +1,52 @@ +package com.reallin.smt.utils; + +import com.reallin.smt.exception.UtilException; + +/** + * sql操作工具类 + * + * @author ji-sheng-hua + */ +public class SqlUtil +{ + /** + * 定义常用的 sql关键字 + */ + public static String SQL_REGEX = "and |extractvalue|updatexml|exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |or |+|user()"; + + /** + * 仅允许字段名(可带表别名)和可选排序方向,支持逗号分隔多个字段。 + */ + public static final String SQL_PATTERN = "(?i)\\s*[a-z_][a-z0-9_]*(\\.[a-z_][a-z0-9_]*)?" + + "(\\s+(asc|desc))?(\\s*,\\s*[a-z_][a-z0-9_]*(\\.[a-z_][a-z0-9_]*)?" + + "(\\s+(asc|desc))?)*\\s*"; + + /** + * 限制orderBy最大长度 + */ + private static final int ORDER_BY_MAX_LENGTH = 500; + + /** + * 检查字符,防止注入绕过 + */ + public static String escapeOrderBySql(String value) + { + if (StringUtil.length(value) > ORDER_BY_MAX_LENGTH) + { + throw new UtilException("参数已超过最大限制,不能进行查询"); + } + if (StringUtil.isNotEmpty(value) && !isValidOrderBySql(value)) + { + throw new UtilException("参数不符合规范,不能进行查询"); + } + return value; + } + + /** + * 验证 order by 语法是否符合规范 + */ + public static boolean isValidOrderBySql(String value) + { + return value != null && value.length() <= ORDER_BY_MAX_LENGTH && value.matches(SQL_PATTERN); + } +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/StringUtil.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/StringUtil.java new file mode 100644 index 0000000..13464d8 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/StringUtil.java @@ -0,0 +1,526 @@ +package com.reallin.smt.utils; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.regex.Pattern; + +/** + * @author jishenghua qq752718920 2018-10-7 15:26:27 + */ +@Component +public class StringUtil implements BeanFactoryPostProcessor { + + private static ConfigurableListableBeanFactory beanFactory; + + private StringUtil() { + + } + + public static final String EMPTY = ""; + + private static String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss"; + + public final static String regex = "'|#|%|;|--| and | and|and | or | or|or | not | not|not " + + "| use | use|use | insert | insert|insert | delete | delete|delete | update | update|update " + + "| select | select|select | count | count|count | group | group|group | union | union|union " + + "| create | create|create | drop | drop|drop | truncate | truncate|truncate | alter | alter|alter " + + "| grant | grant|grant | execute | execute|execute | exec | exec|exec | xp_cmdshell | xp_cmdshell|xp_cmdshell " + + "| call | call|call | declare | declare|declare | source | source|source | sql | sql|sql "; + + /** 下划线 */ + private static final char SEPARATOR = '_'; + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException + { + StringUtil.beanFactory = beanFactory; + } + + public static String filterNull(String str) { + if (str == null) { + return ""; + } else { + return str.trim(); + } + } + + public static boolean stringEquels(String source,String target) { + if(isEmpty(source)||isEmpty(target)){ + return false; + }else{ + return source.equals(target); + } + } + + public static int length(CharSequence cs) { + return cs == null ? 0 : cs.length(); + } + + /** + * 驼峰转下划线命名 + */ + public static String toUnderScoreCase(String str) + { + if (str == null) + { + return null; + } + StringBuilder sb = new StringBuilder(); + // 前置字符是否大写 + boolean preCharIsUpperCase = true; + // 当前字符是否大写 + boolean curreCharIsUpperCase = true; + // 下一字符是否大写 + boolean nexteCharIsUpperCase = true; + for (int i = 0; i < str.length(); i++) + { + char c = str.charAt(i); + if (i > 0) + { + preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); + } + else + { + preCharIsUpperCase = false; + } + + curreCharIsUpperCase = Character.isUpperCase(c); + + if (i < (str.length() - 1)) + { + nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); + } + + if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) + { + sb.append(SEPARATOR); + } + else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) + { + sb.append(SEPARATOR); + } + sb.append(Character.toLowerCase(c)); + } + + return sb.toString(); + } + + /** + * * 判断一个对象是否为空 + * + * @param object Object + * @return true:为空 false:非空 + */ + public static boolean isNull(Object object) + { + return object == null; + } + + /** + * * 判断一个对象是否非空 + * + * @param object Object + * @return true:非空 false:空 + */ + public static boolean isNotNull(Object object) + { + return !isNull(object); + } + + public static boolean isEmpty(String str) { + return str == null || "".equals(str.trim()); + } + + public static boolean isNotEmpty(String str) { + return !isEmpty(str); + } + + public static String getSysDate(String format) { + if (StringUtil.isEmpty(format)) { + format = DEFAULT_FORMAT; + } + SimpleDateFormat df = new SimpleDateFormat(format); + return df.format(new Date()); + } + + public static Date getDateByString(String date, String format) { + if (StringUtil.isEmpty(format)) { + format = DEFAULT_FORMAT; + } + if (StringUtil.isNotEmpty(date)) { + SimpleDateFormat sdf = new SimpleDateFormat(format); + try { + return sdf.parse(date); + } catch (ParseException e) { + throw new RuntimeException("转换为日期类型错误:DATE:" + date + " FORMAT:" + format); + } + } else { + return null; + } + } + + public static Date getDateByLongDate(Long millis) { + if (millis == null) { + return new Date(); + } + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(millis); + return cal.getTime(); + + } + + public static UUID stringToUUID(String id) { + if (StringUtil.isNotEmpty(id)) { + return UUID.fromString(id); + } else { + return null; + } + } + + public static Integer parseInteger(String str) { + if (StringUtil.isNotEmpty(str)) { + return Integer.parseInt(str); + } else { + return null; + } + } + + public static Long parseStrLong(String str) { + if (StringUtil.isNotEmpty(str)) { + return Long.parseLong(str); + } else { + return null; + } + } + + public static List listToUUID(List listStrs) { + if (listStrs != null && listStrs.size() > 0) { + List uuidList = new ArrayList(); + for (String str : listStrs) { + uuidList.add(UUID.fromString(str)); + } + return uuidList; + } else { + return null; + } + } + + public static List arrayToUUIDList(String[] uuids) { + if (uuids != null && uuids.length > 0) { + List uuidList = new ArrayList(); + for (String str : uuids) { + uuidList.add(UUID.fromString(str)); + } + return uuidList; + } else { + return null; + } + } + + //是否是JSON + public static boolean containsAny(String str, String... flag) { + if (str != null) { + if (flag == null || flag.length == 0) { + flag = "[-{-}-]-,".split("-"); + } + for (String s : flag) { + if (str.contains(s)) { + return true; + } + } + } + return false; + } + + public static String getModifyOrgOperateData(UUID resourceId, UUID orgId) { + if (resourceId != null && orgId != null) { + Map map = new HashMap(); + map.put(resourceId, orgId); + return JSON.toJSONString(map); + } + return ""; + } + + public static String[] listToStringArray(List list) { + if (list != null && !list.isEmpty()) { + return list.toArray(new String[list.size()]); + } + return new String[0]; + } + + public static Long[] listToLongArray(List list) { + if (list != null && !list.isEmpty()) { + return list.toArray(new Long[list.size()]); + } + return new Long[0]; + } + + public static List stringToListArray(String[] strings) { + if (strings != null && strings.length > 0) { + return Arrays.asList(strings); + } + return new ArrayList(); + } + + public static BigDecimal getArrSum(String[] strings) { + BigDecimal sum = BigDecimal.ZERO; + for(int i=0;i数据格式 + * String str = "1,2,3,4,5,6" -> List listLong [1,2,3,4,5,6]; + * + * @param strArr + * @return + */ + public static List strToLongList(String strArr) { + List idList=new ArrayList(); + String[] d=strArr.split(","); + for (int i = 0, size = d.length; i < size; i++) { + if(d[i]!=null) { + idList.add(Long.parseLong(d[i])); + } + } + return idList; + } + + /** + * String字符串转成List数据格式 + * String str = "1,2,3,4,5,6" -> List listBigDecimal [1,2,3,4,5,6]; + * + * @param strArr + * @return + */ + public static List strToBigDecimalList(String strArr) { + List idList=new ArrayList<>(); + String[] d=strArr.split(","); + for (int i = 0, size = d.length; i < size; i++) { + if(d[i]!=null) { + idList.add(new BigDecimal(d[i])); + } + } + return idList; + } + + /** + * String字符串转成List数据格式 + * String str = "1,2,3,4,5,6" -> List listLong [1,2,3,4,5,6]; + * + * @param strArr + * @return + */ + public static List strToStringList(String strArr) { + if(StringUtils.isEmpty(strArr)){ + return null; + } + List idList=new ArrayList(); + String[] d=strArr.split(","); + for (int i = 0, size = d.length; i < size; i++) { + if(d[i]!=null) { + idList.add(d[i].toString()); + } + } + return idList; + } + + public static List searchCondition(String search) { + if (isEmpty(search)) { + return new ArrayList(); + }else{ + //String[] split = search.split(" "); + String[] split = search.split("#"); + return stringToListArray(split); + } + } + + public static String getInfo(String search, String key){ + String value = null; + if(StringUtil.isNotEmpty(search)) { + search = search.replace("{}",""); + if(StringUtil.isNotEmpty(search)) { + JSONObject obj = JSONObject.parseObject(search); + if (obj.get(key) != null) { + value = obj.getString(key).trim(); + if (value.equals("")) { + value = null; + } + } else { + value = null; + } + } + } + return value; + } + + public static String toNull(String value) { + if(isEmpty(value)) { + value = null; + } else { + value = value.trim(); + } + return value; + } + + public static boolean isExist(Object value) { + if(value!=null) { + String str = value.toString(); + if("".equals(str.trim())) { + return false; + } else { + return true; + } + } else { + return false; + } + } + + /** + * 判断对象是否为正整数 + * @param value + * @return + */ + public static boolean isPositiveLong(Object value) { + if(value!=null) { + String str = value.toString(); + if(isNotEmpty(str)) { + if((str.matches("[0-9]+"))&&(Long.parseLong(str)>0)) { + return true; + } else { + return false; + } + } else { + return false; + } + } else { + return false; + } + } + + /** + * 校验条码长度为4到40位 + * @param value + * @return + */ + public static boolean checkBarCodeLength(Object value) { + if(value!=null) { + String str = value.toString(); + if(isNotEmpty(str)) { + if(str.length()>=4 && str.length()<=40 ) { + return true; + } else { + return false; + } + } else { + return false; + } + } else { + return false; + } + } + + /** + * 判断对象是否为数字(含小数) + * @param str + * @return + */ + public static boolean isPositiveBigDecimal(String str){ + Pattern pattern = Pattern.compile("[0-9]*"); + if(str.indexOf(".")>0){//判断是否有小数点 + if(str.indexOf(".")==str.lastIndexOf(".") && str.split("\\.").length==2){ //判断是否只有一个小数点 + return pattern.matcher(str.replace(".","")).matches(); + }else { + return false; + } + }else { + return pattern.matcher(str).matches(); + } + } + + /** + * sql注入过滤,保障sql的安全执行 + * @param originStr + * @return + */ + public static String safeSqlParse(String originStr){ + return originStr.replaceAll("(?i)" + regex, ""); + } + + /** + * 判断字符串是否为纯数字 + * @param str 输入的字符串 + * @return 如果字符串为纯数字,返回 true;否则返回 false + */ + public static boolean isNumeric(String str) { + if (str == null || str.isEmpty()) { + return false; + } + // 使用正则表达式判断字符串是否为纯数字 + return str.matches("\\d+"); + } + + /** + * 获取对象 + * + * @param name + * @return Object 一个以所给名字注册的bean的实例 + * @throws org.springframework.beans.BeansException + * + */ + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException + { + return (T) beanFactory.getBean(name); + } + + /** + * 获取类型为requiredType的对象 + * + * @param clz + * @return + * @throws org.springframework.beans.BeansException + * + */ + public static T getBean(Class clz) throws BeansException + { + T result = (T) beanFactory.getBean(clz); + return result; + } + + public static String stripEnd(String str, String stripChars) { + int end = length(str); + if (end == 0) { + return str; + } else { + if (stripChars == null) { + while(end != 0 && Character.isWhitespace(str.charAt(end - 1))) { + --end; + } + } else { + if (stripChars.isEmpty()) { + return str; + } + + while(end != 0 && stripChars.indexOf(str.charAt(end - 1)) != -1) { + --end; + } + } + + return str.substring(0, end); + } + } + +} diff --git a/smtERP-boot/src/main/java/com/reallin/smt/utils/Tools.java b/smtERP-boot/src/main/java/com/reallin/smt/utils/Tools.java new file mode 100644 index 0000000..6e1eaf0 --- /dev/null +++ b/smtERP-boot/src/main/java/com/reallin/smt/utils/Tools.java @@ -0,0 +1,675 @@ +package com.reallin.smt.utils; + +import org.springframework.util.StringUtils; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.math.BigInteger; +import java.net.InetAddress; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.net.UnknownHostException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.regex.Pattern; + +/** + * 工具类 + * + * @author jishenghua qq:7-5-2-7-1-8-9-2-0 + */ +public class Tools { + /** + * 获得32位唯一序列号 + * + * @return 32为ID字符串 + */ + public static String getUUID_32() { + return UUID.randomUUID().toString().replaceAll("-", ""); + } + + /** + * 获得当天时间,格式为yyyy-MM-dd + * + * @return 格式化后的日期格式 + */ + public static String getNow() { + return new SimpleDateFormat("yyyy-MM-dd").format(new Date()); + } + + /** + * 获取昨天的日期字符串 + * @return + */ + public static String getYesterday(){ + Date date=new Date();//取时间 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + //把日期往后增加一天.整数往后推,负数往前移动(1:表示明天、-1:表示昨天,0:表示今天) + calendar.add(Calendar.DATE,-1); + //这个时间就是日期往前推一天的结果 + date=calendar.getTime(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + return formatter.format(date); + } + + /** + * 获取当年的第一天 + * @return + */ + public static String getYearBegin(){ + String yearStr = new SimpleDateFormat("yyyy").format(new Date()); + return yearStr + "-01-01"; + } + + /** + * 获取当年的最后一天 + * @return + */ + public static String getYearEnd(){ + String yearStr = new SimpleDateFormat("yyyy").format(new Date()); + return yearStr + "-12-31"; + } + + /** + * 获取当前月 yyyy-MM + * + * @return + */ + public static String getCurrentMonth() { + return new SimpleDateFormat("yyyy-MM").format(new Date()); + } + + /** + * 获得指定时间,格式为yyyy-MM-dd HH:mm:ss或yyyy-MM-dd + * + * @return 格式化后的日期格式 + */ + public static String dateToStr(Date date, String format) { + if(date!=null) { + return new SimpleDateFormat(format).format(date); + } else { + return ""; + } + } + + /** + * 将日期的字符串格式转为时间格式 + * @param dateString + * @return + * @throws ParseException + */ + public static Date strToDate(String dateString) throws ParseException { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 日期格式 + return formatter.parse(dateString); // 字符串转换为Date + } + /** + * 获取指定日期格式 yyyy-MM-dd + * + * @return + */ + public static String parseDateToStr(Date date) { + if(date!=null) { + return new SimpleDateFormat("yyyy-MM-dd").format(date); + } else { + return ""; + } + } + + /** + * 获得当天时间,格式为yyyyMMddHHmmss + * + * @return 格式化后的日期格式 + */ + public static String getNow2(Date date) { + return new SimpleDateFormat("yyyyMMddHHmmss").format(date); + } + + /** + * 获得当天时间,格式为yyyy-MM-dd HH:mm:ss + * + * @return 格式化后的日期格式 + */ + public static String getNow3() { + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + } + + /** + * 获得指定时间,格式为yyyy-MM-dd HH:mm:ss + * + * @return 格式化后的日期格式 + */ + public static String getCenternTime(Date date) { + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); + } + + public static String parseDayToTime(String day, String timeStr) { + if(StringUtil.isNotEmpty(day)){ + return day + timeStr; + } else { + return null; + } + } + + /** + * 获得指定时间,格式为mm:ss + * + * @return 格式化后的日期格式 + */ + public static String getTimeInfo(Date date) { + return new SimpleDateFormat("mm:ss").format(date); + } + + /** + * 获取当前日期是星期几 + * return 星期几 + */ + public static String getWeekDay() { + Calendar c = Calendar.getInstance(Locale.CHINA); + c.setTime(new Date()); + int day = c.get(Calendar.DAY_OF_WEEK); + String weekDay = ""; + switch (day) { + case 1: + weekDay = "星期日"; + break; + case 2: + weekDay = "星期一"; + break; + case 3: + weekDay = "星期二"; + break; + case 4: + weekDay = "星期三"; + break; + case 5: + weekDay = "星期四"; + break; + case 6: + weekDay = "星期五"; + break; + case 7: + weekDay = "星期六"; + break; + default: + break; + } + return weekDay; + } + + /** + * 判断字符串是否全部为数字 + * + * @param checkStr + * @return boolean值 + */ + public static boolean checkStrIsNum(String checkStr) { + if (checkStr == null || checkStr.length() == 0) + return false; + return Pattern.compile("^[0-9]*.{1}[0-9]*$").matcher(checkStr).matches(); +// return Pattern.compile(":^[0-9]+(.[0-9])*$").matcher(checkStr).matches(); + } + + /** + * 获得前一天的时间 + * + * @return 前一天日期 + */ + public static String getPreviousDate() { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DATE, -1); + return new SimpleDateFormat("yyyy-MM").format(cal.getTime()); + } + + /** + * 获取当前月份的前6个月(含当前月) + * @param size 月数 + * @return + */ + public static List getLastMonths(int size) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + Calendar c = Calendar.getInstance(); + c.setTime(new Date()); + List list = new ArrayList(size); + for (int i=0;i cutLeng) + return beforeStr.substring(0, cutLeng) + "..."; + return beforeStr; + } + + /** + * 生成随机字符串,字母和数字混合 + * + * @return 组合后的字符串 ^[0-9a-zA-Z] + */ + public static String getRandomChar() { + //生成一个0、1、2的随机数字 + int rand = (int) Math.round(Math.random() * 1); + long itmp = 0; + char ctmp = '\u0000'; + switch (rand) { + //生成大写字母 + 1000以内数字 + case 1: + itmp = Math.round(Math.random() * 25 + 65); + ctmp = (char) itmp; + return String.valueOf(ctmp) + (int) Math.random() * 1000; + //生成小写字母 + case 2: + itmp = Math.round(Math.random() * 25 + 97); + ctmp = (char) itmp; + return String.valueOf(ctmp) + (int) Math.random() * 1000; + //生成数字 + default: + itmp = Math.round(Math.random() * 1000); + return itmp + ""; + } + } + + /** + * 判断首字母以数字开头,字符串包括数字、字母%以及空格 + * + * @param str 检查字符串 + * @return 是否以数字开头 + */ + public static boolean CheckIsStartWithNum(String str) { + return Pattern.compile("^[0-9][a-zA-Z0-9%,\\s]*$").matcher(str).matches(); + } + + /** + * 判断首字母以","开头,字符串包括数字、字母%以及空格 + * + * @param str 检查字符串 + * @return 是否以数字开头 + */ + public static boolean CheckIsStartWithSpec(String str) { + return Pattern.compile("^[,][a-zA-Z0-9%,\\s]*$").matcher(str).matches(); + } + + /** + * 字符转码 + * + * @param aValue + * @return + * @see 转码后的字符串 + */ + public static String encodeValue(String aValue) { + if (aValue.trim().length() == 0) { + return ""; + } + String valueAfterTransCode = null; + try { + valueAfterTransCode = URLEncoder.encode(aValue, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.getMessage(); + } + return valueAfterTransCode; + } + + /** + * 字符转码 + * + * @param aValue + * @return + * @see 转码后的字符串 + */ + public static String decodeValue(String aValue) { + if (aValue.trim().length() == 0) { + return ""; + } + String valueAfterTransCode = null; + try { + valueAfterTransCode = URLDecoder.decode(aValue, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.getMessage(); + } + return valueAfterTransCode; + } + + /** + * 去除str中的' + * + * @param str + * @return 除去'后的字符串 + * @see [类、类#方法、类#成员] + */ + public static String afterDealStr(String str) { + return str.replace("'", ""); + } + + /** + * 从Request对象中获得客户端IP,处理了HTTP代理服务器和Nginx的反向代理截取了ip + * + * @param request + * @return ip + */ + public static String getLocalIp(HttpServletRequest request) { + String remoteAddr = getIpAddr(request); + String forwarded = request.getHeader("X-Forwarded-For"); + String realIp = request.getHeader("X-Real-IP"); + + String ip = null; + if (realIp == null) { + if (forwarded == null) { + ip = remoteAddr; + } else { + ip = remoteAddr + "/" + forwarded.split(",")[0]; + } + } else { + if (realIp.equals(forwarded)) { + ip = realIp; + } else { + if (forwarded != null) { + forwarded = forwarded.split(",")[0]; + } + ip = realIp + "/" + forwarded; + } + } + return ip; + } + /** + * 获取访问者IP + * + * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。 + * + * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割), + * 如果还不存在则调用Request .getRemoteAddr()。 + * + * @param request + * @return + */ + public static String getIpAddr(HttpServletRequest request) { + String ip = request.getHeader("X-Real-IP"); + if (!StringUtils.isEmpty(ip) && !"unknown".equalsIgnoreCase(ip)) { + return ip; + } + ip = request.getHeader("X-Forwarded-For"); + if (!StringUtils.isEmpty(ip) && !"unknown".equalsIgnoreCase(ip)) { + // 多次反向代理后会有多个IP值,第一个为真实IP。 + int index = ip.indexOf(','); + if (index != -1) { + return ip.substring(0, index); + } else { + return ip; + } + } else { + return request.getRemoteAddr(); + } + } + + /** + * 转化前台批量传入的ID值 + * + * @param data + * @return 转化后的ID值数组 + */ + public static int[] changeDataForm(String data) { + String[] dataStr = data.split(","); + int[] dataInt = new int[dataStr.length]; + for (int i = 0; i < dataStr.length; i++) + dataInt[i] = Integer.parseInt(dataStr[i]); + return dataInt; + } + + /** + * 写理财日志内容转化特殊字符 + * + * @param str 需要转化的字符 + * @return 转化后的字符 + */ + public static String htmlspecialchars(String str) { + str = str.replaceAll("&", "&"); + str = str.replaceAll("<", "<"); + str = str.replaceAll(">", ">"); + str = str.replaceAll("\"", """); + return str; + } + + /** + * 根据消费日期获取消费月 + * + * @param consumeDate 消费日期 + * @return 返回消费月信息 + */ + public static String getConsumeMonth(String consumeDate) { + return consumeDate.substring(0, 7); + } + + /** + * 获取当前日期的前XX个月 + * + * @param beforeMonth + * @return 前XX个月字符串 + */ + public static String getBeforeMonth(int beforeMonth) { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, -beforeMonth); + return new SimpleDateFormat("yyyy-MM").format(c.getTime()); + } + + /** + * 根据月份获取当月第一天 + * @param monthTime + * @return + * @throws ParseException + */ + public static String firstDayOfMonth(String monthTime) throws ParseException { + return monthTime + "-01"; + } + + /** + * 根据月份获取当月最后一天 + * @param monthTime + * @return + * @throws ParseException + */ + public static String lastDayOfMonth(String monthTime) throws ParseException { + Date date = new SimpleDateFormat("yyyy-MM").parse(monthTime); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.set(Calendar.DAY_OF_MONTH, 1); + cal.roll(Calendar.DAY_OF_MONTH, -1); + return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); + } + + /** + * 获取email用户姓名 + * + * @param emailAddress + */ + public static String getEmailUserName(String emailAddress) { + return emailAddress.substring(0, emailAddress.lastIndexOf("@")); + } + + /** + * 判断userTel是否合法,userTel只能是数字 + * + * @param userTel + * @return true 合法 false不合法 + */ + public static boolean isTelNumber(String userTel) { + String reg_phone = "^(\\(\\d{3,4}\\)|\\d{3,4}-)?\\d{7,8}$"; + String reg_tel = "^(1[0-9][0-9]|1[0-9][0|3|6|8|9])\\d{8}$"; + boolean b_phpne = Pattern.compile(reg_phone).matcher(userTel).matches(); + boolean b_tel = Pattern.compile(reg_tel).matcher(userTel).matches(); + return (b_phpne || b_tel); + } + + /** + * 模糊判断电话号码是否合法,只能是数字 + * + * @param userTel + * @return + */ + public static boolean isTelNumberBySlur(String userTel) { + return Pattern.compile("^([\\s0-9]{0,12}$)").matcher(userTel).matches(); + } + + /** + * 获取当前时间的字符串类型 + * + * @return 处理后的字符串类型 + */ + public static String getNowTime() { + return new SimpleDateFormat("yyyyMMddHHmmss").format(Calendar.getInstance().getTime()); + } + + /** + * 判断字符串中是否含有中文 + * + * @param str + * @return + * @author jishenghua + */ + public static boolean isContainsChinese(String str) { + return Pattern.compile("[\u4e00-\u9fa5]").matcher(str).matches(); + } + + /** + * 过滤html文件中的文本 + * + * @param content + * @return过滤后的文本 + */ + public static String filterText(String content) { + return content.replace("/<(?:.|\\s)*?>/g", ""); + } + + /** + * 去掉字符串中所有符号,不论是全角,还是半角的,或是货币符号或者空格等 + * + * @param s + * @return + * @author jishenghua + */ + public static String removeSymbolForString(String s) { + StringBuffer buffer = new StringBuffer(); + char[] chars = s.toCharArray(); + for (int i = 0; i < chars.length; i++) { + if ((chars[i] >= 19968 && chars[i] <= 40869) || (chars[i] >= 97 && chars[i] <= 122) || (chars[i] >= 65 && chars[i] <= 90)) { + buffer.append(chars[i]); + } + } + return buffer.toString(); + } + + /** + * 获取一个字符串的MD5 + * + * @param msg + * @return 加密后的MD5字符串 + * @throws NoSuchAlgorithmException + */ + public static String md5Encryp(String msg) throws NoSuchAlgorithmException { + // 生成一个MD5加密计算摘要 + MessageDigest md = MessageDigest.getInstance("MD5"); + // 计算md5函数 + md.update(msg.getBytes()); + return new BigInteger(1, md.digest()).toString(16); + } + + /** + * 判断是否插件URL + * + * @return + */ + public static boolean isPluginUrl(String url) { + if (url != null && (url.startsWith("/plugin"))) { + return true; + } + return false; + } + + /** + * 处理字符串null值 + * + * @param beforeStr 处理前字符串 + * @return 处理后的字符串 + */ + public static String dealNullStr(String beforeStr) { + if (null == beforeStr || beforeStr.length() == 0) + return ""; + return beforeStr; + } + + /** + * 根据token截取租户id + * @param token + * @return + */ + public static Long getTenantIdByToken(String token) { + Long tenantId = 0L; + if(StringUtil.isNotEmpty(token) && token.indexOf("_")>-1) { + String[] tokenArr = token.split("_"); + if (tokenArr.length == 2) { + tenantId = Long.parseLong(tokenArr[1]); + } + } + return tenantId; + } + + /** + * 使用参数Format将字符串转为Date + * + * @param strDate + * @param pattern + * @return + * @throws ParseException + * @author jishenghua + */ + public static Date parse(String strDate, String pattern) + throws ParseException { + return new SimpleDateFormat(pattern).parse(strDate); + } + + public static Date addDays(Date date, int num) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); //需要将date数据转移到Calender对象中操作 + calendar.add(calendar.DATE, num);//把日期往后增加n天.正数往后推,负数往前移动 + date=calendar.getTime(); //这个时间就是日期往后推一天的结果 + return date; + } + + /** + * 生成随机数字和字母组合 + * @param length + * @return + */ + public static String getCharAndNum(int length) { + Random random = new Random(); + StringBuffer valSb = new StringBuffer(); + String charStr = "0123456789abcdefghijklmnopqrstuvwxyz"; + int charLength = charStr.length(); + for (int i = 0; i < length; i++) { + int index = random.nextInt(charLength); + valSb.append(charStr.charAt(index)); + } + return valSb.toString(); + } + + public static void main(String[] args) { + Date date = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateString = formatter.format(date); + System.out.println(dateString); + } +} diff --git a/smtERP-boot/src/main/resources/application.yml b/smtERP-boot/src/main/resources/application.yml new file mode 100644 index 0000000..4c65ec1 --- /dev/null +++ b/smtERP-boot/src/main/resources/application.yml @@ -0,0 +1,76 @@ +# 服务端口 +server: + port: 27210 + servlet: + # 登录超时 - 秒 + session: + timeout: 36000 + # 服务路径 + context-path: /apis + tomcat: + # 文件上传临时路径 + basedir: /data/app/P072/tmp/tomcat + +spring: + datasource: + # 数据库连接 + url: jdbc:mysql://127.0.0.1:3306/app072?useUnicode=true&characterEncoding=utf8&useCursorFetch=true&defaultFetchSize=500&allowMultiQueries=false&rewriteBatchedStatements=true&useSSL=false + driver-class-name: com.mysql.cj.jdbc.Driver + username: ${DB_USERNAME} + password: ${DB_PASSWORD} + redis: + host: 10.20.120.47 + port: 6379 + password: ${REDIS_PASSWORD} + servlet: + multipart: + # 文件上传限制 (byte) + max-file-size: 10485760 + max-request-size: 10485760 + +# mybatis-plus 配置 +mybatis-plus: + mapper-locations: classpath:./mapper_xml/*.xml + +# 租户对应的角色 id +manage: + roleId: 10 + +# 同一账号连续输错密码时的递增等待策略 +login: + security: + # 在该时间内再次输错视为连续失败 + failure-window-seconds: 600 + # 从第几次连续输错开始限制登录 + max-failures-before-delay: 3 + # 首次限制时的等待秒数,后续连续输错按 2 倍递增 + base-delay-seconds: 30 + # 单次最长等待秒数 + max-delay-seconds: 1800 + +# SMT 外部平台推送接口在无登录会话时使用的制单人 +smt: + syncCreatorId: 63 + +# 外部同步需设置独立密钥;为空时仅允许 ERP 登录会话调用。 +security: + sync: + api-key: ${SYNC_API_KEY:} + inventory: + token-ttl-seconds: ${INVENTORY_TOKEN_TTL_SECONDS:3600} + session: + timeout-seconds: ${ERP_SESSION_TIMEOUT_SECONDS:259200} + +# 插件配置 +plugin: + runMode: prod + pluginPath: plugins + pluginConfigFilePath: pluginConfig + +file: + # 文件上传方式 1-本机 2-oss + uploadType: 1 + # 文件上传根目录 + path: /data/app/P072/upload + # 文件导出缓存 + exportTmp: /data/app/P072/export diff --git a/smtERP-boot/src/main/resources/changeLog.md b/smtERP-boot/src/main/resources/changeLog.md new file mode 100644 index 0000000..be3dc4e --- /dev/null +++ b/smtERP-boot/src/main/resources/changeLog.md @@ -0,0 +1,16 @@ +******************************************1.0.0******************************************* + +Product Name: smt-erp +Release Version: 1.0.0 +Release Date: 2026-10-12 +Copyright: 浙江瑞银电子有限公司 + +Change detail: +1. changeLog +项目初始化 + +配置文件: +无 + +数据库变更: +无 \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/db/migration/V20260910__smt_inbound.sql b/smtERP-boot/src/main/resources/db/migration/V20260910__smt_inbound.sql new file mode 100644 index 0000000..b08b01e --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260910__smt_inbound.sql @@ -0,0 +1,18 @@ +CREATE TABLE IF NOT EXISTS `tbl_smt_inbound_item` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `header_id` bigint NOT NULL, + `material_code` varchar(100) NOT NULL COMMENT 'ERP条码/物料代码', + `material_name` varchar(200) NOT NULL COMMENT '成品名称', + `specification` varchar(200) DEFAULT NULL COMMENT '规格型号', + `qty` decimal(24,6) NOT NULL, + `unit_price` decimal(24,6) DEFAULT NULL, + `total_net_money` decimal(24,6) DEFAULT NULL, + `total_money` decimal(24,6) DEFAULT NULL, + `source_doc_no` varchar(100) DEFAULT NULL, + `tenant_id` bigint DEFAULT NULL, + `delete_flag` varchar(1) DEFAULT '0', + PRIMARY KEY (`id`), + KEY `idx_smt_inbound_header` (`header_id`), + KEY `idx_smt_inbound_code` (`material_code`), + KEY `idx_smt_inbound_tenant` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='SMT其他入库待审核明细'; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260914__disable_tenant_features.sql b/smtERP-boot/src/main/resources/db/migration/V20260914__disable_tenant_features.sql new file mode 100644 index 0000000..5ce9932 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260914__disable_tenant_features.sql @@ -0,0 +1,8 @@ +-- 本地化单租户部署:关闭租户管理菜单和公开租户注册入口。 +UPDATE tbl_function +SET enabled = 0 +WHERE name = '租户管理' OR component = '/system/TenantList'; + +UPDATE tbl_platform_config +SET platform_value = '0' +WHERE platform_key = 'register_flag'; diff --git a/smtERP-boot/src/main/resources/db/migration/V2026091501__production_requisition_item_depot.sql b/smtERP-boot/src/main/resources/db/migration/V2026091501__production_requisition_item_depot.sql new file mode 100644 index 0000000..2ab8db9 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V2026091501__production_requisition_item_depot.sql @@ -0,0 +1,14 @@ +-- 生产领料支持按明细行选择发料仓库。 +SET NAMES utf8mb4; + +ALTER TABLE tbl_production_requisition_item + ADD COLUMN depot_id bigint(20) NULL DEFAULT NULL COMMENT '发料仓库id' AFTER requisition_id; + +-- 历史数据沿用领料单主表仓库,避免旧单据确认发料时缺少明细仓库。 +UPDATE tbl_production_requisition_item pri +JOIN tbl_production_requisition pr ON pr.id = pri.requisition_id +SET pri.depot_id = pr.depot_id +WHERE pri.depot_id IS NULL + AND pr.depot_id IS NOT NULL; + +CREATE INDEX idx_pri_depot_id ON tbl_production_requisition_item(depot_id); diff --git a/smtERP-boot/src/main/resources/db/migration/V2026091502__sale_shipment.sql b/smtERP-boot/src/main/resources/db/migration/V2026091502__sale_shipment.sql new file mode 100644 index 0000000..5d55494 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V2026091502__sale_shipment.sql @@ -0,0 +1,66 @@ +SET NAMES utf8mb4; + +CREATE TABLE IF NOT EXISTS tbl_sale_shipment ( + id bigint(20) NOT NULL AUTO_INCREMENT, + shipment_number varchar(64) NOT NULL COMMENT '发货通知单号', + sale_out_id bigint(20) NOT NULL COMMENT '销售出库单id', + sale_out_number varchar(64) NOT NULL COMMENT '销售出库单号', + sale_order_number varchar(64) DEFAULT NULL COMMENT '关联销售订单/交货计划单号', + customer_id bigint(20) DEFAULT NULL COMMENT '客户id', + status varchar(2) NOT NULL DEFAULT '0' COMMENT '状态:0待审批、1待发货、2已发货、3部分发货、4已驳回', + planned_ship_time datetime DEFAULT NULL COMMENT '计划发货时间', + logistics_company varchar(100) DEFAULT NULL COMMENT '物流公司', + logistics_no varchar(100) DEFAULT NULL COMMENT '物流单号', + receiver varchar(100) DEFAULT NULL COMMENT '收货人', + receiver_phone varchar(100) DEFAULT NULL COMMENT '收货电话', + receiver_address varchar(255) DEFAULT NULL COMMENT '收货地址', + notice_remark varchar(500) DEFAULT NULL COMMENT '发货通知备注', + approve_by bigint(20) DEFAULT NULL COMMENT '审批人', + approve_time datetime DEFAULT NULL COMMENT '审批时间', + approve_remark varchar(500) DEFAULT NULL COMMENT '审批备注', + ship_by bigint(20) DEFAULT NULL COMMENT '发货执行人', + ship_time datetime DEFAULT NULL COMMENT '发货时间', + confirm_by bigint(20) DEFAULT NULL COMMENT '确认人', + confirm_time datetime DEFAULT NULL COMMENT '确认时间', + difference_remark varchar(500) DEFAULT NULL COMMENT '差异处理说明', + create_time datetime DEFAULT NULL COMMENT '创建时间', + creator bigint(20) DEFAULT NULL COMMENT '创建人', + tenant_id bigint(20) DEFAULT NULL COMMENT '租户id', + delete_flag varchar(1) DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (id), + UNIQUE KEY uk_sale_shipment_number (shipment_number), + KEY idx_sale_shipment_sale_out_id (sale_out_id), + KEY idx_sale_shipment_sale_out_number (sale_out_number), + KEY idx_sale_shipment_status (status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='销售发货通知/发货单'; + +CREATE TABLE IF NOT EXISTS tbl_sale_shipment_item ( + id bigint(20) NOT NULL AUTO_INCREMENT, + shipment_id bigint(20) NOT NULL COMMENT '发货通知id', + sale_out_item_id bigint(20) NOT NULL COMMENT '销售出库明细id', + material_id bigint(20) DEFAULT NULL COMMENT '商品id', + material_extend_id bigint(20) DEFAULT NULL COMMENT '商品扩展id', + bar_code varchar(100) DEFAULT NULL COMMENT '条码', + material_name varchar(100) DEFAULT NULL COMMENT '商品名称', + standard varchar(100) DEFAULT NULL COMMENT '规格', + model varchar(100) DEFAULT NULL COMMENT '型号', + unit varchar(50) DEFAULT NULL COMMENT '单位', + batch_number varchar(100) DEFAULT NULL COMMENT '批号', + sn_list varchar(1000) DEFAULT NULL COMMENT '序列号', + plan_quantity decimal(24,6) DEFAULT 0 COMMENT '通知发货数量', + actual_quantity decimal(24,6) DEFAULT 0 COMMENT '实际发货数量', + shipped_quantity decimal(24,6) DEFAULT 0 COMMENT '创建时已通知/已发货数量', + difference_quantity decimal(24,6) DEFAULT 0 COMMENT '差异数量=实际-通知', + depot_id bigint(20) DEFAULT NULL COMMENT '出库仓库id', + remark varchar(500) DEFAULT NULL COMMENT '备注', + tenant_id bigint(20) DEFAULT NULL COMMENT '租户id', + delete_flag varchar(1) DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_sale_shipment_item_shipment_id (shipment_id), + KEY idx_sale_shipment_item_sale_out_item_id (sale_out_item_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='销售发货明细'; + +INSERT INTO jsh_function (number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '060304', '发货管理', '0603', '/bill/sale_shipment', '/bill/SaleShipmentList', b'0', '0395', b'1', '电脑版', '1,2,7', 'car', '0' +FROM dual +WHERE NOT EXISTS (SELECT 1 FROM jsh_function WHERE number = '060304' OR url = '/bill/sale_shipment'); diff --git a/smtERP-boot/src/main/resources/db/migration/V20260915__production_plan_model.sql b/smtERP-boot/src/main/resources/db/migration/V20260915__production_plan_model.sql new file mode 100644 index 0000000..26a8a2c --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260915__production_plan_model.sql @@ -0,0 +1,43 @@ +-- 将旧“包装方案”模型升级为通用“生产方案”:一个生产成品 + 多个组成物料。 +-- 对旧方案中待包装产品与包装后成品不同的数据,将待包装产品迁移为组成物料。 +INSERT INTO tbl_pack_bom_item + (bom_id, material_id, material_extend_id, material_sku, unit, quantity, tenant_id, delete_flag) +SELECT pb.id, + pb.product_material_id, + pb.product_material_extend_id, + pb.product_sku, + m.unit, + CASE + WHEN IFNULL(pb.output_number, 0) > 0 THEN 1 / pb.output_number + ELSE 1 + END, + pb.tenant_id, + '0' +FROM tbl_pack_bom pb +JOIN tbl_material m ON m.id = pb.product_material_id +WHERE IFNULL(pb.delete_flag, '0') != '1' + AND pb.product_material_id IS NOT NULL + AND pb.output_material_id IS NOT NULL + AND pb.product_material_id != pb.output_material_id + AND NOT EXISTS ( + SELECT 1 + FROM tbl_pack_bom_item pbi + WHERE pbi.bom_id = pb.id + AND pbi.material_id = pb.product_material_id + AND IFNULL(pbi.delete_flag, '0') != '1' + ); + +-- product_* 和 output_number 作为兼容字段保留,新模型下分别同步成品和固定为1。 +UPDATE tbl_pack_bom +SET product_material_id = output_material_id, + product_material_extend_id = output_material_extend_id, + product_sku = output_sku, + output_number = 1 +WHERE IFNULL(delete_flag, '0') != '1' + AND output_material_id IS NOT NULL; + +-- 更新生产管理菜单名称。 +UPDATE tbl_function +SET name = '生产方案' +WHERE component = '/production/PackBomList' + OR url = '/production/pack_bom'; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260916_2__headquarters_inbound_menu.sql b/smtERP-boot/src/main/resources/db/migration/V20260916_2__headquarters_inbound_menu.sql new file mode 100644 index 0000000..13eeaba --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260916_2__headquarters_inbound_menu.sql @@ -0,0 +1,39 @@ +CREATE TABLE IF NOT EXISTS tbl_headquarters_inbound_item ( + id bigint NOT NULL AUTO_INCREMENT, + header_id bigint NOT NULL, + material_code varchar(100) NOT NULL, + material_name varchar(200) NOT NULL, + specification varchar(200) DEFAULT NULL, + qty decimal(24,6) NOT NULL, + unit_price decimal(24,6) DEFAULT NULL, + total_net_money decimal(24,6) DEFAULT NULL, + total_money decimal(24,6) DEFAULT NULL, + source_doc_no varchar(100) DEFAULT NULL, + delete_flag varchar(1) DEFAULT '0', + PRIMARY KEY (id), + KEY idx_headquarters_inbound_header (header_id), + KEY idx_headquarters_inbound_code (material_code) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='总部入库明细'; + +INSERT INTO tbl_function + (number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '080110', '总部入库', '0801', '/bill/headquarters_in', '/bill/HeadquartersInList', b'0', '0810', b'1', '电脑版', '1,2,3,7', 'profile', '0' +WHERE NOT EXISTS (SELECT 1 FROM tbl_function WHERE url = '/bill/headquarters_in'); + +-- 默认授予管理员角色完整权限;其他角色仍由“系统管理-角色管理”按需分配。 +UPDATE tbl_user_business ub +JOIN tbl_role r ON r.id = CAST(ub.key_id AS UNSIGNED) +JOIN tbl_function f ON f.url = '/bill/headquarters_in' +SET ub.value = CONCAT(IFNULL(ub.value, ''), '[', f.id, ']'), + ub.btn_str = CASE + WHEN ub.btn_str IS NULL OR ub.btn_str = '' THEN + CONCAT('[{"funId":', f.id, ',"btnStr":"1,2,3,7"}]') + ELSE + CONCAT(LEFT(ub.btn_str, CHAR_LENGTH(ub.btn_str) - 1), + ',{"funId":', f.id, ',"btnStr":"1,2,3,7"}]') + END +WHERE ub.type = 'RoleFunctions' + AND IFNULL(ub.delete_flag, '0') != '1' + AND IFNULL(r.delete_flag, '0') != '1' + AND r.name IN ('admin', '管理员') + AND LOCATE(CONCAT('[', f.id, ']'), IFNULL(ub.value, '')) = 0; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260916_3__headquarters_inbound_item_json.sql b/smtERP-boot/src/main/resources/db/migration/V20260916_3__headquarters_inbound_item_json.sql new file mode 100644 index 0000000..01a63f7 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260916_3__headquarters_inbound_item_json.sql @@ -0,0 +1,14 @@ +ALTER TABLE tbl_headquarters_inbound_item + ADD COLUMN item_json json DEFAULT NULL COMMENT '入库商品原始信息' AFTER total_money; + +UPDATE tbl_headquarters_inbound_item +SET item_json = JSON_OBJECT( + '成品物料代码', material_code, + '成品名称', material_name, + '规格型号', specification, + '出货量', qty, + '商品单价', unit_price, + '未税金额', total_net_money, + '价税合计', total_money +) +WHERE item_json IS NULL; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260916_4__headquarters_inbound_depot.sql b/smtERP-boot/src/main/resources/db/migration/V20260916_4__headquarters_inbound_depot.sql new file mode 100644 index 0000000..bce6f6b --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260916_4__headquarters_inbound_depot.sql @@ -0,0 +1,3 @@ +ALTER TABLE tbl_headquarters_inbound_item + ADD COLUMN depot_id bigint DEFAULT NULL COMMENT '入库仓库id' AFTER total_money, + ADD KEY idx_headquarters_inbound_depot (depot_id); diff --git a/smtERP-boot/src/main/resources/db/migration/V20260917_2__delivery_plan_tbl_function.sql b/smtERP-boot/src/main/resources/db/migration/V20260917_2__delivery_plan_tbl_function.sql new file mode 100644 index 0000000..6271e4f --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260917_2__delivery_plan_tbl_function.sql @@ -0,0 +1,23 @@ +SET NAMES utf8mb4; + +INSERT INTO tbl_function + (number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '060303', '交货计划管理', '0603', '/bill/delivery_plan', '/bill/DeliveryPlanList', b'0', '0394', b'1', '电脑版', '1,2,7', 'profile', '0' +WHERE NOT EXISTS (SELECT 1 FROM tbl_function WHERE number = '060303' OR url = '/bill/delivery_plan'); + +UPDATE tbl_user_business ub +JOIN tbl_role r ON r.id = CAST(ub.key_id AS UNSIGNED) +JOIN tbl_function f ON f.url = '/bill/delivery_plan' +SET ub.value = CONCAT(IFNULL(ub.value, ''), '[', f.id, ']'), + ub.btn_str = CASE + WHEN ub.btn_str IS NULL OR ub.btn_str = '' THEN + CONCAT('[{"funId":', f.id, ',"btnStr":"1,2,7"}]') + ELSE + CONCAT(LEFT(ub.btn_str, CHAR_LENGTH(ub.btn_str) - 1), + ',{"funId":', f.id, ',"btnStr":"1,2,7"}]') + END +WHERE ub.type = 'RoleFunctions' + AND IFNULL(ub.delete_flag, '0') != '1' + AND IFNULL(r.delete_flag, '0') != '1' + AND r.name IN ('admin', '管理员') + AND LOCATE(CONCAT('[', f.id, ']'), IFNULL(ub.value, '')) = 0; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260917_3__function_i18n.sql b/smtERP-boot/src/main/resources/db/migration/V20260917_3__function_i18n.sql new file mode 100644 index 0000000..5b695a7 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260917_3__function_i18n.sql @@ -0,0 +1,80 @@ +-- Menu/resource names are presentation data. Keep both languages in the database; +-- business data such as material names, customer names and remarks remains unchanged. +ALTER TABLE tbl_function + ADD COLUMN name_en varchar(100) DEFAULT NULL COMMENT 'English menu/resource name'; + +-- Existing records remain usable in Chinese until their English name is maintained. +-- New records should provide both name and name_en. + +UPDATE tbl_function SET name_en = CASE url + WHEN '/system' THEN 'System Management' + WHEN '/system/role' THEN 'Role Management' + WHEN '/system/user' THEN 'User Management' + WHEN '/system/log' THEN 'Log Management' + WHEN '/system/function' THEN 'Resource Menu' + WHEN '/system/tenant' THEN 'Tenant Management' + WHEN '/material' THEN 'Material Management' + WHEN '/material/material_category' THEN 'Material Categories' + WHEN '/material/material' THEN 'Materials' + WHEN '/material/material_property' THEN 'Material Properties' + WHEN '/material/material_attribute' THEN 'Material Attributes' + WHEN '/systemA' THEN 'Basic Data' + WHEN '/system/vendor' THEN 'Suppliers' + WHEN '/system/depot' THEN 'Warehouses' + WHEN '/system/person' THEN 'Business Persons' + WHEN '/system/in_out_item' THEN 'Income/Expense Items' + WHEN '/system/account' THEN 'Settlement Accounts' + WHEN '/system/customer' THEN 'Customers' + WHEN '/system/member' THEN 'Members' + WHEN '/system/unit' THEN 'Multiple Units' + WHEN '/system/system_config' THEN 'System Configuration' + WHEN '/system/organization' THEN 'Departments' + WHEN '/system/plugin' THEN 'Plugins' + WHEN '/system/platform_config' THEN 'Platform Configuration' + WHEN '/system/dict' THEN 'Dictionaries' + WHEN '/bill' THEN 'Purchase Management' + WHEN '/bill/purchase_in' THEN 'Purchase Inbound' + WHEN '/bill/purchase_back' THEN 'Purchase Return' + WHEN '/bill/purchase_order' THEN 'Purchase Orders' + WHEN '/bill/purchase_apply' THEN 'Purchase Requests' + WHEN '/billB' THEN 'Sales Management' + WHEN '/bill/sale_out' THEN 'Sales Outbound' + WHEN '/bill/sale_back' THEN 'Sales Return' + WHEN '/bill/sale_order' THEN 'Sales Orders' + WHEN '/bill/delivery_plan' THEN 'Delivery Plans' + WHEN '/bill/sale_shipment' THEN 'Sales Shipments' + WHEN '/billC' THEN 'Retail Management' + WHEN '/bill/retail_out' THEN 'Retail Outbound' + WHEN '/bill/retail_back' THEN 'Retail Return' + WHEN '/billD' THEN 'Warehouse Management' + WHEN '/bill/allocation_out' THEN 'Transfer Outbound' + WHEN '/bill/other_in' THEN 'Other Inbound' + WHEN '/bill/other_out' THEN 'Other Outbound' + WHEN '/bill/assemble' THEN 'Assembly' + WHEN '/bill/disassemble' THEN 'Disassembly' + WHEN '/bill/headquarters_in' THEN 'Headquarters Inbound' + WHEN '/financial' THEN 'Finance Management' + WHEN '/financial/item_in' THEN 'Income Voucher' + WHEN '/financial/item_out' THEN 'Expense Voucher' + WHEN '/financial/money_in' THEN 'Receipt Voucher' + WHEN '/financial/money_out' THEN 'Payment Voucher' + WHEN '/financial/giro' THEN 'Transfer Voucher' + WHEN '/financial/advance_in' THEN 'Advance Receipt' + WHEN '/report' THEN 'Reports' + WHEN '/report/in_out_stock_report' THEN 'Inventory In/Out Statistics' + WHEN '/report/account_report' THEN 'Account Statistics' + WHEN '/report/buy_in_report' THEN 'Purchase Statistics' + WHEN '/report/sale_out_report' THEN 'Sales Statistics' + WHEN '/report/retail_out_report' THEN 'Retail Statistics' + WHEN '/report/in_detail' THEN 'Inbound Details' + WHEN '/report/out_detail' THEN 'Outbound Details' + WHEN '/report/in_material_count' THEN 'Inbound Summary' + WHEN '/report/out_material_count' THEN 'Outbound Summary' + WHEN '/report/customer_account' THEN 'Customer Reconciliation' + WHEN '/report/vendor_account' THEN 'Supplier Reconciliation' + WHEN '/report/stock_warning_report' THEN 'Stock Warnings' + WHEN '/report/material_stock' THEN 'Material Stock' + WHEN '/report/allocation_detail' THEN 'Transfer Details' + ELSE name_en +END +WHERE name_en IS NULL OR name_en = ''; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260917__delivery_plan_shipment_flow.sql b/smtERP-boot/src/main/resources/db/migration/V20260917__delivery_plan_shipment_flow.sql new file mode 100644 index 0000000..bf7f81a --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260917__delivery_plan_shipment_flow.sql @@ -0,0 +1,61 @@ +SET NAMES utf8mb4; + +CREATE TABLE IF NOT EXISTS tbl_delivery_plan ( + id bigint(20) NOT NULL AUTO_INCREMENT, + plan_number varchar(64) NOT NULL COMMENT '交货计划单号', + source_type varchar(20) NOT NULL COMMENT '来源类型:sale销售出库、retail零售出库', + source_bill_id bigint(20) NOT NULL COMMENT '来源出库单id', + source_bill_number varchar(64) NOT NULL COMMENT '来源出库单号', + sale_order_number varchar(64) DEFAULT NULL COMMENT '关联销售订单号', + customer_id bigint(20) DEFAULT NULL COMMENT '客户/会员id', + status varchar(2) NOT NULL DEFAULT '0' COMMENT '状态:0待发货、1部分发货、2已完成', + planned_delivery_time datetime DEFAULT NULL COMMENT '计划交货时间', + adjust_reason varchar(500) DEFAULT NULL COMMENT '调整原因', + remark varchar(500) DEFAULT NULL COMMENT '备注', + create_time datetime DEFAULT NULL COMMENT '创建时间', + creator bigint(20) DEFAULT NULL COMMENT '创建人', + tenant_id bigint(20) DEFAULT NULL COMMENT '租户id', + delete_flag varchar(1) DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (id), + UNIQUE KEY uk_delivery_plan_number (plan_number), + KEY idx_delivery_plan_source_bill_id (source_bill_id), + KEY idx_delivery_plan_source_bill_number (source_bill_number), + KEY idx_delivery_plan_status (status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交货计划主表'; + +CREATE TABLE IF NOT EXISTS tbl_delivery_plan_item ( + id bigint(20) NOT NULL AUTO_INCREMENT, + plan_id bigint(20) NOT NULL COMMENT '交货计划id', + source_item_id bigint(20) NOT NULL COMMENT '来源出库明细id', + material_id bigint(20) DEFAULT NULL COMMENT '商品id', + material_extend_id bigint(20) DEFAULT NULL COMMENT '商品扩展id', + bar_code varchar(100) DEFAULT NULL COMMENT '条码', + material_name varchar(100) DEFAULT NULL COMMENT '商品名称', + standard varchar(100) DEFAULT NULL COMMENT '规格', + model varchar(100) DEFAULT NULL COMMENT '型号', + unit varchar(50) DEFAULT NULL COMMENT '单位', + batch_number varchar(100) DEFAULT NULL COMMENT '批号', + sn_list varchar(1000) DEFAULT NULL COMMENT '序列号', + plan_quantity decimal(24,6) DEFAULT 0 COMMENT '计划数量', + shipped_quantity decimal(24,6) DEFAULT 0 COMMENT '已发货数量', + depot_id bigint(20) DEFAULT NULL COMMENT '出库仓库id', + remark varchar(500) DEFAULT NULL COMMENT '备注', + tenant_id bigint(20) DEFAULT NULL COMMENT '租户id', + delete_flag varchar(1) DEFAULT '0' COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_delivery_plan_item_plan_id (plan_id), + KEY idx_delivery_plan_item_source_item_id (source_item_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交货计划明细'; + +ALTER TABLE tbl_sale_shipment + ADD COLUMN source_type varchar(20) DEFAULT 'sale' COMMENT '来源类型:sale销售出库、retail零售出库' AFTER shipment_number, + ADD COLUMN delivery_plan_id bigint(20) DEFAULT NULL COMMENT '交货计划id' AFTER source_type, + ADD COLUMN delivery_plan_number varchar(64) DEFAULT NULL COMMENT '交货计划单号' AFTER delivery_plan_id; + +ALTER TABLE tbl_sale_shipment_item + ADD COLUMN delivery_plan_item_id bigint(20) DEFAULT NULL COMMENT '交货计划明细id' AFTER shipment_id; + +INSERT INTO jsh_function (number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '060303', '交货计划管理', '0603', '/bill/delivery_plan', '/bill/DeliveryPlanList', b'0', '0394', b'1', '电脑版', '1,2,7', 'profile', '0' +FROM dual +WHERE NOT EXISTS (SELECT 1 FROM jsh_function WHERE number = '060303' OR url = '/bill/delivery_plan'); diff --git a/smtERP-boot/src/main/resources/db/migration/V20260918_2__asset_management_demo_data.sql b/smtERP-boot/src/main/resources/db/migration/V20260918_2__asset_management_demo_data.sql new file mode 100644 index 0000000..88c3f54 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260918_2__asset_management_demo_data.sql @@ -0,0 +1,68 @@ +SET NAMES utf8mb4; + +-- 专业 SMT 场景演示数据。全部语句均可重复执行,不会生成重复台账。 +SET @tenant_id := COALESCE((SELECT tenant_id FROM tbl_person ORDER BY id LIMIT 1), 63); +SET @creator_id := COALESCE((SELECT id FROM tbl_user ORDER BY id LIMIT 1), 1); + +INSERT INTO tbl_person (type, name, enabled, sort, tenant_id, delete_flag) +SELECT seed.type, seed.name, b'1', seed.sort, @tenant_id, '0' +FROM ( + SELECT '资产管理员' type, '张伟' name, '10' sort + UNION ALL SELECT '设备工程师', '陈晨', '20' + UNION ALL SELECT '生产主管', '王磊', '30' + UNION ALL SELECT 'IT运维工程师', '赵敏', '40' +) seed +WHERE NOT EXISTS ( + SELECT 1 FROM tbl_person p + WHERE p.tenant_id=@tenant_id AND p.name=seed.name AND IFNULL(p.delete_flag,'0')!='1' +); + +INSERT INTO tbl_asset + (asset_code, asset_name, asset_category, specification, unit, quantity, original_value, purchase_date, + use_department, keeper, location, status, source, remark, creator, delete_flag, create_time, update_time) +SELECT seed.asset_code, seed.asset_name, seed.asset_category, seed.specification, '台', 1, seed.original_value, + seed.purchase_date, seed.use_department, seed.keeper, seed.location, seed.status, 'DEMO', seed.remark, + @creator_id, '0', NOW(), NOW() +FROM ( + SELECT 'FA-SMT-2024-001' asset_code, 'SMT 高速贴片生产线' asset_name, '生产设备' asset_category, + 'Panasonic NPM-D3A 双轨配置' specification, 2850000.00 original_value, '2024-03-18' purchase_date, + 'SMT生产部' use_department, '王磊' keeper, '一车间 SMT-01 线' location, 'IN_USE' status, + '关键设备,按月盘点并执行点检保养' remark + UNION ALL SELECT 'FA-SMT-2024-002', '十温区氮气回流焊系统', '生产设备', 'HELLER 1936MK7', 980000.00, '2024-03-18', 'SMT生产部', '王磊', '一车间 SMT-01 线', 'IN_USE', '炉温曲线纳入工艺受控文件' + UNION ALL SELECT 'FA-QC-2024-003', '在线 3D AOI 检测系统', '检测设备', 'Koh Young Zenith 2', 1350000.00, '2024-04-06', '品质部', '陈晨', '一车间 AOI 检测区', 'IN_USE', '用于焊后外观与三维缺陷检测' + UNION ALL SELECT 'FA-QC-2024-004', '在线 3D SPI 检测系统', '检测设备', 'Koh Young KY8030-3', 1120000.00, '2024-04-06', '品质部', '陈晨', '一车间 印刷检测区', 'IN_USE', '用于锡膏体积、高度及偏移检测' + UNION ALL SELECT 'FA-UTIL-2023-005', '螺杆式空气压缩机', '动力设备', 'Atlas Copco GA22 VSD+', 186000.00, '2023-11-20', '设备动力部', '陈晨', '动力站 1 号机位', 'IN_USE', '为 SMT 车间提供稳定压缩空气' + UNION ALL SELECT 'FA-IT-2025-006', 'MES 数据库服务器', 'IT设备', 'Dell PowerEdge R760', 168000.00, '2025-01-15', '信息技术部', '赵敏', '数据中心 A03 机柜', 'IN_USE', '双机热备主节点,纳入信息安全资产清单' + UNION ALL SELECT 'FA-WH-2024-007', '电动平衡重式叉车', '物流设备', 'Toyota 8FBE20', 145000.00, '2024-07-22', '仓储物流部', '张伟', '原材料仓充电区', 'IN_USE', '额定载荷 2.0 吨,持证人员操作' + UNION ALL SELECT 'FA-TOOL-2025-008', '全自动钢网清洗机', '工装设备', 'SAWA SC-A1000', 78000.00, '2025-02-10', 'SMT生产部', '王磊', '一车间 钢网房', 'IN_USE', '用于钢网水基闭环清洗与烘干' +) seed +WHERE NOT EXISTS ( + SELECT 1 FROM tbl_asset a WHERE a.asset_code=seed.asset_code AND IFNULL(a.delete_flag,'0')!='1' +); + +INSERT INTO tbl_asset_device + (asset_id, device_code, device_name, device_category, model, serial_number, manufacturer, purchase_date, + enabled_date, use_department, keeper, location, status, next_maintenance_date, remark, + creator, delete_flag, create_time, update_time) +SELECT (SELECT a.id FROM tbl_asset a WHERE a.asset_code=seed.asset_code AND IFNULL(a.delete_flag,'0')!='1' ORDER BY a.id DESC LIMIT 1), + seed.device_code, seed.device_name, seed.device_category, seed.model, seed.serial_number, seed.manufacturer, + seed.purchase_date, seed.enabled_date, seed.use_department, seed.keeper, seed.location, seed.status, + seed.next_maintenance_date, seed.remark, @creator_id, '0', NOW(), NOW() +FROM ( + SELECT 'FA-SMT-2024-001' asset_code, 'SMT-L01-PRINTER-01' device_code, '全自动锡膏印刷机' device_name, '印刷设备' device_category, + 'DEK NeoHorizon 03iX' model, 'DEK24NH03187' serial_number, 'ASMPT' manufacturer, '2024-03-18' purchase_date, + '2024-04-08' enabled_date, 'SMT生产部' use_department, '王磊' keeper, '一车间 SMT-01 线前段' location, + 'IN_USE' status, '2026-10-08' next_maintenance_date, '配置 2D 检测与自动擦网单元' remark + UNION ALL SELECT 'FA-SMT-2024-001', 'SMT-L01-MOUNTER-A', '高速模块贴片机 A', '贴装设备', 'Panasonic NPM-D3A', 'NPMD3A24031801', 'Panasonic', '2024-03-18', '2024-04-08', 'SMT生产部', '王磊', '一车间 SMT-01 线 A 工位', 'IN_USE', '2026-10-15', '前段高速贴装,配置 16 头轻量贴装头' + UNION ALL SELECT 'FA-SMT-2024-001', 'SMT-L01-MOUNTER-B', '多功能贴片机 B', '贴装设备', 'Panasonic NPM-W2S', 'NPMW2S24031802', 'Panasonic', '2024-03-18', '2024-04-08', 'SMT生产部', '王磊', '一车间 SMT-01 线 B 工位', 'IN_USE', '2026-10-16', '负责异形件及高精度元件贴装' + UNION ALL SELECT 'FA-SMT-2024-002', 'SMT-L01-REFLOW-01', '十温区氮气回流焊炉', '焊接设备', 'HELLER 1936MK7', 'HLR1936-2403268', 'Heller Industries', '2024-03-18', '2024-04-10', 'SMT生产部', '王磊', '一车间 SMT-01 线后段', 'IN_USE', '2026-10-20', '氮气闭环控制,支持双轨独立调宽' + UNION ALL SELECT 'FA-QC-2024-003', 'QC-AOI-01', '在线 3D AOI', '检测设备', 'Zenith 2', 'KY-Z2-24040615', 'Koh Young', '2024-04-06', '2024-04-18', '品质部', '陈晨', '一车间 AOI 检测区', 'IN_USE', '2026-11-05', '具备 AI 缺陷复判和 SPC 数据接口' + UNION ALL SELECT 'FA-QC-2024-004', 'QC-SPI-01', '在线 3D SPI', '检测设备', 'KY8030-3', 'KY-8030-24040608', 'Koh Young', '2024-04-06', '2024-04-18', '品质部', '陈晨', '一车间 印刷检测区', 'IN_USE', '2026-11-06', '与印刷机闭环反馈锡膏偏移数据' + UNION ALL SELECT 'FA-UTIL-2023-005', 'UTIL-AIR-01', '变频螺杆空压机', '动力设备', 'GA22 VSD+', 'AC-GA22-2311209', 'Atlas Copco', '2023-11-20', '2023-12-01', '设备动力部', '陈晨', '动力站 1 号机位', 'IN_USE', '2026-10-01', '运行压力 0.72MPa,接入能源管理系统' + UNION ALL SELECT 'FA-IT-2025-006', 'IT-MES-DB-01', 'MES 数据库主服务器', '服务器', 'PowerEdge R760', 'CN-R760-25011501', 'Dell', '2025-01-15', '2025-01-22', '信息技术部', '赵敏', '数据中心 A03-U18', 'IN_USE', '2026-12-15', '双路 CPU、512GB 内存、全闪存 RAID10' + UNION ALL SELECT 'FA-WH-2024-007', 'WH-FORKLIFT-01', '2 吨电动叉车', '物流设备', '8FBE20', 'TY-8FBE20-240722', 'Toyota', '2024-07-22', '2024-08-01', '仓储物流部', '张伟', '原材料仓充电区', 'IN_USE', '2026-10-25', '锂电池版本,配置蓝光安全警示灯' + UNION ALL SELECT 'FA-TOOL-2025-008', 'TOOL-STENCIL-CLEAN-01', '全自动钢网清洗机', '工装设备', 'SC-A1000', 'SAWA-A1000-250210', 'SAWA', '2025-02-10', '2025-02-18', 'SMT生产部', '王磊', '一车间 钢网房', 'IN_USE', '2026-11-10', '水基清洗、漂洗、热风干燥一体化' +) seed +WHERE NOT EXISTS ( + SELECT 1 FROM tbl_asset_device d WHERE d.device_code=seed.device_code AND IFNULL(d.delete_flag,'0')!='1' +); diff --git a/smtERP-boot/src/main/resources/db/migration/V20260918_3__legacy_inventory_api.sql b/smtERP-boot/src/main/resources/db/migration/V20260918_3__legacy_inventory_api.sql new file mode 100644 index 0000000..c9f6dcf --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260918_3__legacy_inventory_api.sql @@ -0,0 +1,30 @@ +SET NAMES utf8mb4; + +ALTER TABLE tbl_asset_inventory_detail + ADD COLUMN image_group_id varchar(64) DEFAULT NULL COMMENT '原盘点接口图片组ID' AFTER remark; + +CREATE TABLE IF NOT EXISTS tbl_asset_inventory_file ( + id bigint(20) NOT NULL AUTO_INCREMENT, + group_id varchar(64) NOT NULL, + inventory_detail_id bigint(20) NOT NULL, + original_name varchar(255) DEFAULT NULL, + file_path varchar(500) NOT NULL, + content_type varchar(100) DEFAULT NULL, + file_size bigint(20) DEFAULT NULL, + creator bigint(20) DEFAULT NULL, + create_time datetime DEFAULT NULL, + PRIMARY KEY (id), + KEY idx_asset_inventory_file_group (group_id), + KEY idx_asset_inventory_file_detail (inventory_detail_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='盘点现场图片'; + +CREATE TABLE IF NOT EXISTS tbl_asset_inventory_operation ( + id bigint(20) NOT NULL AUTO_INCREMENT, + inventory_id bigint(20) NOT NULL, + operate_type varchar(8) NOT NULL COMMENT '2接单、3转单、4盘点', + operator_user_id bigint(20) DEFAULT NULL, + operate_time datetime NOT NULL, + remark varchar(500) DEFAULT NULL, + PRIMARY KEY (id), + KEY idx_asset_inventory_operation (inventory_id, operate_time) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='盘点执行记录'; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260918__asset_management.sql b/smtERP-boot/src/main/resources/db/migration/V20260918__asset_management.sql new file mode 100644 index 0000000..0b1b6e7 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260918__asset_management.sql @@ -0,0 +1,163 @@ +SET NAMES utf8mb4; + +CREATE TABLE IF NOT EXISTS tbl_asset ( + id bigint(20) NOT NULL AUTO_INCREMENT, + asset_code varchar(64) NOT NULL COMMENT '资产编号', + asset_name varchar(150) NOT NULL COMMENT '资产名称', + asset_category varchar(100) DEFAULT NULL COMMENT '资产分类', + specification varchar(150) DEFAULT NULL COMMENT '规格型号', + unit varchar(20) DEFAULT '项' COMMENT '计量单位', + quantity decimal(24,6) NOT NULL DEFAULT 1 COMMENT '账面数量', + original_value decimal(24,6) NOT NULL DEFAULT 0 COMMENT '资产原值', + purchase_date date DEFAULT NULL COMMENT '购置日期', + use_department varchar(100) DEFAULT NULL COMMENT '使用部门', + keeper varchar(100) DEFAULT NULL COMMENT '保管人', + location varchar(255) DEFAULT NULL COMMENT '存放地点', + status varchar(32) NOT NULL DEFAULT 'IN_USE' COMMENT '状态:IDLE/IN_USE/REPAIR/SCRAPPED', + source varchar(32) DEFAULT 'MANUAL' COMMENT '数据来源', + remark varchar(500) DEFAULT NULL COMMENT '备注', + creator bigint(20) DEFAULT NULL, + updater bigint(20) DEFAULT NULL, + delete_flag varchar(1) DEFAULT '0', + create_time datetime DEFAULT NULL, + update_time datetime DEFAULT NULL, + PRIMARY KEY (id), + KEY idx_asset_code (asset_code), + KEY idx_asset_status (status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产台账'; + +CREATE TABLE IF NOT EXISTS tbl_asset_device ( + id bigint(20) NOT NULL AUTO_INCREMENT, + asset_id bigint(20) DEFAULT NULL COMMENT '关联资产id', + device_code varchar(64) NOT NULL COMMENT '设备编号', + device_name varchar(150) NOT NULL COMMENT '设备名称', + device_category varchar(100) DEFAULT NULL COMMENT '设备分类', + model varchar(150) DEFAULT NULL COMMENT '设备型号', + serial_number varchar(150) DEFAULT NULL COMMENT '出厂序列号', + manufacturer varchar(150) DEFAULT NULL COMMENT '制造商', + purchase_date date DEFAULT NULL, + enabled_date date DEFAULT NULL COMMENT '启用日期', + use_department varchar(100) DEFAULT NULL, + keeper varchar(100) DEFAULT NULL, + location varchar(255) DEFAULT NULL, + status varchar(32) NOT NULL DEFAULT 'IN_USE' COMMENT '状态:IDLE/IN_USE/REPAIR/STOPPED/SCRAPPED', + last_inventory_time datetime DEFAULT NULL COMMENT '最近盘点时间', + next_maintenance_date date DEFAULT NULL COMMENT '下次保养日期', + remark varchar(500) DEFAULT NULL, + creator bigint(20) DEFAULT NULL, + updater bigint(20) DEFAULT NULL, + delete_flag varchar(1) DEFAULT '0', + create_time datetime DEFAULT NULL, + update_time datetime DEFAULT NULL, + PRIMARY KEY (id), + KEY idx_asset_device_code (device_code), + KEY idx_asset_device_asset (asset_id), + KEY idx_asset_device_status (status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备台账'; + +CREATE TABLE IF NOT EXISTS tbl_asset_inventory ( + id bigint(20) NOT NULL AUTO_INCREMENT, + inventory_no varchar(64) NOT NULL COMMENT '盘点单号', + plan_name varchar(150) NOT NULL COMMENT '盘点计划名称', + scope_type varchar(16) NOT NULL DEFAULT 'DEVICE' COMMENT '范围:ASSET/DEVICE/ALL', + planned_at datetime DEFAULT NULL COMMENT '计划盘点时间', + deadline datetime DEFAULT NULL COMMENT '截止时间', + status varchar(32) NOT NULL DEFAULT 'DRAFT' COMMENT 'DRAFT/ACCEPTED/IN_PROGRESS/PENDING_AUDIT/COMPLETED/CLOSED', + total_count int NOT NULL DEFAULT 0, + inventoried_count int NOT NULL DEFAULT 0, + normal_count int NOT NULL DEFAULT 0, + abnormal_count int NOT NULL DEFAULT 0, + inventory_user_id bigint(20) DEFAULT NULL, + inventory_user_name varchar(100) DEFAULT NULL, + started_at datetime DEFAULT NULL, + completed_at datetime DEFAULT NULL, + audit_user_id bigint(20) DEFAULT NULL, + audit_time datetime DEFAULT NULL, + source varchar(32) DEFAULT 'MANUAL' COMMENT 'MANUAL/COLLABORATION/TPM_DOUBLE', + external_request_id varchar(100) DEFAULT NULL COMMENT '协同服务请求号(幂等键)', + remark varchar(500) DEFAULT NULL, + creator bigint(20) DEFAULT NULL, + updater bigint(20) DEFAULT NULL, + delete_flag varchar(1) DEFAULT '0', + create_time datetime DEFAULT NULL, + update_time datetime DEFAULT NULL, + PRIMARY KEY (id), + UNIQUE KEY uk_asset_inventory_no (inventory_no), + UNIQUE KEY uk_asset_inventory_external (external_request_id), + KEY idx_asset_inventory_status (status) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产盘点单'; + +CREATE TABLE IF NOT EXISTS tbl_asset_inventory_detail ( + id bigint(20) NOT NULL AUTO_INCREMENT, + inventory_id bigint(20) NOT NULL, + target_type varchar(16) NOT NULL COMMENT 'ASSET/DEVICE', + target_id bigint(20) NOT NULL, + target_code varchar(64) NOT NULL, + target_name varchar(150) NOT NULL, + model varchar(150) DEFAULT NULL, + book_quantity decimal(24,6) NOT NULL DEFAULT 1, + actual_quantity decimal(24,6) NOT NULL DEFAULT 0, + inventory_status varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT 'PENDING/NORMAL/SURPLUS/SHORTAGE/ABNORMAL', + book_department varchar(100) DEFAULT NULL, + actual_department varchar(100) DEFAULT NULL, + book_location varchar(255) DEFAULT NULL, + actual_location varchar(255) DEFAULT NULL, + inventory_time datetime DEFAULT NULL, + inventory_user_id bigint(20) DEFAULT NULL, + inventory_user_name varchar(100) DEFAULT NULL, + remark varchar(500) DEFAULT NULL, + create_time datetime DEFAULT NULL, + update_time datetime DEFAULT NULL, + PRIMARY KEY (id), + UNIQUE KEY uk_asset_inventory_target (inventory_id, target_type, target_id), + KEY idx_asset_inventory_detail_status (inventory_id, inventory_status), + KEY idx_asset_inventory_detail_code (target_code) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产盘点快照明细'; + +INSERT INTO tbl_function + (number, name, name_en, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '0902', '资产管理', 'Asset Management', '0', '/assetManagement', '/layouts/TabLayout', b'0', '0490', b'1', '电脑版', '', 'bank', '0' +WHERE NOT EXISTS (SELECT 1 FROM tbl_function WHERE number='0902' OR url='/assetManagement'); + +INSERT INTO tbl_function + (number, name, name_en, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '090201', '资产台账', 'Asset Ledger', '0902', '/asset/ledger', '/asset/AssetList', b'0', '0491', b'1', '电脑版', '1,2,3', 'profile', '0' +WHERE NOT EXISTS (SELECT 1 FROM tbl_function WHERE number='090201' OR url='/asset/ledger'); + +INSERT INTO tbl_function + (number, name, name_en, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '090202', '设备台账', 'Device Ledger', '0902', '/asset/device', '/asset/DeviceList', b'0', '0492', b'1', '电脑版', '1,2,3', 'tool', '0' +WHERE NOT EXISTS (SELECT 1 FROM tbl_function WHERE number='090202' OR url='/asset/device'); + +INSERT INTO tbl_function + (number, name, name_en, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '090203', '资产盘点', 'Asset Inventory', '0902', '/asset/inventory', '/asset/InventoryList', b'0', '0493', b'1', '电脑版', '1,2,3,4,5,6', 'scan', '0' +WHERE NOT EXISTS (SELECT 1 FROM tbl_function WHERE number='090203' OR url='/asset/inventory'); + +UPDATE tbl_user_business ub +JOIN tbl_role r ON r.id=CAST(ub.key_id AS UNSIGNED) +JOIN tbl_function f ON f.number='0902' +SET ub.value=CONCAT(IFNULL(ub.value,''), '[', f.id, ']') +WHERE ub.type='RoleFunctions' AND IFNULL(ub.delete_flag,'0')!='1' AND IFNULL(r.delete_flag,'0')!='1' + AND r.name IN ('admin','管理员') AND LOCATE(CONCAT('[',f.id,']'),IFNULL(ub.value,''))=0; + +UPDATE tbl_user_business ub +JOIN tbl_role r ON r.id=CAST(ub.key_id AS UNSIGNED) +JOIN tbl_function f ON f.number='090201' +SET ub.value=CONCAT(IFNULL(ub.value,''), '[', f.id, ']') +WHERE ub.type='RoleFunctions' AND IFNULL(ub.delete_flag,'0')!='1' AND IFNULL(r.delete_flag,'0')!='1' + AND r.name IN ('admin','管理员') AND LOCATE(CONCAT('[',f.id,']'),IFNULL(ub.value,''))=0; + +UPDATE tbl_user_business ub +JOIN tbl_role r ON r.id=CAST(ub.key_id AS UNSIGNED) +JOIN tbl_function f ON f.number='090202' +SET ub.value=CONCAT(IFNULL(ub.value,''), '[', f.id, ']') +WHERE ub.type='RoleFunctions' AND IFNULL(ub.delete_flag,'0')!='1' AND IFNULL(r.delete_flag,'0')!='1' + AND r.name IN ('admin','管理员') AND LOCATE(CONCAT('[',f.id,']'),IFNULL(ub.value,''))=0; + +UPDATE tbl_user_business ub +JOIN tbl_role r ON r.id=CAST(ub.key_id AS UNSIGNED) +JOIN tbl_function f ON f.number='090203' +SET ub.value=CONCAT(IFNULL(ub.value,''), '[', f.id, ']') +WHERE ub.type='RoleFunctions' AND IFNULL(ub.delete_flag,'0')!='1' AND IFNULL(r.delete_flag,'0')!='1' + AND r.name IN ('admin','管理员') AND LOCATE(CONCAT('[',f.id,']'),IFNULL(ub.value,''))=0; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260920__fill_function_name_en.sql b/smtERP-boot/src/main/resources/db/migration/V20260920__fill_function_name_en.sql new file mode 100644 index 0000000..bef64a0 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260920__fill_function_name_en.sql @@ -0,0 +1,86 @@ +-- Fill the English display name for every active resource menu. +-- The URL is used as the stable key because legacy data contains duplicate menu numbers. +UPDATE tbl_function +SET name_en = CASE url + WHEN '/billB' THEN 'Sales Management' + WHEN '/bill' THEN 'Purchase Management' + WHEN '/production' THEN 'Production Management' + WHEN '/billD' THEN 'Warehouse Management' + WHEN '/financial' THEN 'Finance Management' + WHEN '/assetManagement' THEN 'Asset Management' + WHEN '/material' THEN 'Product Management' + WHEN '/report' THEN 'Reports' + WHEN '/systemA' THEN 'Master Data' + WHEN '/system' THEN 'System Management' + WHEN '/billC' THEN 'Retail Management' + WHEN '/system/role' THEN 'Role Management' + WHEN '/system/user' THEN 'User Management' + WHEN '/system/organization' THEN 'Department Management' + WHEN '/system/log' THEN 'Log Management' + WHEN '/material/material_property' THEN 'Product Properties' + WHEN '/system/system_config' THEN 'System Configuration' + WHEN '/system/function' THEN 'Resource Menus' + WHEN '/system/tenant' THEN 'Tenant Management' + WHEN '/system/plugin' THEN 'Plugin Management' + WHEN '/system/dict' THEN 'Dictionary Management' + WHEN '/system/platform_config' THEN 'Platform Configuration' + WHEN '/material/material_category' THEN 'Product Categories' + WHEN '/material/material' THEN 'Product Information' + WHEN '/system/unit' THEN 'Multiple Units' + WHEN '/material/material_attribute' THEN 'Product Attributes' + WHEN '/system/vendor' THEN 'Suppliers' + WHEN '/system/customer' THEN 'Customers' + WHEN '/system/member' THEN 'Members' + WHEN '/system/customerCategory' THEN 'Customer Categories' + WHEN '/system/depot' THEN 'Warehouses' + WHEN '/system/in_out_item' THEN 'Income and Expense Items' + WHEN '/system/account' THEN 'Settlement Accounts' + WHEN '/system/person' THEN 'Operators' + WHEN '/bill/purchase_apply' THEN 'Purchase Requisitions' + WHEN '/bill/purchase_order' THEN 'Purchase Orders' + WHEN '/bill/purchase_in' THEN 'Purchase Receipts' + WHEN '/bill/purchase_back' THEN 'Purchase Returns' + WHEN '/bill/sale_order' THEN 'Sales Orders' + WHEN '/bill/sale_out' THEN 'Sales Shipments' + WHEN '/bill/delivery_plan' THEN 'Delivery Plans' + WHEN '/bill/sale_shipment' THEN 'Shipment Management' + WHEN '/bill/sale_back' THEN 'Sales Returns' + WHEN '/bill/retail_out' THEN 'Retail Shipments' + WHEN '/bill/retail_back' THEN 'Retail Returns' + WHEN '/financial/item_in' THEN 'Income Vouchers' + WHEN '/financial/item_out' THEN 'Expense Vouchers' + WHEN '/financial/money_in' THEN 'Receipt Vouchers' + WHEN '/financial/money_out' THEN 'Payment Vouchers' + WHEN '/production/pack_bom' THEN 'Production BOMs' + WHEN '/production/order' THEN 'Production Orders' + WHEN '/production/requisition' THEN 'Material Requisitions' + WHEN '/production/report' THEN 'Production Reports' + WHEN '/financial/giro' THEN 'Transfer Vouchers' + WHEN '/asset/ledger' THEN 'Asset Ledger' + WHEN '/asset/device' THEN 'Device Ledger' + WHEN '/asset/inventory' THEN 'Asset Inventory' + WHEN '/financial/advance_in' THEN 'Advance Receipts' + WHEN '/report/material_stock' THEN 'Product Inventory' + WHEN '/report/account_report' THEN 'Account Summary' + WHEN '/report/retail_out_report' THEN 'Retail Summary' + WHEN '/report/buy_in_report' THEN 'Purchase Summary' + WHEN '/report/sale_out_report' THEN 'Sales Summary' + WHEN '/report/in_detail' THEN 'Inbound Details' + WHEN '/report/out_detail' THEN 'Outbound Details' + WHEN '/report/allocation_detail' THEN 'Transfer Details' + WHEN '/report/in_material_count' THEN 'Inbound Summary' + WHEN '/report/out_material_count' THEN 'Outbound Summary' + WHEN '/report/in_out_stock_report' THEN 'Inventory Transaction Summary' + WHEN '/report/customer_account' THEN 'Customer Reconciliation' + WHEN '/report/vendor_account' THEN 'Supplier Reconciliation' + WHEN '/report/stock_warning_report' THEN 'Stock Alerts' + WHEN '/bill/other_in' THEN 'Other Receipts' + WHEN '/bill/other_out' THEN 'Other Shipments' + WHEN '/bill/allocation_out' THEN 'Stock Transfers' + WHEN '/bill/assemble' THEN 'Assembly Orders' + WHEN '/bill/headquarters_in' THEN 'Headquarters Receipts' + WHEN '/bill/disassemble' THEN 'Disassembly Orders' + ELSE name_en +END +WHERE IFNULL(delete_flag, '0') != '1'; + diff --git a/smtERP-boot/src/main/resources/db/migration/V20260921_2__log_api_fields_and_monthly_partitions.sql b/smtERP-boot/src/main/resources/db/migration/V20260921_2__log_api_fields_and_monthly_partitions.sql new file mode 100644 index 0000000..096cf64 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260921_2__log_api_fields_and_monthly_partitions.sql @@ -0,0 +1,150 @@ +-- 日志扩展字段及按创建时间的月分区。 +-- MySQL 分区表要求所有唯一键包含分区键,因此主键调整为 (id, create_time)。 +ALTER TABLE tbl_log + ADD COLUMN request_url VARCHAR(1000) NULL COMMENT '请求URL' AFTER tenant_id, + ADD COLUMN request_params LONGTEXT NULL COMMENT '请求入参' AFTER request_url, + ADD COLUMN response_params LONGTEXT NULL COMMENT '请求出参' AFTER request_params; + +UPDATE tbl_log SET create_time = CURRENT_TIMESTAMP WHERE create_time IS NULL; + +ALTER TABLE tbl_log + MODIFY COLUMN create_time DATETIME NOT NULL COMMENT '创建时间', + DROP PRIMARY KEY, + ADD PRIMARY KEY (id, create_time), + PARTITION BY RANGE COLUMNS(create_time) ( + PARTITION p_before_2025 VALUES LESS THAN ('2025-01-01'), + PARTITION p202501 VALUES LESS THAN ('2025-02-01'), + PARTITION p202502 VALUES LESS THAN ('2025-03-01'), + PARTITION p202503 VALUES LESS THAN ('2025-04-01'), + PARTITION p202504 VALUES LESS THAN ('2025-05-01'), + PARTITION p202505 VALUES LESS THAN ('2025-06-01'), + PARTITION p202506 VALUES LESS THAN ('2025-07-01'), + PARTITION p202507 VALUES LESS THAN ('2025-08-01'), + PARTITION p202508 VALUES LESS THAN ('2025-09-01'), + PARTITION p202509 VALUES LESS THAN ('2025-10-01'), + PARTITION p202510 VALUES LESS THAN ('2025-11-01'), + PARTITION p202511 VALUES LESS THAN ('2025-12-01'), + PARTITION p202512 VALUES LESS THAN ('2026-01-01'), + PARTITION p202601 VALUES LESS THAN ('2026-02-01'), + PARTITION p202602 VALUES LESS THAN ('2026-03-01'), + PARTITION p202603 VALUES LESS THAN ('2026-04-01'), + PARTITION p202604 VALUES LESS THAN ('2026-05-01'), + PARTITION p202605 VALUES LESS THAN ('2026-06-01'), + PARTITION p202606 VALUES LESS THAN ('2026-07-01'), + PARTITION p202607 VALUES LESS THAN ('2026-08-01'), + PARTITION p202608 VALUES LESS THAN ('2026-09-01'), + PARTITION p202609 VALUES LESS THAN ('2026-10-01'), + PARTITION p202610 VALUES LESS THAN ('2026-11-01'), + PARTITION p202611 VALUES LESS THAN ('2026-12-01'), + PARTITION p202612 VALUES LESS THAN ('2027-01-01'), + PARTITION p202701 VALUES LESS THAN ('2027-02-01'), + PARTITION p202702 VALUES LESS THAN ('2027-03-01'), + PARTITION p202703 VALUES LESS THAN ('2027-04-01'), + PARTITION p202704 VALUES LESS THAN ('2027-05-01'), + PARTITION p202705 VALUES LESS THAN ('2027-06-01'), + PARTITION p202706 VALUES LESS THAN ('2027-07-01'), + PARTITION p202707 VALUES LESS THAN ('2027-08-01'), + PARTITION p202708 VALUES LESS THAN ('2027-09-01'), + PARTITION p202709 VALUES LESS THAN ('2027-10-01'), + PARTITION p202710 VALUES LESS THAN ('2027-11-01'), + PARTITION p202711 VALUES LESS THAN ('2027-12-01'), + PARTITION p202712 VALUES LESS THAN ('2028-01-01'), + PARTITION p202801 VALUES LESS THAN ('2028-02-01'), + PARTITION p202802 VALUES LESS THAN ('2028-03-01'), + PARTITION p202803 VALUES LESS THAN ('2028-04-01'), + PARTITION p202804 VALUES LESS THAN ('2028-05-01'), + PARTITION p202805 VALUES LESS THAN ('2028-06-01'), + PARTITION p202806 VALUES LESS THAN ('2028-07-01'), + PARTITION p202807 VALUES LESS THAN ('2028-08-01'), + PARTITION p202808 VALUES LESS THAN ('2028-09-01'), + PARTITION p202809 VALUES LESS THAN ('2028-10-01'), + PARTITION p202810 VALUES LESS THAN ('2028-11-01'), + PARTITION p202811 VALUES LESS THAN ('2028-12-01'), + PARTITION p202812 VALUES LESS THAN ('2029-01-01'), + PARTITION p202901 VALUES LESS THAN ('2029-02-01'), + PARTITION p202902 VALUES LESS THAN ('2029-03-01'), + PARTITION p202903 VALUES LESS THAN ('2029-04-01'), + PARTITION p202904 VALUES LESS THAN ('2029-05-01'), + PARTITION p202905 VALUES LESS THAN ('2029-06-01'), + PARTITION p202906 VALUES LESS THAN ('2029-07-01'), + PARTITION p202907 VALUES LESS THAN ('2029-08-01'), + PARTITION p202908 VALUES LESS THAN ('2029-09-01'), + PARTITION p202909 VALUES LESS THAN ('2029-10-01'), + PARTITION p202910 VALUES LESS THAN ('2029-11-01'), + PARTITION p202911 VALUES LESS THAN ('2029-12-01'), + PARTITION p202912 VALUES LESS THAN ('2030-01-01'), + PARTITION p203001 VALUES LESS THAN ('2030-02-01'), + PARTITION p203002 VALUES LESS THAN ('2030-03-01'), + PARTITION p203003 VALUES LESS THAN ('2030-04-01'), + PARTITION p203004 VALUES LESS THAN ('2030-05-01'), + PARTITION p203005 VALUES LESS THAN ('2030-06-01'), + PARTITION p203006 VALUES LESS THAN ('2030-07-01'), + PARTITION p203007 VALUES LESS THAN ('2030-08-01'), + PARTITION p203008 VALUES LESS THAN ('2030-09-01'), + PARTITION p203009 VALUES LESS THAN ('2030-10-01'), + PARTITION p203010 VALUES LESS THAN ('2030-11-01'), + PARTITION p203011 VALUES LESS THAN ('2030-12-01'), + PARTITION p203012 VALUES LESS THAN ('2031-01-01'), + PARTITION p203101 VALUES LESS THAN ('2031-02-01'), + PARTITION p203102 VALUES LESS THAN ('2031-03-01'), + PARTITION p203103 VALUES LESS THAN ('2031-04-01'), + PARTITION p203104 VALUES LESS THAN ('2031-05-01'), + PARTITION p203105 VALUES LESS THAN ('2031-06-01'), + PARTITION p203106 VALUES LESS THAN ('2031-07-01'), + PARTITION p203107 VALUES LESS THAN ('2031-08-01'), + PARTITION p203108 VALUES LESS THAN ('2031-09-01'), + PARTITION p203109 VALUES LESS THAN ('2031-10-01'), + PARTITION p203110 VALUES LESS THAN ('2031-11-01'), + PARTITION p203111 VALUES LESS THAN ('2031-12-01'), + PARTITION p203112 VALUES LESS THAN ('2032-01-01'), + PARTITION p203201 VALUES LESS THAN ('2032-02-01'), + PARTITION p203202 VALUES LESS THAN ('2032-03-01'), + PARTITION p203203 VALUES LESS THAN ('2032-04-01'), + PARTITION p203204 VALUES LESS THAN ('2032-05-01'), + PARTITION p203205 VALUES LESS THAN ('2032-06-01'), + PARTITION p203206 VALUES LESS THAN ('2032-07-01'), + PARTITION p203207 VALUES LESS THAN ('2032-08-01'), + PARTITION p203208 VALUES LESS THAN ('2032-09-01'), + PARTITION p203209 VALUES LESS THAN ('2032-10-01'), + PARTITION p203210 VALUES LESS THAN ('2032-11-01'), + PARTITION p203211 VALUES LESS THAN ('2032-12-01'), + PARTITION p203212 VALUES LESS THAN ('2033-01-01'), + PARTITION p203301 VALUES LESS THAN ('2033-02-01'), + PARTITION p203302 VALUES LESS THAN ('2033-03-01'), + PARTITION p203303 VALUES LESS THAN ('2033-04-01'), + PARTITION p203304 VALUES LESS THAN ('2033-05-01'), + PARTITION p203305 VALUES LESS THAN ('2033-06-01'), + PARTITION p203306 VALUES LESS THAN ('2033-07-01'), + PARTITION p203307 VALUES LESS THAN ('2033-08-01'), + PARTITION p203308 VALUES LESS THAN ('2033-09-01'), + PARTITION p203309 VALUES LESS THAN ('2033-10-01'), + PARTITION p203310 VALUES LESS THAN ('2033-11-01'), + PARTITION p203311 VALUES LESS THAN ('2033-12-01'), + PARTITION p203312 VALUES LESS THAN ('2034-01-01'), + PARTITION p203401 VALUES LESS THAN ('2034-02-01'), + PARTITION p203402 VALUES LESS THAN ('2034-03-01'), + PARTITION p203403 VALUES LESS THAN ('2034-04-01'), + PARTITION p203404 VALUES LESS THAN ('2034-05-01'), + PARTITION p203405 VALUES LESS THAN ('2034-06-01'), + PARTITION p203406 VALUES LESS THAN ('2034-07-01'), + PARTITION p203407 VALUES LESS THAN ('2034-08-01'), + PARTITION p203408 VALUES LESS THAN ('2034-09-01'), + PARTITION p203409 VALUES LESS THAN ('2034-10-01'), + PARTITION p203410 VALUES LESS THAN ('2034-11-01'), + PARTITION p203411 VALUES LESS THAN ('2034-12-01'), + PARTITION p203412 VALUES LESS THAN ('2035-01-01'), + PARTITION p203501 VALUES LESS THAN ('2035-02-01'), + PARTITION p203502 VALUES LESS THAN ('2035-03-01'), + PARTITION p203503 VALUES LESS THAN ('2035-04-01'), + PARTITION p203504 VALUES LESS THAN ('2035-05-01'), + PARTITION p203505 VALUES LESS THAN ('2035-06-01'), + PARTITION p203506 VALUES LESS THAN ('2035-07-01'), + PARTITION p203507 VALUES LESS THAN ('2035-08-01'), + PARTITION p203508 VALUES LESS THAN ('2035-09-01'), + PARTITION p203509 VALUES LESS THAN ('2035-10-01'), + PARTITION p203510 VALUES LESS THAN ('2035-11-01'), + PARTITION p203511 VALUES LESS THAN ('2035-12-01'), + PARTITION p203512 VALUES LESS THAN ('2036-01-01'), + PARTITION p_future VALUES LESS THAN (MAXVALUE) +); + diff --git a/smtERP-boot/src/main/resources/db/migration/V20260921_3__remove_asset_tenant_id.sql b/smtERP-boot/src/main/resources/db/migration/V20260921_3__remove_asset_tenant_id.sql new file mode 100644 index 0000000..7225296 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260921_3__remove_asset_tenant_id.sql @@ -0,0 +1,186 @@ +SET NAMES utf8mb4; + +-- Remove legacy tenant indexes when upgrading an existing database. +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND index_name='idx_asset_tenant_code'), + 'ALTER TABLE tbl_asset DROP INDEX idx_asset_tenant_code', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND index_name='idx_asset_status'), + 'ALTER TABLE tbl_asset DROP INDEX idx_asset_status', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_device' AND index_name='idx_asset_device_tenant_code'), + 'ALTER TABLE tbl_asset_device DROP INDEX idx_asset_device_tenant_code', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND index_name='idx_asset_status'), + 'ALTER TABLE tbl_asset ADD INDEX idx_asset_status (status)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_device' AND index_name='idx_asset_device_asset'), + 'ALTER TABLE tbl_asset_device DROP INDEX idx_asset_device_asset', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_device' AND index_name='idx_asset_device_status'), + 'ALTER TABLE tbl_asset_device DROP INDEX idx_asset_device_status', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory' AND index_name='uk_asset_inventory_external'), + 'ALTER TABLE tbl_asset_inventory DROP INDEX uk_asset_inventory_external', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory' AND index_name='idx_asset_inventory_status'), + 'ALTER TABLE tbl_asset_inventory DROP INDEX idx_asset_inventory_status', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_detail' AND index_name='idx_asset_inventory_detail_code'), + 'ALTER TABLE tbl_asset_inventory_detail DROP INDEX idx_asset_inventory_detail_code', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_file' AND index_name='idx_asset_inventory_file_group'), + 'ALTER TABLE tbl_asset_inventory_file DROP INDEX idx_asset_inventory_file_group', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_operation' AND index_name='idx_asset_inventory_operation'), + 'ALTER TABLE tbl_asset_inventory_operation DROP INDEX idx_asset_inventory_operation', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- Drop tenant columns from all asset-management tables. +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND column_name='tenant_id'), + 'ALTER TABLE tbl_asset DROP COLUMN tenant_id', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset_device' AND column_name='tenant_id'), + 'ALTER TABLE tbl_asset_device DROP COLUMN tenant_id', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory' AND column_name='tenant_id'), + 'ALTER TABLE tbl_asset_inventory DROP COLUMN tenant_id', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_detail' AND column_name='tenant_id'), + 'ALTER TABLE tbl_asset_inventory_detail DROP COLUMN tenant_id', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_file' AND column_name='tenant_id'), + 'ALTER TABLE tbl_asset_inventory_file DROP COLUMN tenant_id', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_operation' AND column_name='tenant_id'), + 'ALTER TABLE tbl_asset_inventory_operation DROP COLUMN tenant_id', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- Add replacement indexes that no longer include tenant_id. +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND index_name='idx_asset_code'), + 'ALTER TABLE tbl_asset ADD INDEX idx_asset_code (asset_code)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_device' AND index_name='idx_asset_device_code'), + 'ALTER TABLE tbl_asset_device ADD INDEX idx_asset_device_code (device_code)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_device' AND index_name='idx_asset_device_asset'), + 'ALTER TABLE tbl_asset_device ADD INDEX idx_asset_device_asset (asset_id)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_device' AND index_name='idx_asset_device_status'), + 'ALTER TABLE tbl_asset_device ADD INDEX idx_asset_device_status (status)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory' AND index_name='uk_asset_inventory_external'), + 'ALTER TABLE tbl_asset_inventory ADD UNIQUE INDEX uk_asset_inventory_external (external_request_id)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory' AND index_name='idx_asset_inventory_status'), + 'ALTER TABLE tbl_asset_inventory ADD INDEX idx_asset_inventory_status (status)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_detail' AND index_name='idx_asset_inventory_detail_code'), + 'ALTER TABLE tbl_asset_inventory_detail ADD INDEX idx_asset_inventory_detail_code (target_code)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_file' AND index_name='idx_asset_inventory_file_group'), + 'ALTER TABLE tbl_asset_inventory_file ADD INDEX idx_asset_inventory_file_group (group_id)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset_inventory_operation' AND index_name='idx_asset_inventory_operation'), + 'ALTER TABLE tbl_asset_inventory_operation ADD INDEX idx_asset_inventory_operation (inventory_id, operate_time)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260921__simplify_inventory_detail_status.sql b/smtERP-boot/src/main/resources/db/migration/V20260921__simplify_inventory_detail_status.sql new file mode 100644 index 0000000..f689cb4 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260921__simplify_inventory_detail_status.sql @@ -0,0 +1,5 @@ +SET NAMES utf8mb4; + +UPDATE tbl_asset_inventory_detail +SET inventory_status='ABNORMAL', update_time=NOW() +WHERE inventory_status IN ('SURPLUS', 'SHORTAGE'); diff --git a/smtERP-boot/src/main/resources/db/migration/V20260928__asset_category_and_external_source.sql b/smtERP-boot/src/main/resources/db/migration/V20260928__asset_category_and_external_source.sql new file mode 100644 index 0000000..454f4f3 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260928__asset_category_and_external_source.sql @@ -0,0 +1,92 @@ +SET NAMES utf8mb4; + +CREATE TABLE IF NOT EXISTS tbl_asset_category ( + id bigint(20) NOT NULL AUTO_INCREMENT, + category_code varchar(64) NOT NULL COMMENT '种类编码', + category_name varchar(100) NOT NULL COMMENT '种类名称', + description varchar(500) DEFAULT NULL COMMENT '种类说明', + sort int NOT NULL DEFAULT 100, + enabled bit(1) NOT NULL DEFAULT b'1', + creator bigint(20) DEFAULT NULL, + updater bigint(20) DEFAULT NULL, + delete_flag varchar(1) DEFAULT '0', + create_time datetime DEFAULT NULL, + update_time datetime DEFAULT NULL, + PRIMARY KEY (id), + UNIQUE KEY uk_asset_category_code (category_code), + UNIQUE KEY uk_asset_category_name (category_name), + KEY idx_asset_category_enabled (enabled, sort) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产种类'; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='tbl_asset') + AND NOT EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND column_name='category_id'), + 'ALTER TABLE tbl_asset ADD COLUMN category_id bigint(20) DEFAULT NULL COMMENT ''资产种类ID'' AFTER asset_name', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='tbl_asset') + AND NOT EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND column_name='external_source'), + 'ALTER TABLE tbl_asset ADD COLUMN external_source varchar(32) DEFAULT NULL COMMENT ''外部数据来源'' AFTER source', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + EXISTS(SELECT 1 FROM information_schema.tables WHERE table_schema=DATABASE() AND table_name='tbl_asset') + AND NOT EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND column_name='external_id'), + 'ALTER TABLE tbl_asset ADD COLUMN external_id varchar(64) DEFAULT NULL COMMENT ''外部数据ID'' AFTER external_source', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +INSERT INTO tbl_asset_category + (category_code,category_name,description,sort,enabled,delete_flag,create_time,update_time) +SELECT seed.category_code,seed.category_name,seed.description,seed.sort,b'1','0',NOW(),NOW() +FROM ( + SELECT 'UNCATEGORIZED' category_code,'未分类' category_name,'尚未归入具体种类的资产' description,10 sort + UNION ALL SELECT 'HARDWARE','硬件资产','从 Smart Asset System 硬件台账同步',20 + UNION ALL SELECT 'SOFTWARE','软件资产','从 Smart Asset System 软件台账同步',30 + UNION ALL SELECT 'SIM_CARD','SIM卡','从 Smart Asset System SIM 卡台账同步',40 +) seed +WHERE NOT EXISTS ( + SELECT 1 FROM tbl_asset_category c + WHERE c.category_code=seed.category_code OR c.category_name=seed.category_name +); + +INSERT INTO tbl_asset_category + (category_code,category_name,description,sort,enabled,delete_flag,create_time,update_time) +SELECT CONCAT('LEGACY_',UPPER(SUBSTRING(MD5(a.asset_category),1,12))), + a.asset_category,'由原资产分类字段自动迁移',100,b'1','0',NOW(),NOW() +FROM tbl_asset a +WHERE a.asset_category IS NOT NULL AND TRIM(a.asset_category)!='' +GROUP BY a.asset_category +HAVING NOT EXISTS ( + SELECT 1 FROM tbl_asset_category c WHERE c.category_name=a.asset_category +); + +UPDATE tbl_asset a +JOIN tbl_asset_category c ON c.category_name=a.asset_category +SET a.category_id=c.id +WHERE a.category_id IS NULL; + +UPDATE tbl_asset a +JOIN tbl_asset_category c ON c.category_code='UNCATEGORIZED' +SET a.category_id=c.id,a.asset_category=c.category_name +WHERE a.category_id IS NULL; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND index_name='idx_asset_category'), + 'ALTER TABLE tbl_asset ADD INDEX idx_asset_category (category_id)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SET @ddl := IF( + NOT EXISTS(SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='tbl_asset' AND index_name='uk_asset_external_source'), + 'ALTER TABLE tbl_asset ADD UNIQUE INDEX uk_asset_external_source (external_source,external_id)', + 'SELECT 1' +); +PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260929_2__asset_dashboard_menu.sql b/smtERP-boot/src/main/resources/db/migration/V20260929_2__asset_dashboard_menu.sql new file mode 100644 index 0000000..3772258 --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260929_2__asset_dashboard_menu.sql @@ -0,0 +1,13 @@ +SET NAMES utf8mb4; + +INSERT INTO tbl_function + (number, name, name_en, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag) +SELECT '090200', '资产汇总', 'Asset Overview', '0902', '/asset', '/asset/AssetDashboard', b'0', '0490', b'1', '电脑版', '', 'dashboard', '0' +WHERE NOT EXISTS (SELECT 1 FROM tbl_function WHERE number='090200' OR url='/asset'); + +UPDATE tbl_user_business ub +JOIN tbl_role r ON r.id=CAST(ub.key_id AS UNSIGNED) +JOIN tbl_function f ON f.number='090200' +SET ub.value=CONCAT(IFNULL(ub.value,''), '[', f.id, ']') +WHERE ub.type='RoleFunctions' AND IFNULL(ub.delete_flag,'0')!='1' AND IFNULL(r.delete_flag,'0')!='1' + AND r.name IN ('admin','管理员') AND LOCATE(CONCAT('[',f.id,']'),IFNULL(ub.value,''))=0; diff --git a/smtERP-boot/src/main/resources/db/migration/V20260929__asset_datetime_precision.sql b/smtERP-boot/src/main/resources/db/migration/V20260929__asset_datetime_precision.sql new file mode 100644 index 0000000..b78182f --- /dev/null +++ b/smtERP-boot/src/main/resources/db/migration/V20260929__asset_datetime_precision.sql @@ -0,0 +1,7 @@ +-- 资产购置日期及设备保养日期需要保存到秒,避免 DATE 类型丢失时间部分。 +ALTER TABLE tbl_asset + MODIFY COLUMN purchase_date DATETIME NULL COMMENT '购置日期'; + +ALTER TABLE tbl_asset_device + MODIFY COLUMN purchase_date DATETIME NULL COMMENT '购置日期', + MODIFY COLUMN next_maintenance_date DATETIME NULL COMMENT '下次保养时间'; diff --git a/smtERP-boot/src/main/resources/i18n/messages_en_US.properties b/smtERP-boot/src/main/resources/i18n/messages_en_US.properties new file mode 100644 index 0000000..71817e4 --- /dev/null +++ b/smtERP-boot/src/main/resources/i18n/messages_en_US.properties @@ -0,0 +1,4 @@ +i18n.language=en-US +common.success=Operation successful +common.failure=Operation failed +common.menu=Menu diff --git a/smtERP-boot/src/main/resources/i18n/messages_zh_CN.properties b/smtERP-boot/src/main/resources/i18n/messages_zh_CN.properties new file mode 100644 index 0000000..b79f988 --- /dev/null +++ b/smtERP-boot/src/main/resources/i18n/messages_zh_CN.properties @@ -0,0 +1,4 @@ +i18n.language=zh-CN +common.success=操作成功 +common.failure=操作失败 +common.menu=菜单 diff --git a/smtERP-boot/src/main/resources/logback-spring.xml b/smtERP-boot/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..a8a6d6c --- /dev/null +++ b/smtERP-boot/src/main/resources/logback-spring.xml @@ -0,0 +1,34 @@ + + + + + + + ${LOG_PATTERN} + + + + + ${LOG_FILE}.log + + ${LOG_PATTERN} + + + ${LOG_FILE}.%d{yyyy-MM-dd}.%i.log + 10 + 1GB + + 100MB + + + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/AccountHeadMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/AccountHeadMapper.xml new file mode 100644 index 0000000..4ec1221 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/AccountHeadMapper.xml @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, type, organ_id, hands_person_id, creator, change_amount, discount_money, total_price, + account_id, bill_no, bill_time, remark, file_name, status, source, tenant_id, delete_flag + + + + + delete from tbl_account_head + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_account_head + + + + + + insert into tbl_account_head (id, type, organ_id, + hands_person_id, creator, change_amount, + discount_money, total_price, account_id, + bill_no, bill_time, remark, + file_name, status, source, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{type,jdbcType=VARCHAR}, #{organId,jdbcType=BIGINT}, + #{handsPersonId,jdbcType=BIGINT}, #{creator,jdbcType=BIGINT}, #{changeAmount,jdbcType=DECIMAL}, + #{discountMoney,jdbcType=DECIMAL}, #{totalPrice,jdbcType=DECIMAL}, #{accountId,jdbcType=BIGINT}, + #{billNo,jdbcType=VARCHAR}, #{billTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}, + #{fileName,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR}, #{source,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_account_head + + + id, + + + type, + + + organ_id, + + + hands_person_id, + + + creator, + + + change_amount, + + + discount_money, + + + total_price, + + + account_id, + + + bill_no, + + + bill_time, + + + remark, + + + file_name, + + + status, + + + source, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{type,jdbcType=VARCHAR}, + + + #{organId,jdbcType=BIGINT}, + + + #{handsPersonId,jdbcType=BIGINT}, + + + #{creator,jdbcType=BIGINT}, + + + #{changeAmount,jdbcType=DECIMAL}, + + + #{discountMoney,jdbcType=DECIMAL}, + + + #{totalPrice,jdbcType=DECIMAL}, + + + #{accountId,jdbcType=BIGINT}, + + + #{billNo,jdbcType=VARCHAR}, + + + #{billTime,jdbcType=TIMESTAMP}, + + + #{remark,jdbcType=VARCHAR}, + + + #{fileName,jdbcType=VARCHAR}, + + + #{status,jdbcType=VARCHAR}, + + + #{source,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_account_head + + + id = #{record.id,jdbcType=BIGINT}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + organ_id = #{record.organId,jdbcType=BIGINT}, + + + hands_person_id = #{record.handsPersonId,jdbcType=BIGINT}, + + + creator = #{record.creator,jdbcType=BIGINT}, + + + change_amount = #{record.changeAmount,jdbcType=DECIMAL}, + + + discount_money = #{record.discountMoney,jdbcType=DECIMAL}, + + + total_price = #{record.totalPrice,jdbcType=DECIMAL}, + + + account_id = #{record.accountId,jdbcType=BIGINT}, + + + bill_no = #{record.billNo,jdbcType=VARCHAR}, + + + bill_time = #{record.billTime,jdbcType=TIMESTAMP}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + file_name = #{record.fileName,jdbcType=VARCHAR}, + + + status = #{record.status,jdbcType=VARCHAR}, + + + source = #{record.source,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_account_head + set id = #{record.id,jdbcType=BIGINT}, + type = #{record.type,jdbcType=VARCHAR}, + organ_id = #{record.organId,jdbcType=BIGINT}, + hands_person_id = #{record.handsPersonId,jdbcType=BIGINT}, + creator = #{record.creator,jdbcType=BIGINT}, + change_amount = #{record.changeAmount,jdbcType=DECIMAL}, + discount_money = #{record.discountMoney,jdbcType=DECIMAL}, + total_price = #{record.totalPrice,jdbcType=DECIMAL}, + account_id = #{record.accountId,jdbcType=BIGINT}, + bill_no = #{record.billNo,jdbcType=VARCHAR}, + bill_time = #{record.billTime,jdbcType=TIMESTAMP}, + remark = #{record.remark,jdbcType=VARCHAR}, + file_name = #{record.fileName,jdbcType=VARCHAR}, + status = #{record.status,jdbcType=VARCHAR}, + source = #{record.source,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_account_head + + + type = #{type,jdbcType=VARCHAR}, + + + organ_id = #{organId,jdbcType=BIGINT}, + + + hands_person_id = #{handsPersonId,jdbcType=BIGINT}, + + + creator = #{creator,jdbcType=BIGINT}, + + + change_amount = #{changeAmount,jdbcType=DECIMAL}, + + + discount_money = #{discountMoney,jdbcType=DECIMAL}, + + + total_price = #{totalPrice,jdbcType=DECIMAL}, + + + account_id = #{accountId,jdbcType=BIGINT}, + + + bill_no = #{billNo,jdbcType=VARCHAR}, + + + bill_time = #{billTime,jdbcType=TIMESTAMP}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + file_name = #{fileName,jdbcType=VARCHAR}, + + + status = #{status,jdbcType=VARCHAR}, + + + source = #{source,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_account_head + set type = #{type,jdbcType=VARCHAR}, + organ_id = #{organId,jdbcType=BIGINT}, + hands_person_id = #{handsPersonId,jdbcType=BIGINT}, + creator = #{creator,jdbcType=BIGINT}, + change_amount = #{changeAmount,jdbcType=DECIMAL}, + discount_money = #{discountMoney,jdbcType=DECIMAL}, + total_price = #{totalPrice,jdbcType=DECIMAL}, + account_id = #{accountId,jdbcType=BIGINT}, + bill_no = #{billNo,jdbcType=VARCHAR}, + bill_time = #{billTime,jdbcType=TIMESTAMP}, + remark = #{remark,jdbcType=VARCHAR}, + file_name = #{fileName,jdbcType=VARCHAR}, + status = #{status,jdbcType=VARCHAR}, + source = #{source,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/AccountHeadMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/AccountHeadMapperEx.xml new file mode 100644 index 0000000..ca5f596 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/AccountHeadMapperEx.xml @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + update tbl_account_head + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/AccountItemMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/AccountItemMapper.xml new file mode 100644 index 0000000..0182e6b --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/AccountItemMapper.xml @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, header_id, account_id, in_out_item_id, bill_id, need_debt, finish_debt, each_amount, + remark, tenant_id, delete_flag + + + + + delete from tbl_account_item + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_account_item + + + + + + insert into tbl_account_item (id, header_id, account_id, + in_out_item_id, bill_id, need_debt, + finish_debt, each_amount, remark, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{headerId,jdbcType=BIGINT}, #{accountId,jdbcType=BIGINT}, + #{inOutItemId,jdbcType=BIGINT}, #{billId,jdbcType=BIGINT}, #{needDebt,jdbcType=DECIMAL}, + #{finishDebt,jdbcType=DECIMAL}, #{eachAmount,jdbcType=DECIMAL}, #{remark,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_account_item + + + id, + + + header_id, + + + account_id, + + + in_out_item_id, + + + bill_id, + + + need_debt, + + + finish_debt, + + + each_amount, + + + remark, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{headerId,jdbcType=BIGINT}, + + + #{accountId,jdbcType=BIGINT}, + + + #{inOutItemId,jdbcType=BIGINT}, + + + #{billId,jdbcType=BIGINT}, + + + #{needDebt,jdbcType=DECIMAL}, + + + #{finishDebt,jdbcType=DECIMAL}, + + + #{eachAmount,jdbcType=DECIMAL}, + + + #{remark,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_account_item + + + id = #{record.id,jdbcType=BIGINT}, + + + header_id = #{record.headerId,jdbcType=BIGINT}, + + + account_id = #{record.accountId,jdbcType=BIGINT}, + + + in_out_item_id = #{record.inOutItemId,jdbcType=BIGINT}, + + + bill_id = #{record.billId,jdbcType=BIGINT}, + + + need_debt = #{record.needDebt,jdbcType=DECIMAL}, + + + finish_debt = #{record.finishDebt,jdbcType=DECIMAL}, + + + each_amount = #{record.eachAmount,jdbcType=DECIMAL}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_account_item + set id = #{record.id,jdbcType=BIGINT}, + header_id = #{record.headerId,jdbcType=BIGINT}, + account_id = #{record.accountId,jdbcType=BIGINT}, + in_out_item_id = #{record.inOutItemId,jdbcType=BIGINT}, + bill_id = #{record.billId,jdbcType=BIGINT}, + need_debt = #{record.needDebt,jdbcType=DECIMAL}, + finish_debt = #{record.finishDebt,jdbcType=DECIMAL}, + each_amount = #{record.eachAmount,jdbcType=DECIMAL}, + remark = #{record.remark,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_account_item + + + header_id = #{headerId,jdbcType=BIGINT}, + + + account_id = #{accountId,jdbcType=BIGINT}, + + + in_out_item_id = #{inOutItemId,jdbcType=BIGINT}, + + + bill_id = #{billId,jdbcType=BIGINT}, + + + need_debt = #{needDebt,jdbcType=DECIMAL}, + + + finish_debt = #{finishDebt,jdbcType=DECIMAL}, + + + each_amount = #{eachAmount,jdbcType=DECIMAL}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_account_item + set header_id = #{headerId,jdbcType=BIGINT}, + account_id = #{accountId,jdbcType=BIGINT}, + in_out_item_id = #{inOutItemId,jdbcType=BIGINT}, + bill_id = #{billId,jdbcType=BIGINT}, + need_debt = #{needDebt,jdbcType=DECIMAL}, + finish_debt = #{finishDebt,jdbcType=DECIMAL}, + each_amount = #{eachAmount,jdbcType=DECIMAL}, + remark = #{remark,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/AccountItemMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/AccountItemMapperEx.xml new file mode 100644 index 0000000..3f2e06d --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/AccountItemMapperEx.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + update tbl_account_item + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + + + + update tbl_account_item + set delete_flag='1' + where 1=1 + and header_id in ( + + #{id} + + ) + + + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/AccountMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/AccountMapper.xml new file mode 100644 index 0000000..0a320de --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/AccountMapper.xml @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, serial_no, initial_amount, current_amount, remark, enabled, sort, is_default, + tenant_id, delete_flag + + + + + delete from tbl_account + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_account + + + + + + insert into tbl_account (id, name, serial_no, + initial_amount, current_amount, remark, + enabled, sort, is_default, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{serialNo,jdbcType=VARCHAR}, + #{initialAmount,jdbcType=DECIMAL}, #{currentAmount,jdbcType=DECIMAL}, #{remark,jdbcType=VARCHAR}, + #{enabled,jdbcType=BIT}, #{sort,jdbcType=VARCHAR}, #{isDefault,jdbcType=BIT}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_account + + + id, + + + name, + + + serial_no, + + + initial_amount, + + + current_amount, + + + remark, + + + enabled, + + + sort, + + + is_default, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{serialNo,jdbcType=VARCHAR}, + + + #{initialAmount,jdbcType=DECIMAL}, + + + #{currentAmount,jdbcType=DECIMAL}, + + + #{remark,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BIT}, + + + #{sort,jdbcType=VARCHAR}, + + + #{isDefault,jdbcType=BIT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_account + + + id = #{record.id,jdbcType=BIGINT}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + serial_no = #{record.serialNo,jdbcType=VARCHAR}, + + + initial_amount = #{record.initialAmount,jdbcType=DECIMAL}, + + + current_amount = #{record.currentAmount,jdbcType=DECIMAL}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + is_default = #{record.isDefault,jdbcType=BIT}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_account + set id = #{record.id,jdbcType=BIGINT}, + name = #{record.name,jdbcType=VARCHAR}, + serial_no = #{record.serialNo,jdbcType=VARCHAR}, + initial_amount = #{record.initialAmount,jdbcType=DECIMAL}, + current_amount = #{record.currentAmount,jdbcType=DECIMAL}, + remark = #{record.remark,jdbcType=VARCHAR}, + enabled = #{record.enabled,jdbcType=BIT}, + sort = #{record.sort,jdbcType=VARCHAR}, + is_default = #{record.isDefault,jdbcType=BIT}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_account + + + name = #{name,jdbcType=VARCHAR}, + + + serial_no = #{serialNo,jdbcType=VARCHAR}, + + + initial_amount = #{initialAmount,jdbcType=DECIMAL}, + + + current_amount = #{currentAmount,jdbcType=DECIMAL}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BIT}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + is_default = #{isDefault,jdbcType=BIT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_account + set name = #{name,jdbcType=VARCHAR}, + serial_no = #{serialNo,jdbcType=VARCHAR}, + initial_amount = #{initialAmount,jdbcType=DECIMAL}, + current_amount = #{currentAmount,jdbcType=DECIMAL}, + remark = #{remark,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + sort = #{sort,jdbcType=VARCHAR}, + is_default = #{isDefault,jdbcType=BIT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/AccountMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/AccountMapperEx.xml new file mode 100644 index 0000000..655e782 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/AccountMapperEx.xml @@ -0,0 +1,510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + update tbl_account + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/AssetManagementMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/AssetManagementMapper.xml new file mode 100644 index 0000000..417af31 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/AssetManagementMapper.xml @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO tbl_asset (asset_code, asset_name, category_id, asset_category, specification, unit, quantity, original_value, + purchase_date, use_department, keeper, location, status, source, external_source, external_id, + remark, creator, delete_flag, create_time, update_time) + VALUES (#{assetCode}, #{assetName}, #{categoryId}, #{assetCategory}, #{specification}, #{unit}, #{quantity}, #{originalValue}, + #{purchaseDate}, #{useDepartment}, #{keeper}, #{location}, #{status}, #{source}, #{externalSource}, #{externalId}, + #{remark}, #{creator}, '0', NOW(), NOW()) + + + UPDATE tbl_asset SET asset_code=#{assetCode}, asset_name=#{assetName}, category_id=#{categoryId}, + asset_category=#{assetCategory}, + specification=#{specification}, unit=#{unit}, quantity=#{quantity}, original_value=#{originalValue}, + purchase_date=#{purchaseDate}, use_department=#{useDepartment}, keeper=#{keeper}, location=#{location}, + status=#{status}, source=#{source}, remark=#{remark}, updater=#{updater}, update_time=NOW() + WHERE id=#{id} AND IFNULL(delete_flag, '0') != '1' + + + UPDATE tbl_asset SET delete_flag='1', updater=#{userId}, update_time=NOW() + WHERE id=#{id} AND IFNULL(delete_flag, '0') != '1' + + + + + + + + + INSERT INTO tbl_asset_category + (category_code,category_name,description,sort,enabled,creator,delete_flag,create_time,update_time) + VALUES + (#{categoryCode},#{categoryName},#{description},#{sort},#{enabled},#{creator},'0',NOW(),NOW()) + + + UPDATE tbl_asset_category + SET category_code=#{categoryCode},category_name=#{categoryName},description=#{description}, + sort=#{sort},enabled=#{enabled},updater=#{updater},update_time=NOW() + WHERE id=#{id} AND IFNULL(delete_flag,'0')!='1' + + + UPDATE tbl_asset_category + SET delete_flag='1',updater=#{userId},update_time=NOW() + WHERE id=#{id} AND IFNULL(delete_flag,'0')!='1' + + + + + + + + INSERT INTO tbl_asset_device (asset_id, device_code, device_name, device_category, model, serial_number, manufacturer, + purchase_date, enabled_date, use_department, keeper, location, status, next_maintenance_date, remark, + creator, delete_flag, create_time, update_time) + VALUES (#{assetId}, #{deviceCode}, #{deviceName}, #{deviceCategory}, #{model}, #{serialNumber}, #{manufacturer}, + #{purchaseDate}, #{enabledDate}, #{useDepartment}, #{keeper}, #{location}, #{status}, #{nextMaintenanceDate}, #{remark}, + #{creator}, '0', NOW(), NOW()) + + + UPDATE tbl_asset_device SET asset_id=#{assetId}, device_code=#{deviceCode}, device_name=#{deviceName}, + device_category=#{deviceCategory}, model=#{model}, serial_number=#{serialNumber}, manufacturer=#{manufacturer}, + purchase_date=#{purchaseDate}, enabled_date=#{enabledDate}, use_department=#{useDepartment}, keeper=#{keeper}, + location=#{location}, status=#{status}, next_maintenance_date=#{nextMaintenanceDate}, remark=#{remark}, + updater=#{updater}, update_time=NOW() + WHERE id=#{id} AND IFNULL(delete_flag,'0')!='1' + + + UPDATE tbl_asset_device SET delete_flag='1', updater=#{userId}, update_time=NOW() + WHERE id=#{id} AND IFNULL(delete_flag,'0')!='1' + + + + + + + + + + INSERT INTO tbl_asset_inventory (inventory_no, plan_name, scope_type, planned_at, deadline, status, total_count, + inventoried_count, normal_count, abnormal_count, inventory_user_id, inventory_user_name, started_at, completed_at, + audit_user_id, audit_time, source, external_request_id, remark, creator, delete_flag, create_time, update_time) + VALUES (#{inventoryNo}, #{planName}, #{scopeType}, #{plannedAt}, #{deadline}, #{status}, #{totalCount}, + #{inventoriedCount}, #{normalCount}, #{abnormalCount}, #{inventoryUserId}, #{inventoryUserName}, #{startedAt}, #{completedAt}, + #{auditUserId}, #{auditTime}, #{source}, #{externalRequestId}, #{remark}, #{creator}, '0', NOW(), NOW()) + + + UPDATE tbl_asset_inventory SET plan_name=#{planName}, scope_type=#{scopeType}, planned_at=#{plannedAt}, + deadline=#{deadline}, status=#{status}, total_count=#{totalCount}, inventoried_count=#{inventoriedCount}, + normal_count=#{normalCount}, abnormal_count=#{abnormalCount}, inventory_user_id=#{inventoryUserId}, + inventory_user_name=#{inventoryUserName}, started_at=#{startedAt}, completed_at=#{completedAt}, + audit_user_id=#{auditUserId}, audit_time=#{auditTime}, remark=#{remark}, updater=#{updater}, update_time=NOW() + WHERE id=#{id} AND IFNULL(delete_flag,'0')!='1' + + + UPDATE tbl_asset_inventory SET delete_flag='1', updater=#{userId}, update_time=NOW() + WHERE id=#{id} AND status='DRAFT' AND IFNULL(delete_flag,'0')!='1' + + + + + + + INSERT INTO tbl_asset_inventory_detail (inventory_id, target_type, target_id, target_code, target_name, model, + book_quantity, actual_quantity, inventory_status, book_department, actual_department, book_location, + actual_location, inventory_time, inventory_user_id, inventory_user_name, remark, create_time, update_time) + VALUES (#{inventoryId}, #{targetType}, #{targetId}, #{targetCode}, #{targetName}, #{model}, + #{bookQuantity}, #{actualQuantity}, #{inventoryStatus}, #{bookDepartment}, #{actualDepartment}, #{bookLocation}, + #{actualLocation}, #{inventoryTime}, #{inventoryUserId}, #{inventoryUserName}, #{remark}, NOW(), NOW()) + + + UPDATE tbl_asset_inventory_detail SET actual_quantity=#{actualQuantity}, inventory_status=#{inventoryStatus}, + actual_department=#{actualDepartment}, actual_location=#{actualLocation}, inventory_time=#{inventoryTime}, + inventory_user_id=#{inventoryUserId}, inventory_user_name=#{inventoryUserName}, remark=#{remark}, update_time=NOW() + WHERE id=#{id} AND inventory_id=#{inventoryId} + + + + UPDATE tbl_asset_device SET last_inventory_time=NOW(), update_time=NOW() + WHERE id=#{deviceId} AND IFNULL(delete_flag,'0')!='1' + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/CustomerCategoryMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/CustomerCategoryMapper.xml new file mode 100644 index 0000000..14d296a --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/CustomerCategoryMapper.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + id, category_name, parent_id, level, sort, description, enabled, creator, tenant_id, delete_flag, create_time, update_time + + + + + + delete from tbl_customer_category + where id = #{id,jdbcType=BIGINT} + + + + insert into jsh_customer_category (category_name, parent_id, level, + sort, description, enabled, + creator, tenant_id, delete_flag, + create_time, update_time) + values (#{categoryName,jdbcType=VARCHAR}, #{parentId,jdbcType=BIGINT}, #{level,jdbcType=INTEGER}, + #{sort,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{enabled,jdbcType=BIT}, + #{creator,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}) + + + + insert into tbl_customer_category + + + category_name, + + + parent_id, + + + level, + + + sort, + + + description, + + + enabled, + + + creator, + + + tenant_id, + + + delete_flag, + + + create_time, + + + update_time, + + + + + #{categoryName,jdbcType=VARCHAR}, + + + #{parentId,jdbcType=BIGINT}, + + + #{level,jdbcType=INTEGER}, + + + #{sort,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BIT}, + + + #{creator,jdbcType=BIGINT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + + + + update tbl_customer_category + + + category_name = #{categoryName,jdbcType=VARCHAR}, + + + parent_id = #{parentId,jdbcType=BIGINT}, + + + level = #{level,jdbcType=INTEGER}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + description = #{description,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BIT}, + + + creator = #{creator,jdbcType=BIGINT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + where id = #{id,jdbcType=BIGINT} + + + + update tbl_customer_category + set category_name = #{categoryName,jdbcType=VARCHAR}, + parent_id = #{parentId,jdbcType=BIGINT}, + level = #{level,jdbcType=INTEGER}, + sort = #{sort,jdbcType=VARCHAR}, + description = #{description,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + creator = #{creator,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=BIGINT} + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/CustomerCategoryMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/CustomerCategoryMapperEx.xml new file mode 100644 index 0000000..258b71b --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/CustomerCategoryMapperEx.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + update tbl_customer_category + set delete_flag='1', update_time = NOW() + where id in ( + + #{id} + + ) + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/CustomerContactMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/CustomerContactMapper.xml new file mode 100644 index 0000000..cc9bcc9 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/CustomerContactMapper.xml @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, customer_id, contact_name, position, phone, telephone, email, wechat, qq, is_primary, + remark, creator, tenant_id, delete_flag, create_time, update_time + + + + + + delete from tbl_customer_contact + where id = #{id,jdbcType=BIGINT} + + + + insert into jsh_customer_contact (customer_id, contact_name, position, + phone, telephone, email, + wechat, qq, is_primary, + remark, creator, tenant_id, + delete_flag, create_time, update_time) + values (#{customerId,jdbcType=BIGINT}, #{contactName,jdbcType=VARCHAR}, #{position,jdbcType=VARCHAR}, + #{phone,jdbcType=VARCHAR}, #{telephone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, + #{wechat,jdbcType=VARCHAR}, #{qq,jdbcType=VARCHAR}, #{isPrimary,jdbcType=BIT}, + #{remark,jdbcType=VARCHAR}, #{creator,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}) + + + + insert into tbl_customer_contact + + + customer_id, + + + contact_name, + + + position, + + + phone, + + + telephone, + + + email, + + + wechat, + + + qq, + + + is_primary, + + + remark, + + + creator, + + + tenant_id, + + + delete_flag, + + + create_time, + + + update_time, + + + + + #{customerId,jdbcType=BIGINT}, + + + #{contactName,jdbcType=VARCHAR}, + + + #{position,jdbcType=VARCHAR}, + + + #{phone,jdbcType=VARCHAR}, + + + #{telephone,jdbcType=VARCHAR}, + + + #{email,jdbcType=VARCHAR}, + + + #{wechat,jdbcType=VARCHAR}, + + + #{qq,jdbcType=VARCHAR}, + + + #{isPrimary,jdbcType=BIT}, + + + #{remark,jdbcType=VARCHAR}, + + + #{creator,jdbcType=BIGINT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + + + + update tbl_customer_contact + + + customer_id = #{customerId,jdbcType=BIGINT}, + + + contact_name = #{contactName,jdbcType=VARCHAR}, + + + position = #{position,jdbcType=VARCHAR}, + + + phone = #{phone,jdbcType=VARCHAR}, + + + telephone = #{telephone,jdbcType=VARCHAR}, + + + email = #{email,jdbcType=VARCHAR}, + + + wechat = #{wechat,jdbcType=VARCHAR}, + + + qq = #{qq,jdbcType=VARCHAR}, + + + is_primary = #{isPrimary,jdbcType=BIT}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + creator = #{creator,jdbcType=BIGINT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + where id = #{id,jdbcType=BIGINT} + + + + update tbl_customer_contact + set customer_id = #{customerId,jdbcType=BIGINT}, + contact_name = #{contactName,jdbcType=VARCHAR}, + position = #{position,jdbcType=VARCHAR}, + phone = #{phone,jdbcType=VARCHAR}, + telephone = #{telephone,jdbcType=VARCHAR}, + email = #{email,jdbcType=VARCHAR}, + wechat = #{wechat,jdbcType=VARCHAR}, + qq = #{qq,jdbcType=VARCHAR}, + is_primary = #{isPrimary,jdbcType=BIT}, + remark = #{remark,jdbcType=VARCHAR}, + creator = #{creator,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=BIGINT} + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/CustomerContactMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/CustomerContactMapperEx.xml new file mode 100644 index 0000000..c48c5c9 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/CustomerContactMapperEx.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + update tbl_customer_contact + set delete_flag='1', update_time = NOW() + where id in ( + + #{id} + + ) + + + + update tbl_customer_contact + set delete_flag='1', update_time = NOW() + where customer_id = #{customerId} + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/DeliveryPlanMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/DeliveryPlanMapper.xml new file mode 100644 index 0000000..c1c4ecb --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/DeliveryPlanMapper.xml @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into tbl_delivery_plan + + plan_number, + source_type, + source_bill_id, + source_bill_number, + sale_order_number, + customer_id, + status, + planned_delivery_time, + adjust_reason, + remark, + create_time, + creator, + tenant_id, + delete_flag, + + + #{planNumber}, + #{sourceType}, + #{sourceBillId}, + #{sourceBillNumber}, + #{saleOrderNumber}, + #{customerId}, + #{status}, + #{plannedDeliveryTime}, + #{adjustReason}, + #{remark}, + #{createTime}, + #{creator}, + #{tenantId}, + #{deleteFlag}, + + + + + update tbl_delivery_plan + + status = #{status}, + planned_delivery_time = #{plannedDeliveryTime}, + adjust_reason = #{adjustReason}, + remark = #{remark}, + delete_flag = #{deleteFlag}, + + where id = #{id} + + + + insert into tbl_delivery_plan_item + (plan_id, source_item_id, material_id, material_extend_id, bar_code, material_name, standard, model, + unit, batch_number, sn_list, plan_quantity, shipped_quantity, depot_id, remark, tenant_id, delete_flag) + values + + (#{item.planId}, #{item.sourceItemId}, #{item.materialId}, #{item.materialExtendId}, #{item.barCode}, + #{item.materialName}, #{item.standard}, #{item.model}, #{item.unit}, #{item.batchNumber}, #{item.snList}, + #{item.planQuantity}, #{item.shippedQuantity}, #{item.depotId}, #{item.remark}, #{item.tenantId}, '0') + + + + + update tbl_delivery_plan_item + set delete_flag = '1' + where plan_id = #{planId} + and ifnull(delete_flag,'0') != '1' + + + + update tbl_delivery_plan_item + set plan_quantity = #{planQuantity}, remark = #{remark} + where id = #{id} + and ifnull(delete_flag,'0') != '1' + + + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/DepotHeadMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/DepotHeadMapper.xml new file mode 100644 index 0000000..bf9d066 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/DepotHeadMapper.xml @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, type, sub_type, default_number, number, create_time, oper_time, organ_id, creator, + account_id, change_amount, back_amount, total_price, pay_type, bill_type, remark, + file_name, sales_man, account_id_list, account_money_list, discount, discount_money, + discount_last_money, other_money, deposit, last_deposit, debt, last_debt, status, + purchase_status, source, link_number, link_apply, tenant_id, delete_flag + + + + + delete from tbl_depot_head + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_depot_head + + + + + + insert into tbl_depot_head (id, type, sub_type, + default_number, number, create_time, + oper_time, organ_id, creator, + account_id, change_amount, back_amount, + total_price, pay_type, bill_type, + remark, file_name, sales_man, + account_id_list, account_money_list, discount, + discount_money, discount_last_money, other_money, + deposit, last_deposit, debt, + last_debt, status, purchase_status, + source, link_number, link_apply, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{type,jdbcType=VARCHAR}, #{subType,jdbcType=VARCHAR}, + #{defaultNumber,jdbcType=VARCHAR}, #{number,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, + #{operTime,jdbcType=TIMESTAMP}, #{organId,jdbcType=BIGINT}, #{creator,jdbcType=BIGINT}, + #{accountId,jdbcType=BIGINT}, #{changeAmount,jdbcType=DECIMAL}, #{backAmount,jdbcType=DECIMAL}, + #{totalPrice,jdbcType=DECIMAL}, #{payType,jdbcType=VARCHAR}, #{billType,jdbcType=VARCHAR}, + #{remark,jdbcType=VARCHAR}, #{fileName,jdbcType=VARCHAR}, #{salesMan,jdbcType=VARCHAR}, + #{accountIdList,jdbcType=VARCHAR}, #{accountMoneyList,jdbcType=VARCHAR}, #{discount,jdbcType=DECIMAL}, + #{discountMoney,jdbcType=DECIMAL}, #{discountLastMoney,jdbcType=DECIMAL}, #{otherMoney,jdbcType=DECIMAL}, + #{deposit,jdbcType=DECIMAL}, #{lastDeposit,jdbcType=DECIMAL}, #{debt,jdbcType=DECIMAL}, + #{lastDebt,jdbcType=DECIMAL}, #{status,jdbcType=VARCHAR}, #{purchaseStatus,jdbcType=VARCHAR}, + #{source,jdbcType=VARCHAR}, #{linkNumber,jdbcType=VARCHAR}, #{linkApply,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_depot_head + + + id, + + + type, + + + sub_type, + + + default_number, + + + number, + + + create_time, + + + oper_time, + + + organ_id, + + + creator, + + + account_id, + + + change_amount, + + + back_amount, + + + total_price, + + + pay_type, + + + bill_type, + + + remark, + + + file_name, + + + sales_man, + + + account_id_list, + + + account_money_list, + + + discount, + + + discount_money, + + + discount_last_money, + + + other_money, + + + deposit, + + + last_deposit, + + + debt, + + + last_debt, + + + status, + + + purchase_status, + + + source, + + + link_number, + + + link_apply, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{type,jdbcType=VARCHAR}, + + + #{subType,jdbcType=VARCHAR}, + + + #{defaultNumber,jdbcType=VARCHAR}, + + + #{number,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{operTime,jdbcType=TIMESTAMP}, + + + #{organId,jdbcType=BIGINT}, + + + #{creator,jdbcType=BIGINT}, + + + #{accountId,jdbcType=BIGINT}, + + + #{changeAmount,jdbcType=DECIMAL}, + + + #{backAmount,jdbcType=DECIMAL}, + + + #{totalPrice,jdbcType=DECIMAL}, + + + #{payType,jdbcType=VARCHAR}, + + + #{billType,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{fileName,jdbcType=VARCHAR}, + + + #{salesMan,jdbcType=VARCHAR}, + + + #{accountIdList,jdbcType=VARCHAR}, + + + #{accountMoneyList,jdbcType=VARCHAR}, + + + #{discount,jdbcType=DECIMAL}, + + + #{discountMoney,jdbcType=DECIMAL}, + + + #{discountLastMoney,jdbcType=DECIMAL}, + + + #{otherMoney,jdbcType=DECIMAL}, + + + #{deposit,jdbcType=DECIMAL}, + + + #{lastDeposit,jdbcType=DECIMAL}, + + + #{debt,jdbcType=DECIMAL}, + + + #{lastDebt,jdbcType=DECIMAL}, + + + #{status,jdbcType=VARCHAR}, + + + #{purchaseStatus,jdbcType=VARCHAR}, + + + #{source,jdbcType=VARCHAR}, + + + #{linkNumber,jdbcType=VARCHAR}, + + + #{linkApply,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_depot_head + + + id = #{record.id,jdbcType=BIGINT}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + sub_type = #{record.subType,jdbcType=VARCHAR}, + + + default_number = #{record.defaultNumber,jdbcType=VARCHAR}, + + + number = #{record.number,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + oper_time = #{record.operTime,jdbcType=TIMESTAMP}, + + + organ_id = #{record.organId,jdbcType=BIGINT}, + + + creator = #{record.creator,jdbcType=BIGINT}, + + + account_id = #{record.accountId,jdbcType=BIGINT}, + + + change_amount = #{record.changeAmount,jdbcType=DECIMAL}, + + + back_amount = #{record.backAmount,jdbcType=DECIMAL}, + + + total_price = #{record.totalPrice,jdbcType=DECIMAL}, + + + pay_type = #{record.payType,jdbcType=VARCHAR}, + + + bill_type = #{record.billType,jdbcType=VARCHAR}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + file_name = #{record.fileName,jdbcType=VARCHAR}, + + + sales_man = #{record.salesMan,jdbcType=VARCHAR}, + + + account_id_list = #{record.accountIdList,jdbcType=VARCHAR}, + + + account_money_list = #{record.accountMoneyList,jdbcType=VARCHAR}, + + + discount = #{record.discount,jdbcType=DECIMAL}, + + + discount_money = #{record.discountMoney,jdbcType=DECIMAL}, + + + discount_last_money = #{record.discountLastMoney,jdbcType=DECIMAL}, + + + other_money = #{record.otherMoney,jdbcType=DECIMAL}, + + + deposit = #{record.deposit,jdbcType=DECIMAL}, + + + last_deposit = #{record.lastDeposit,jdbcType=DECIMAL}, + + + debt = #{record.debt,jdbcType=DECIMAL}, + + + last_debt = #{record.lastDebt,jdbcType=DECIMAL}, + + + status = #{record.status,jdbcType=VARCHAR}, + + + purchase_status = #{record.purchaseStatus,jdbcType=VARCHAR}, + + + source = #{record.source,jdbcType=VARCHAR}, + + + link_number = #{record.linkNumber,jdbcType=VARCHAR}, + + + link_apply = #{record.linkApply,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_depot_head + set id = #{record.id,jdbcType=BIGINT}, + type = #{record.type,jdbcType=VARCHAR}, + sub_type = #{record.subType,jdbcType=VARCHAR}, + default_number = #{record.defaultNumber,jdbcType=VARCHAR}, + number = #{record.number,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + oper_time = #{record.operTime,jdbcType=TIMESTAMP}, + organ_id = #{record.organId,jdbcType=BIGINT}, + creator = #{record.creator,jdbcType=BIGINT}, + account_id = #{record.accountId,jdbcType=BIGINT}, + change_amount = #{record.changeAmount,jdbcType=DECIMAL}, + back_amount = #{record.backAmount,jdbcType=DECIMAL}, + total_price = #{record.totalPrice,jdbcType=DECIMAL}, + pay_type = #{record.payType,jdbcType=VARCHAR}, + bill_type = #{record.billType,jdbcType=VARCHAR}, + remark = #{record.remark,jdbcType=VARCHAR}, + file_name = #{record.fileName,jdbcType=VARCHAR}, + sales_man = #{record.salesMan,jdbcType=VARCHAR}, + account_id_list = #{record.accountIdList,jdbcType=VARCHAR}, + account_money_list = #{record.accountMoneyList,jdbcType=VARCHAR}, + discount = #{record.discount,jdbcType=DECIMAL}, + discount_money = #{record.discountMoney,jdbcType=DECIMAL}, + discount_last_money = #{record.discountLastMoney,jdbcType=DECIMAL}, + other_money = #{record.otherMoney,jdbcType=DECIMAL}, + deposit = #{record.deposit,jdbcType=DECIMAL}, + last_deposit = #{record.lastDeposit,jdbcType=DECIMAL}, + debt = #{record.debt,jdbcType=DECIMAL}, + last_debt = #{record.lastDebt,jdbcType=DECIMAL}, + status = #{record.status,jdbcType=VARCHAR}, + purchase_status = #{record.purchaseStatus,jdbcType=VARCHAR}, + source = #{record.source,jdbcType=VARCHAR}, + link_number = #{record.linkNumber,jdbcType=VARCHAR}, + link_apply = #{record.linkApply,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_depot_head + + + type = #{type,jdbcType=VARCHAR}, + + + sub_type = #{subType,jdbcType=VARCHAR}, + + + default_number = #{defaultNumber,jdbcType=VARCHAR}, + + + number = #{number,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + oper_time = #{operTime,jdbcType=TIMESTAMP}, + + + organ_id = #{organId,jdbcType=BIGINT}, + + + creator = #{creator,jdbcType=BIGINT}, + + + account_id = #{accountId,jdbcType=BIGINT}, + + + change_amount = #{changeAmount,jdbcType=DECIMAL}, + + + back_amount = #{backAmount,jdbcType=DECIMAL}, + + + total_price = #{totalPrice,jdbcType=DECIMAL}, + + + pay_type = #{payType,jdbcType=VARCHAR}, + + + bill_type = #{billType,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + file_name = #{fileName,jdbcType=VARCHAR}, + + + sales_man = #{salesMan,jdbcType=VARCHAR}, + + + account_id_list = #{accountIdList,jdbcType=VARCHAR}, + + + account_money_list = #{accountMoneyList,jdbcType=VARCHAR}, + + + discount = #{discount,jdbcType=DECIMAL}, + + + discount_money = #{discountMoney,jdbcType=DECIMAL}, + + + discount_last_money = #{discountLastMoney,jdbcType=DECIMAL}, + + + other_money = #{otherMoney,jdbcType=DECIMAL}, + + + deposit = #{deposit,jdbcType=DECIMAL}, + + + last_deposit = #{lastDeposit,jdbcType=DECIMAL}, + + + debt = #{debt,jdbcType=DECIMAL}, + + + last_debt = #{lastDebt,jdbcType=DECIMAL}, + + + status = #{status,jdbcType=VARCHAR}, + + + purchase_status = #{purchaseStatus,jdbcType=VARCHAR}, + + + source = #{source,jdbcType=VARCHAR}, + + + link_number = #{linkNumber,jdbcType=VARCHAR}, + + + link_apply = #{linkApply,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_depot_head + set type = #{type,jdbcType=VARCHAR}, + sub_type = #{subType,jdbcType=VARCHAR}, + default_number = #{defaultNumber,jdbcType=VARCHAR}, + number = #{number,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + oper_time = #{operTime,jdbcType=TIMESTAMP}, + organ_id = #{organId,jdbcType=BIGINT}, + creator = #{creator,jdbcType=BIGINT}, + account_id = #{accountId,jdbcType=BIGINT}, + change_amount = #{changeAmount,jdbcType=DECIMAL}, + back_amount = #{backAmount,jdbcType=DECIMAL}, + total_price = #{totalPrice,jdbcType=DECIMAL}, + pay_type = #{payType,jdbcType=VARCHAR}, + bill_type = #{billType,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + file_name = #{fileName,jdbcType=VARCHAR}, + sales_man = #{salesMan,jdbcType=VARCHAR}, + account_id_list = #{accountIdList,jdbcType=VARCHAR}, + account_money_list = #{accountMoneyList,jdbcType=VARCHAR}, + discount = #{discount,jdbcType=DECIMAL}, + discount_money = #{discountMoney,jdbcType=DECIMAL}, + discount_last_money = #{discountLastMoney,jdbcType=DECIMAL}, + other_money = #{otherMoney,jdbcType=DECIMAL}, + deposit = #{deposit,jdbcType=DECIMAL}, + last_deposit = #{lastDeposit,jdbcType=DECIMAL}, + debt = #{debt,jdbcType=DECIMAL}, + last_debt = #{lastDebt,jdbcType=DECIMAL}, + status = #{status,jdbcType=VARCHAR}, + purchase_status = #{purchaseStatus,jdbcType=VARCHAR}, + source = #{source,jdbcType=VARCHAR}, + link_number = #{linkNumber,jdbcType=VARCHAR}, + link_apply = #{linkApply,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml new file mode 100644 index 0000000..fad2372 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml @@ -0,0 +1,1545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + update tbl_depot_head + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + + + + + + + + + + + + + + + update tbl_depot_head dh set dh.account_id = null + where dh.id=#{id} + and ifnull(dh.delete_flag,'0') !='1' + + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/DepotItemMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/DepotItemMapper.xml new file mode 100644 index 0000000..6a1bdad --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/DepotItemMapper.xml @@ -0,0 +1,528 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, header_id, material_id, material_extend_id, material_unit, sku, oper_number, + basic_number, unit_price, purchase_unit_price, tax_unit_price, all_price, remark, + depot_id, another_depot_id, tax_rate, tax_money, tax_last_money, material_type, sn_list, + batch_number, expiration_date, link_id, tenant_id, delete_flag + + + + + delete from tbl_depot_item + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_depot_item + + + + + + insert into tbl_depot_item (id, header_id, material_id, + material_extend_id, material_unit, sku, + oper_number, basic_number, unit_price, + purchase_unit_price, tax_unit_price, all_price, + remark, depot_id, another_depot_id, + tax_rate, tax_money, tax_last_money, + material_type, sn_list, batch_number, + expiration_date, link_id, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{headerId,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, + #{materialExtendId,jdbcType=BIGINT}, #{materialUnit,jdbcType=VARCHAR}, #{sku,jdbcType=VARCHAR}, + #{operNumber,jdbcType=DECIMAL}, #{basicNumber,jdbcType=DECIMAL}, #{unitPrice,jdbcType=DECIMAL}, + #{purchaseUnitPrice,jdbcType=DECIMAL}, #{taxUnitPrice,jdbcType=DECIMAL}, #{allPrice,jdbcType=DECIMAL}, + #{remark,jdbcType=VARCHAR}, #{depotId,jdbcType=BIGINT}, #{anotherDepotId,jdbcType=BIGINT}, + #{taxRate,jdbcType=DECIMAL}, #{taxMoney,jdbcType=DECIMAL}, #{taxLastMoney,jdbcType=DECIMAL}, + #{materialType,jdbcType=VARCHAR}, #{snList,jdbcType=VARCHAR}, #{batchNumber,jdbcType=VARCHAR}, + #{expirationDate,jdbcType=TIMESTAMP}, #{linkId,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_depot_item + + + id, + + + header_id, + + + material_id, + + + material_extend_id, + + + material_unit, + + + sku, + + + oper_number, + + + basic_number, + + + unit_price, + + + purchase_unit_price, + + + tax_unit_price, + + + all_price, + + + remark, + + + depot_id, + + + another_depot_id, + + + tax_rate, + + + tax_money, + + + tax_last_money, + + + material_type, + + + sn_list, + + + batch_number, + + + expiration_date, + + + link_id, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{headerId,jdbcType=BIGINT}, + + + #{materialId,jdbcType=BIGINT}, + + + #{materialExtendId,jdbcType=BIGINT}, + + + #{materialUnit,jdbcType=VARCHAR}, + + + #{sku,jdbcType=VARCHAR}, + + + #{operNumber,jdbcType=DECIMAL}, + + + #{basicNumber,jdbcType=DECIMAL}, + + + #{unitPrice,jdbcType=DECIMAL}, + + + #{purchaseUnitPrice,jdbcType=DECIMAL}, + + + #{taxUnitPrice,jdbcType=DECIMAL}, + + + #{allPrice,jdbcType=DECIMAL}, + + + #{remark,jdbcType=VARCHAR}, + + + #{depotId,jdbcType=BIGINT}, + + + #{anotherDepotId,jdbcType=BIGINT}, + + + #{taxRate,jdbcType=DECIMAL}, + + + #{taxMoney,jdbcType=DECIMAL}, + + + #{taxLastMoney,jdbcType=DECIMAL}, + + + #{materialType,jdbcType=VARCHAR}, + + + #{snList,jdbcType=VARCHAR}, + + + #{batchNumber,jdbcType=VARCHAR}, + + + #{expirationDate,jdbcType=TIMESTAMP}, + + + #{linkId,jdbcType=BIGINT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_depot_item + + + id = #{record.id,jdbcType=BIGINT}, + + + header_id = #{record.headerId,jdbcType=BIGINT}, + + + material_id = #{record.materialId,jdbcType=BIGINT}, + + + material_extend_id = #{record.materialExtendId,jdbcType=BIGINT}, + + + material_unit = #{record.materialUnit,jdbcType=VARCHAR}, + + + sku = #{record.sku,jdbcType=VARCHAR}, + + + oper_number = #{record.operNumber,jdbcType=DECIMAL}, + + + basic_number = #{record.basicNumber,jdbcType=DECIMAL}, + + + unit_price = #{record.unitPrice,jdbcType=DECIMAL}, + + + purchase_unit_price = #{record.purchaseUnitPrice,jdbcType=DECIMAL}, + + + tax_unit_price = #{record.taxUnitPrice,jdbcType=DECIMAL}, + + + all_price = #{record.allPrice,jdbcType=DECIMAL}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + depot_id = #{record.depotId,jdbcType=BIGINT}, + + + another_depot_id = #{record.anotherDepotId,jdbcType=BIGINT}, + + + tax_rate = #{record.taxRate,jdbcType=DECIMAL}, + + + tax_money = #{record.taxMoney,jdbcType=DECIMAL}, + + + tax_last_money = #{record.taxLastMoney,jdbcType=DECIMAL}, + + + material_type = #{record.materialType,jdbcType=VARCHAR}, + + + sn_list = #{record.snList,jdbcType=VARCHAR}, + + + batch_number = #{record.batchNumber,jdbcType=VARCHAR}, + + + expiration_date = #{record.expirationDate,jdbcType=TIMESTAMP}, + + + link_id = #{record.linkId,jdbcType=BIGINT}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_depot_item + set id = #{record.id,jdbcType=BIGINT}, + header_id = #{record.headerId,jdbcType=BIGINT}, + material_id = #{record.materialId,jdbcType=BIGINT}, + material_extend_id = #{record.materialExtendId,jdbcType=BIGINT}, + material_unit = #{record.materialUnit,jdbcType=VARCHAR}, + sku = #{record.sku,jdbcType=VARCHAR}, + oper_number = #{record.operNumber,jdbcType=DECIMAL}, + basic_number = #{record.basicNumber,jdbcType=DECIMAL}, + unit_price = #{record.unitPrice,jdbcType=DECIMAL}, + purchase_unit_price = #{record.purchaseUnitPrice,jdbcType=DECIMAL}, + tax_unit_price = #{record.taxUnitPrice,jdbcType=DECIMAL}, + all_price = #{record.allPrice,jdbcType=DECIMAL}, + remark = #{record.remark,jdbcType=VARCHAR}, + depot_id = #{record.depotId,jdbcType=BIGINT}, + another_depot_id = #{record.anotherDepotId,jdbcType=BIGINT}, + tax_rate = #{record.taxRate,jdbcType=DECIMAL}, + tax_money = #{record.taxMoney,jdbcType=DECIMAL}, + tax_last_money = #{record.taxLastMoney,jdbcType=DECIMAL}, + material_type = #{record.materialType,jdbcType=VARCHAR}, + sn_list = #{record.snList,jdbcType=VARCHAR}, + batch_number = #{record.batchNumber,jdbcType=VARCHAR}, + expiration_date = #{record.expirationDate,jdbcType=TIMESTAMP}, + link_id = #{record.linkId,jdbcType=BIGINT}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_depot_item + + + header_id = #{headerId,jdbcType=BIGINT}, + + + material_id = #{materialId,jdbcType=BIGINT}, + + + material_extend_id = #{materialExtendId,jdbcType=BIGINT}, + + + material_unit = #{materialUnit,jdbcType=VARCHAR}, + + + sku = #{sku,jdbcType=VARCHAR}, + + + oper_number = #{operNumber,jdbcType=DECIMAL}, + + + basic_number = #{basicNumber,jdbcType=DECIMAL}, + + + unit_price = #{unitPrice,jdbcType=DECIMAL}, + + + purchase_unit_price = #{purchaseUnitPrice,jdbcType=DECIMAL}, + + + tax_unit_price = #{taxUnitPrice,jdbcType=DECIMAL}, + + + all_price = #{allPrice,jdbcType=DECIMAL}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + depot_id = #{depotId,jdbcType=BIGINT}, + + + another_depot_id = #{anotherDepotId,jdbcType=BIGINT}, + + + tax_rate = #{taxRate,jdbcType=DECIMAL}, + + + tax_money = #{taxMoney,jdbcType=DECIMAL}, + + + tax_last_money = #{taxLastMoney,jdbcType=DECIMAL}, + + + material_type = #{materialType,jdbcType=VARCHAR}, + + + sn_list = #{snList,jdbcType=VARCHAR}, + + + batch_number = #{batchNumber,jdbcType=VARCHAR}, + + + expiration_date = #{expirationDate,jdbcType=TIMESTAMP}, + + + link_id = #{linkId,jdbcType=BIGINT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_depot_item + set header_id = #{headerId,jdbcType=BIGINT}, + material_id = #{materialId,jdbcType=BIGINT}, + material_extend_id = #{materialExtendId,jdbcType=BIGINT}, + material_unit = #{materialUnit,jdbcType=VARCHAR}, + sku = #{sku,jdbcType=VARCHAR}, + oper_number = #{operNumber,jdbcType=DECIMAL}, + basic_number = #{basicNumber,jdbcType=DECIMAL}, + unit_price = #{unitPrice,jdbcType=DECIMAL}, + purchase_unit_price = #{purchaseUnitPrice,jdbcType=DECIMAL}, + tax_unit_price = #{taxUnitPrice,jdbcType=DECIMAL}, + all_price = #{allPrice,jdbcType=DECIMAL}, + remark = #{remark,jdbcType=VARCHAR}, + depot_id = #{depotId,jdbcType=BIGINT}, + another_depot_id = #{anotherDepotId,jdbcType=BIGINT}, + tax_rate = #{taxRate,jdbcType=DECIMAL}, + tax_money = #{taxMoney,jdbcType=DECIMAL}, + tax_last_money = #{taxLastMoney,jdbcType=DECIMAL}, + material_type = #{materialType,jdbcType=VARCHAR}, + sn_list = #{snList,jdbcType=VARCHAR}, + batch_number = #{batchNumber,jdbcType=VARCHAR}, + expiration_date = #{expirationDate,jdbcType=TIMESTAMP}, + link_id = #{linkId,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml new file mode 100644 index 0000000..83d0c7f --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -0,0 +1,1156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into tbl_depot_item (header_id, material_id, material_extend_id, material_unit, sku, oper_number, + basic_number, unit_price, purchase_unit_price, tax_unit_price, all_price, remark, depot_id, another_depot_id, + tax_rate, tax_money, tax_last_money, material_type, sn_list, batch_number, expiration_date, link_id) + values + + (#{item.headerId,jdbcType=BIGINT}, #{item.materialId,jdbcType=BIGINT}, + #{item.materialExtendId,jdbcType=BIGINT}, #{item.materialUnit,jdbcType=VARCHAR}, #{item.sku,jdbcType=VARCHAR}, + #{item.operNumber,jdbcType=DECIMAL}, #{item.basicNumber,jdbcType=DECIMAL}, #{item.unitPrice,jdbcType=DECIMAL}, + #{item.purchaseUnitPrice,jdbcType=DECIMAL}, #{item.taxUnitPrice,jdbcType=DECIMAL}, #{item.allPrice,jdbcType=DECIMAL}, + #{item.remark,jdbcType=VARCHAR}, #{item.depotId,jdbcType=BIGINT}, #{item.anotherDepotId,jdbcType=BIGINT}, + #{item.taxRate,jdbcType=DECIMAL}, #{item.taxMoney,jdbcType=DECIMAL}, #{item.taxLastMoney,jdbcType=DECIMAL}, + #{item.materialType,jdbcType=VARCHAR}, #{item.snList,jdbcType=VARCHAR}, #{item.batchNumber,jdbcType=VARCHAR}, + #{item.expirationDate,jdbcType=TIMESTAMP}, #{item.linkId,jdbcType=BIGINT}) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and (dh.sub_type!='采购' and dh.sub_type!='采购退货' and dh.sub_type!='销售' and dh.sub_type!='销售退货') + + + + + + and di.depot_id in #{item} + + + + + + and di.another_depot_id in #{item} + + + + + + + update tbl_depot_item + set delete_flag='1' + where 1=1 + and header_id in + ( + + #{depotheadId} + + ) + + + + update tbl_depot_item + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/DepotMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/DepotMapper.xml new file mode 100644 index 0000000..8c7615a --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/DepotMapper.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, address, warehousing, truckage, type, sort, remark, principal, enabled, + tenant_id, delete_Flag, is_default + + + + + delete from tbl_depot + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_depot + + + + + + insert into tbl_depot (id, name, address, + warehousing, truckage, type, + sort, remark, principal, + enabled, tenant_id, delete_Flag, + is_default) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, + #{warehousing,jdbcType=DECIMAL}, #{truckage,jdbcType=DECIMAL}, #{type,jdbcType=INTEGER}, + #{sort,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{principal,jdbcType=BIGINT}, + #{enabled,jdbcType=BIT}, #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}, + #{isDefault,jdbcType=BIT}) + + + insert into tbl_depot + + + id, + + + name, + + + address, + + + warehousing, + + + truckage, + + + type, + + + sort, + + + remark, + + + principal, + + + enabled, + + + tenant_id, + + + delete_Flag, + + + is_default, + + + + + #{id,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{address,jdbcType=VARCHAR}, + + + #{warehousing,jdbcType=DECIMAL}, + + + #{truckage,jdbcType=DECIMAL}, + + + #{type,jdbcType=INTEGER}, + + + #{sort,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{principal,jdbcType=BIGINT}, + + + #{enabled,jdbcType=BIT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + #{isDefault,jdbcType=BIT}, + + + + + + update tbl_depot + + + id = #{record.id,jdbcType=BIGINT}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + address = #{record.address,jdbcType=VARCHAR}, + + + warehousing = #{record.warehousing,jdbcType=DECIMAL}, + + + truckage = #{record.truckage,jdbcType=DECIMAL}, + + + type = #{record.type,jdbcType=INTEGER}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + principal = #{record.principal,jdbcType=BIGINT}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + is_default = #{record.isDefault,jdbcType=BIT}, + + + + + + + + update tbl_depot + set id = #{record.id,jdbcType=BIGINT}, + name = #{record.name,jdbcType=VARCHAR}, + address = #{record.address,jdbcType=VARCHAR}, + warehousing = #{record.warehousing,jdbcType=DECIMAL}, + truckage = #{record.truckage,jdbcType=DECIMAL}, + type = #{record.type,jdbcType=INTEGER}, + sort = #{record.sort,jdbcType=VARCHAR}, + remark = #{record.remark,jdbcType=VARCHAR}, + principal = #{record.principal,jdbcType=BIGINT}, + enabled = #{record.enabled,jdbcType=BIT}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR}, + is_default = #{record.isDefault,jdbcType=BIT} + + + + + + update tbl_depot + + + name = #{name,jdbcType=VARCHAR}, + + + address = #{address,jdbcType=VARCHAR}, + + + warehousing = #{warehousing,jdbcType=DECIMAL}, + + + truckage = #{truckage,jdbcType=DECIMAL}, + + + type = #{type,jdbcType=INTEGER}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + principal = #{principal,jdbcType=BIGINT}, + + + enabled = #{enabled,jdbcType=BIT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_Flag = #{deleteFlag,jdbcType=VARCHAR}, + + + is_default = #{isDefault,jdbcType=BIT}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_depot + set name = #{name,jdbcType=VARCHAR}, + address = #{address,jdbcType=VARCHAR}, + warehousing = #{warehousing,jdbcType=DECIMAL}, + truckage = #{truckage,jdbcType=DECIMAL}, + type = #{type,jdbcType=INTEGER}, + sort = #{sort,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + principal = #{principal,jdbcType=BIGINT}, + enabled = #{enabled,jdbcType=BIT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_Flag = #{deleteFlag,jdbcType=VARCHAR}, + is_default = #{isDefault,jdbcType=BIT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/DepotMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/DepotMapperEx.xml new file mode 100644 index 0000000..b7fa179 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/DepotMapperEx.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + update tbl_depot + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/FunctionMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/FunctionMapper.xml new file mode 100644 index 0000000..4aadebf --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/FunctionMapper.xml @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, number, name, name_en, parent_number, url, component, state, sort, enabled, type, push_btn, + icon, delete_flag + + + + + delete from tbl_function + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_function + + + + + + insert into tbl_function (id, number, name, name_en, + parent_number, url, component, + state, sort, enabled, type, + push_btn, icon, delete_flag + ) + values (#{id,jdbcType=BIGINT}, #{number,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{nameEn,jdbcType=VARCHAR}, + #{parentNumber,jdbcType=VARCHAR}, #{url,jdbcType=VARCHAR}, #{component,jdbcType=VARCHAR}, + #{state,jdbcType=BIT}, #{sort,jdbcType=VARCHAR}, #{enabled,jdbcType=BIT}, #{type,jdbcType=VARCHAR}, + #{pushBtn,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=VARCHAR} + ) + + + insert into tbl_function + + + id, + + + number, + + + name, + + + name_en, + + + parent_number, + + + url, + + + component, + + + state, + + + sort, + + + enabled, + + + type, + + + push_btn, + + + icon, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{number,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{nameEn,jdbcType=VARCHAR}, + + + #{parentNumber,jdbcType=VARCHAR}, + + + #{url,jdbcType=VARCHAR}, + + + #{component,jdbcType=VARCHAR}, + + + #{state,jdbcType=BIT}, + + + #{sort,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BIT}, + + + #{type,jdbcType=VARCHAR}, + + + #{pushBtn,jdbcType=VARCHAR}, + + + #{icon,jdbcType=VARCHAR}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_function + + + id = #{record.id,jdbcType=BIGINT}, + + + number = #{record.number,jdbcType=VARCHAR}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + name_en = #{record.nameEn,jdbcType=VARCHAR}, + + + parent_number = #{record.parentNumber,jdbcType=VARCHAR}, + + + url = #{record.url,jdbcType=VARCHAR}, + + + component = #{record.component,jdbcType=VARCHAR}, + + + state = #{record.state,jdbcType=BIT}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + push_btn = #{record.pushBtn,jdbcType=VARCHAR}, + + + icon = #{record.icon,jdbcType=VARCHAR}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_function + set id = #{record.id,jdbcType=BIGINT}, + number = #{record.number,jdbcType=VARCHAR}, + name = #{record.name,jdbcType=VARCHAR}, + name_en = #{record.nameEn,jdbcType=VARCHAR}, + parent_number = #{record.parentNumber,jdbcType=VARCHAR}, + url = #{record.url,jdbcType=VARCHAR}, + component = #{record.component,jdbcType=VARCHAR}, + state = #{record.state,jdbcType=BIT}, + sort = #{record.sort,jdbcType=VARCHAR}, + enabled = #{record.enabled,jdbcType=BIT}, + type = #{record.type,jdbcType=VARCHAR}, + push_btn = #{record.pushBtn,jdbcType=VARCHAR}, + icon = #{record.icon,jdbcType=VARCHAR}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_function + + + number = #{number,jdbcType=VARCHAR}, + + + name = #{name,jdbcType=VARCHAR}, + + + name_en = #{nameEn,jdbcType=VARCHAR}, + + + parent_number = #{parentNumber,jdbcType=VARCHAR}, + + + url = #{url,jdbcType=VARCHAR}, + + + component = #{component,jdbcType=VARCHAR}, + + + state = #{state,jdbcType=BIT}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BIT}, + + + type = #{type,jdbcType=VARCHAR}, + + + push_btn = #{pushBtn,jdbcType=VARCHAR}, + + + icon = #{icon,jdbcType=VARCHAR}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_function + set number = #{number,jdbcType=VARCHAR}, + name = #{name,jdbcType=VARCHAR}, + name_en = #{nameEn,jdbcType=VARCHAR}, + parent_number = #{parentNumber,jdbcType=VARCHAR}, + url = #{url,jdbcType=VARCHAR}, + component = #{component,jdbcType=VARCHAR}, + state = #{state,jdbcType=BIT}, + sort = #{sort,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + type = #{type,jdbcType=VARCHAR}, + push_btn = #{pushBtn,jdbcType=VARCHAR}, + icon = #{icon,jdbcType=VARCHAR}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/FunctionMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/FunctionMapperEx.xml new file mode 100644 index 0000000..acc28b6 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/FunctionMapperEx.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + update tbl_function + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/InOutItemMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/InOutItemMapper.xml new file mode 100644 index 0000000..beb24b6 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/InOutItemMapper.xml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, type, remark, enabled, sort, tenant_id, delete_flag + + + + + delete from tbl_in_out_item + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_in_out_item + + + + + + insert into tbl_in_out_item (id, name, type, + remark, enabled, sort, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, + #{remark,jdbcType=VARCHAR}, #{enabled,jdbcType=BIT}, #{sort,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_in_out_item + + + id, + + + name, + + + type, + + + remark, + + + enabled, + + + sort, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{type,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BIT}, + + + #{sort,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_in_out_item + + + id = #{record.id,jdbcType=BIGINT}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_in_out_item + set id = #{record.id,jdbcType=BIGINT}, + name = #{record.name,jdbcType=VARCHAR}, + type = #{record.type,jdbcType=VARCHAR}, + remark = #{record.remark,jdbcType=VARCHAR}, + enabled = #{record.enabled,jdbcType=BIT}, + sort = #{record.sort,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_in_out_item + + + name = #{name,jdbcType=VARCHAR}, + + + type = #{type,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BIT}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_in_out_item + set name = #{name,jdbcType=VARCHAR}, + type = #{type,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + sort = #{sort,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/InOutItemMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/InOutItemMapperEx.xml new file mode 100644 index 0000000..1c70499 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/InOutItemMapperEx.xml @@ -0,0 +1,33 @@ + + + + + + + update tbl_in_out_item + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/LogMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/LogMapper.xml new file mode 100644 index 0000000..e582c90 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/LogMapper.xml @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, user_id, operation, client_ip, create_time, status, content, tenant_id, + request_url, request_params, response_params + + + + + delete from tbl_log + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_log + + + + + + insert into tbl_log (id, user_id, operation, + client_ip, create_time, status, + content, tenant_id, request_url, + request_params, response_params) + values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{operation,jdbcType=VARCHAR}, + #{clientIp,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=TINYINT}, + #{content,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT}, #{requestUrl,jdbcType=VARCHAR}, + #{requestParams,jdbcType=LONGVARCHAR}, #{responseParams,jdbcType=LONGVARCHAR}) + + + insert into tbl_log + + + id, + + + user_id, + + + operation, + + + client_ip, + + + create_time, + + + status, + + + content, + + + tenant_id, + + + request_url, + + + request_params, + + + response_params, + + + + + #{id,jdbcType=BIGINT}, + + + #{userId,jdbcType=BIGINT}, + + + #{operation,jdbcType=VARCHAR}, + + + #{clientIp,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{status,jdbcType=TINYINT}, + + + #{content,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{requestUrl,jdbcType=VARCHAR}, + + + #{requestParams,jdbcType=LONGVARCHAR}, + + + #{responseParams,jdbcType=LONGVARCHAR}, + + + + + + update tbl_log + + + id = #{record.id,jdbcType=BIGINT}, + + + user_id = #{record.userId,jdbcType=BIGINT}, + + + operation = #{record.operation,jdbcType=VARCHAR}, + + + client_ip = #{record.clientIp,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + status = #{record.status,jdbcType=TINYINT}, + + + content = #{record.content,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + request_url = #{record.requestUrl,jdbcType=VARCHAR}, + + + request_params = #{record.requestParams,jdbcType=LONGVARCHAR}, + + + response_params = #{record.responseParams,jdbcType=LONGVARCHAR}, + + + + + + + + update tbl_log + set id = #{record.id,jdbcType=BIGINT}, + user_id = #{record.userId,jdbcType=BIGINT}, + operation = #{record.operation,jdbcType=VARCHAR}, + client_ip = #{record.clientIp,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + status = #{record.status,jdbcType=TINYINT}, + content = #{record.content,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + request_url = #{record.requestUrl,jdbcType=VARCHAR}, + request_params = #{record.requestParams,jdbcType=LONGVARCHAR}, + response_params = #{record.responseParams,jdbcType=LONGVARCHAR} + + + + + + update tbl_log + + + user_id = #{userId,jdbcType=BIGINT}, + + + operation = #{operation,jdbcType=VARCHAR}, + + + client_ip = #{clientIp,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + status = #{status,jdbcType=TINYINT}, + + + content = #{content,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + request_url = #{requestUrl,jdbcType=VARCHAR}, + + + request_params = #{requestParams,jdbcType=LONGVARCHAR}, + + + response_params = #{responseParams,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_log + set user_id = #{userId,jdbcType=BIGINT}, + operation = #{operation,jdbcType=VARCHAR}, + client_ip = #{clientIp,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + status = #{status,jdbcType=TINYINT}, + content = #{content,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + request_url = #{requestUrl,jdbcType=VARCHAR}, + request_params = #{requestParams,jdbcType=LONGVARCHAR}, + response_params = #{responseParams,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=BIGINT} + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/LogMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/LogMapperEx.xml new file mode 100644 index 0000000..c9a9737 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/LogMapperEx.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + insert into tbl_log (user_id, operation, + client_ip, create_time, status, + content) + values (#{userId,jdbcType=BIGINT}, #{operation,jdbcType=VARCHAR}, + #{clientIp,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=TINYINT}, + #{content,jdbcType=VARCHAR}) + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialAttributeMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialAttributeMapper.xml new file mode 100644 index 0000000..8c7f6c4 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialAttributeMapper.xml @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, attribute_name, attribute_value, tenant_id, delete_flag + + + + + delete from tbl_material_attribute + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_material_attribute + + + + + + insert into tbl_material_attribute (id, attribute_name, attribute_value, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{attributeName,jdbcType=VARCHAR}, #{attributeValue,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_material_attribute + + + id, + + + attribute_name, + + + attribute_value, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{attributeName,jdbcType=VARCHAR}, + + + #{attributeValue,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_material_attribute + + + id = #{record.id,jdbcType=BIGINT}, + + + attribute_name = #{record.attributeName,jdbcType=VARCHAR}, + + + attribute_value = #{record.attributeValue,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_material_attribute + set id = #{record.id,jdbcType=BIGINT}, + attribute_name = #{record.attributeName,jdbcType=VARCHAR}, + attribute_value = #{record.attributeValue,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_material_attribute + + + attribute_name = #{attributeName,jdbcType=VARCHAR}, + + + attribute_value = #{attributeValue,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_material_attribute + set attribute_name = #{attributeName,jdbcType=VARCHAR}, + attribute_value = #{attributeValue,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialAttributeMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialAttributeMapperEx.xml new file mode 100644 index 0000000..f31262c --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialAttributeMapperEx.xml @@ -0,0 +1,30 @@ + + + + + + + + update tbl_material_attribute + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialCategoryMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialCategoryMapper.xml new file mode 100644 index 0000000..6789da2 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialCategoryMapper.xml @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, category_level, parent_id, sort, serial_no, remark, create_time, update_time, + tenant_id, delete_flag + + + + + delete from tbl_material_category + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_material_category + + + + + + insert into tbl_material_category (id, name, category_level, + parent_id, sort, serial_no, + remark, create_time, update_time, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{categoryLevel,jdbcType=SMALLINT}, + #{parentId,jdbcType=BIGINT}, #{sort,jdbcType=VARCHAR}, #{serialNo,jdbcType=VARCHAR}, + #{remark,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_material_category + + + id, + + + name, + + + category_level, + + + parent_id, + + + sort, + + + serial_no, + + + remark, + + + create_time, + + + update_time, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{categoryLevel,jdbcType=SMALLINT}, + + + #{parentId,jdbcType=BIGINT}, + + + #{sort,jdbcType=VARCHAR}, + + + #{serialNo,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_material_category + + + id = #{record.id,jdbcType=BIGINT}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + category_level = #{record.categoryLevel,jdbcType=SMALLINT}, + + + parent_id = #{record.parentId,jdbcType=BIGINT}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + serial_no = #{record.serialNo,jdbcType=VARCHAR}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_material_category + set id = #{record.id,jdbcType=BIGINT}, + name = #{record.name,jdbcType=VARCHAR}, + category_level = #{record.categoryLevel,jdbcType=SMALLINT}, + parent_id = #{record.parentId,jdbcType=BIGINT}, + sort = #{record.sort,jdbcType=VARCHAR}, + serial_no = #{record.serialNo,jdbcType=VARCHAR}, + remark = #{record.remark,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_material_category + + + name = #{name,jdbcType=VARCHAR}, + + + category_level = #{categoryLevel,jdbcType=SMALLINT}, + + + parent_id = #{parentId,jdbcType=BIGINT}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + serial_no = #{serialNo,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_material_category + set name = #{name,jdbcType=VARCHAR}, + category_level = #{categoryLevel,jdbcType=SMALLINT}, + parent_id = #{parentId,jdbcType=BIGINT}, + sort = #{sort,jdbcType=VARCHAR}, + serial_no = #{serialNo,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialCategoryMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialCategoryMapperEx.xml new file mode 100644 index 0000000..587bf61 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialCategoryMapperEx.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, name + + + + + + + insert into tbl_material_category + (name, category_level, parent_id, sort,status,serial_no,remark, + create_time, update_time) + values + (#{name},#{categoryLevel},#{parentId},#{sort},#{status},#{serialNo},#{remark}, + #{createTime},#{updateTime} + ) + + + update tbl_material_category + set update_time=#{updateTime},delete_flag='1' + where id in ( + + #{id} + + ) + + + update tbl_material_category + set update_time=#{updateTime}, + parent_id=#{parentId},sort=#{sort},serial_no=#{serialNo}, + name=#{name},remark=#{remark} + where id =#{id} + + + + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialCurrentStockMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialCurrentStockMapper.xml new file mode 100644 index 0000000..7144bd8 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialCurrentStockMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, material_id, depot_id, current_number, current_unit_price, tenant_id, delete_flag + + + + + delete from tbl_material_current_stock + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_material_current_stock + + + + + + insert into tbl_material_current_stock (id, material_id, depot_id, + current_number, current_unit_price, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{depotId,jdbcType=BIGINT}, + #{currentNumber,jdbcType=DECIMAL}, #{currentUnitPrice,jdbcType=DECIMAL}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_material_current_stock + + + id, + + + material_id, + + + depot_id, + + + current_number, + + + current_unit_price, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{materialId,jdbcType=BIGINT}, + + + #{depotId,jdbcType=BIGINT}, + + + #{currentNumber,jdbcType=DECIMAL}, + + + #{currentUnitPrice,jdbcType=DECIMAL}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_material_current_stock + + + id = #{record.id,jdbcType=BIGINT}, + + + material_id = #{record.materialId,jdbcType=BIGINT}, + + + depot_id = #{record.depotId,jdbcType=BIGINT}, + + + current_number = #{record.currentNumber,jdbcType=DECIMAL}, + + + current_unit_price = #{record.currentUnitPrice,jdbcType=DECIMAL}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_material_current_stock + set id = #{record.id,jdbcType=BIGINT}, + material_id = #{record.materialId,jdbcType=BIGINT}, + depot_id = #{record.depotId,jdbcType=BIGINT}, + current_number = #{record.currentNumber,jdbcType=DECIMAL}, + current_unit_price = #{record.currentUnitPrice,jdbcType=DECIMAL}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_material_current_stock + + + material_id = #{materialId,jdbcType=BIGINT}, + + + depot_id = #{depotId,jdbcType=BIGINT}, + + + current_number = #{currentNumber,jdbcType=DECIMAL}, + + + current_unit_price = #{currentUnitPrice,jdbcType=DECIMAL}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_material_current_stock + set material_id = #{materialId,jdbcType=BIGINT}, + depot_id = #{depotId,jdbcType=BIGINT}, + current_number = #{currentNumber,jdbcType=DECIMAL}, + current_unit_price = #{currentUnitPrice,jdbcType=DECIMAL}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialCurrentStockMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialCurrentStockMapperEx.xml new file mode 100644 index 0000000..409d2b6 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialCurrentStockMapperEx.xml @@ -0,0 +1,49 @@ + + + + + + insert into tbl_material_current_stock (material_id, depot_id, current_number) + values + + (#{item.materialId,jdbcType=BIGINT}, #{item.depotId,jdbcType=BIGINT},#{item.currentNumber,jdbcType=DECIMAL}) + + + + + + + update tbl_material_current_stock set current_unit_price = #{currentUnitPrice} + where material_id = #{materialId} + and ifnull(delete_flag,'0') !='1' + + + + + + update tbl_material_current_stock + set delete_flag='1' + where 1=1 + and depot_id in ( + + #{id} + + ) + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialExtendMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialExtendMapper.xml new file mode 100644 index 0000000..798623d --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialExtendMapper.xml @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, material_id, bar_code, commodity_unit, sku, purchase_decimal, commodity_decimal, + wholesale_decimal, low_decimal, default_flag, create_time, create_serial, update_serial, + update_time, tenant_id, delete_Flag + + + + + delete from tbl_material_extend + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_material_extend + + + + + + insert into tbl_material_extend (id, material_id, bar_code, + commodity_unit, sku, purchase_decimal, + commodity_decimal, wholesale_decimal, low_decimal, + default_flag, create_time, create_serial, + update_serial, update_time, tenant_id, + delete_Flag) + values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{barCode,jdbcType=VARCHAR}, + #{commodityUnit,jdbcType=VARCHAR}, #{sku,jdbcType=VARCHAR}, #{purchaseDecimal,jdbcType=DECIMAL}, + #{commodityDecimal,jdbcType=DECIMAL}, #{wholesaleDecimal,jdbcType=DECIMAL}, #{lowDecimal,jdbcType=DECIMAL}, + #{defaultFlag,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{createSerial,jdbcType=VARCHAR}, + #{updateSerial,jdbcType=VARCHAR}, #{updateTime,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_material_extend + + + id, + + + material_id, + + + bar_code, + + + commodity_unit, + + + sku, + + + purchase_decimal, + + + commodity_decimal, + + + wholesale_decimal, + + + low_decimal, + + + default_flag, + + + create_time, + + + create_serial, + + + update_serial, + + + update_time, + + + tenant_id, + + + delete_Flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{materialId,jdbcType=BIGINT}, + + + #{barCode,jdbcType=VARCHAR}, + + + #{commodityUnit,jdbcType=VARCHAR}, + + + #{sku,jdbcType=VARCHAR}, + + + #{purchaseDecimal,jdbcType=DECIMAL}, + + + #{commodityDecimal,jdbcType=DECIMAL}, + + + #{wholesaleDecimal,jdbcType=DECIMAL}, + + + #{lowDecimal,jdbcType=DECIMAL}, + + + #{defaultFlag,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{createSerial,jdbcType=VARCHAR}, + + + #{updateSerial,jdbcType=VARCHAR}, + + + #{updateTime,jdbcType=BIGINT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_material_extend + + + id = #{record.id,jdbcType=BIGINT}, + + + material_id = #{record.materialId,jdbcType=BIGINT}, + + + bar_code = #{record.barCode,jdbcType=VARCHAR}, + + + commodity_unit = #{record.commodityUnit,jdbcType=VARCHAR}, + + + sku = #{record.sku,jdbcType=VARCHAR}, + + + purchase_decimal = #{record.purchaseDecimal,jdbcType=DECIMAL}, + + + commodity_decimal = #{record.commodityDecimal,jdbcType=DECIMAL}, + + + wholesale_decimal = #{record.wholesaleDecimal,jdbcType=DECIMAL}, + + + low_decimal = #{record.lowDecimal,jdbcType=DECIMAL}, + + + default_flag = #{record.defaultFlag,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + create_serial = #{record.createSerial,jdbcType=VARCHAR}, + + + update_serial = #{record.updateSerial,jdbcType=VARCHAR}, + + + update_time = #{record.updateTime,jdbcType=BIGINT}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_material_extend + set id = #{record.id,jdbcType=BIGINT}, + material_id = #{record.materialId,jdbcType=BIGINT}, + bar_code = #{record.barCode,jdbcType=VARCHAR}, + commodity_unit = #{record.commodityUnit,jdbcType=VARCHAR}, + sku = #{record.sku,jdbcType=VARCHAR}, + purchase_decimal = #{record.purchaseDecimal,jdbcType=DECIMAL}, + commodity_decimal = #{record.commodityDecimal,jdbcType=DECIMAL}, + wholesale_decimal = #{record.wholesaleDecimal,jdbcType=DECIMAL}, + low_decimal = #{record.lowDecimal,jdbcType=DECIMAL}, + default_flag = #{record.defaultFlag,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + create_serial = #{record.createSerial,jdbcType=VARCHAR}, + update_serial = #{record.updateSerial,jdbcType=VARCHAR}, + update_time = #{record.updateTime,jdbcType=BIGINT}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_material_extend + + + material_id = #{materialId,jdbcType=BIGINT}, + + + bar_code = #{barCode,jdbcType=VARCHAR}, + + + commodity_unit = #{commodityUnit,jdbcType=VARCHAR}, + + + sku = #{sku,jdbcType=VARCHAR}, + + + purchase_decimal = #{purchaseDecimal,jdbcType=DECIMAL}, + + + commodity_decimal = #{commodityDecimal,jdbcType=DECIMAL}, + + + wholesale_decimal = #{wholesaleDecimal,jdbcType=DECIMAL}, + + + low_decimal = #{lowDecimal,jdbcType=DECIMAL}, + + + default_flag = #{defaultFlag,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + create_serial = #{createSerial,jdbcType=VARCHAR}, + + + update_serial = #{updateSerial,jdbcType=VARCHAR}, + + + update_time = #{updateTime,jdbcType=BIGINT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_Flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_material_extend + set material_id = #{materialId,jdbcType=BIGINT}, + bar_code = #{barCode,jdbcType=VARCHAR}, + commodity_unit = #{commodityUnit,jdbcType=VARCHAR}, + sku = #{sku,jdbcType=VARCHAR}, + purchase_decimal = #{purchaseDecimal,jdbcType=DECIMAL}, + commodity_decimal = #{commodityDecimal,jdbcType=DECIMAL}, + wholesale_decimal = #{wholesaleDecimal,jdbcType=DECIMAL}, + low_decimal = #{lowDecimal,jdbcType=DECIMAL}, + default_flag = #{defaultFlag,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + create_serial = #{createSerial,jdbcType=VARCHAR}, + update_serial = #{updateSerial,jdbcType=VARCHAR}, + update_time = #{updateTime,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_Flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialExtendMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialExtendMapperEx.xml new file mode 100644 index 0000000..6ade31c --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialExtendMapperEx.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + update tbl_material_extend + set delete_Flag='1' + where 1=1 + and ifnull(delete_Flag,'0') !='1' + and id in ( + + #{id} + + ) + + + + update tbl_material_extend + set delete_Flag='1' + where 1=1 + and ifnull(delete_Flag,'0') !='1' + and material_id in ( + + #{id} + + ) + + + + update tbl_material_extend + set purchase_decimal = #{purchaseDecimal,jdbcType=DECIMAL}, + commodity_decimal = #{commodityDecimal,jdbcType=DECIMAL}, + wholesale_decimal = #{wholesaleDecimal,jdbcType=DECIMAL}, + low_decimal = #{lowDecimal,jdbcType=DECIMAL} + where id = #{id,jdbcType=BIGINT} + and ifnull(delete_flag,'0') !='1' + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialInitialStockMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialInitialStockMapper.xml new file mode 100644 index 0000000..44ed090 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialInitialStockMapper.xml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, material_id, depot_id, number, low_safe_stock, high_safe_stock, tenant_id, delete_flag + + + + + delete from tbl_material_initial_stock + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_material_initial_stock + + + + + + insert into tbl_material_initial_stock (id, material_id, depot_id, + number, low_safe_stock, high_safe_stock, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{depotId,jdbcType=BIGINT}, + #{number,jdbcType=DECIMAL}, #{lowSafeStock,jdbcType=DECIMAL}, #{highSafeStock,jdbcType=DECIMAL}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_material_initial_stock + + + id, + + + material_id, + + + depot_id, + + + number, + + + low_safe_stock, + + + high_safe_stock, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{materialId,jdbcType=BIGINT}, + + + #{depotId,jdbcType=BIGINT}, + + + #{number,jdbcType=DECIMAL}, + + + #{lowSafeStock,jdbcType=DECIMAL}, + + + #{highSafeStock,jdbcType=DECIMAL}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_material_initial_stock + + + id = #{record.id,jdbcType=BIGINT}, + + + material_id = #{record.materialId,jdbcType=BIGINT}, + + + depot_id = #{record.depotId,jdbcType=BIGINT}, + + + number = #{record.number,jdbcType=DECIMAL}, + + + low_safe_stock = #{record.lowSafeStock,jdbcType=DECIMAL}, + + + high_safe_stock = #{record.highSafeStock,jdbcType=DECIMAL}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_material_initial_stock + set id = #{record.id,jdbcType=BIGINT}, + material_id = #{record.materialId,jdbcType=BIGINT}, + depot_id = #{record.depotId,jdbcType=BIGINT}, + number = #{record.number,jdbcType=DECIMAL}, + low_safe_stock = #{record.lowSafeStock,jdbcType=DECIMAL}, + high_safe_stock = #{record.highSafeStock,jdbcType=DECIMAL}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_material_initial_stock + + + material_id = #{materialId,jdbcType=BIGINT}, + + + depot_id = #{depotId,jdbcType=BIGINT}, + + + number = #{number,jdbcType=DECIMAL}, + + + low_safe_stock = #{lowSafeStock,jdbcType=DECIMAL}, + + + high_safe_stock = #{highSafeStock,jdbcType=DECIMAL}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_material_initial_stock + set material_id = #{materialId,jdbcType=BIGINT}, + depot_id = #{depotId,jdbcType=BIGINT}, + number = #{number,jdbcType=DECIMAL}, + low_safe_stock = #{lowSafeStock,jdbcType=DECIMAL}, + high_safe_stock = #{highSafeStock,jdbcType=DECIMAL}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialInitialStockMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialInitialStockMapperEx.xml new file mode 100644 index 0000000..e1f7955 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialInitialStockMapperEx.xml @@ -0,0 +1,41 @@ + + + + + + insert into tbl_material_initial_stock (material_id, depot_id, number) + values + + (#{item.materialId,jdbcType=BIGINT}, #{item.depotId,jdbcType=BIGINT},#{item.number,jdbcType=DECIMAL}) + + + + + + + + + + update tbl_material_initial_stock + set delete_flag='1' + where 1=1 + and depot_id in ( + + #{id} + + ) + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialMapper.xml new file mode 100644 index 0000000..a28c5c4 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialMapper.xml @@ -0,0 +1,527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, category_id, name, mfrs, model, standard, brand, mnemonic, color, unit, remark, + img_name, unit_id, expiry_num, weight, enabled, other_field1, other_field2, other_field3, + enable_serial_number, enable_batch_number, position, attribute, tenant_id, delete_flag + + + + + delete from tbl_material + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_material + + + + + + insert into tbl_material (id, category_id, name, + mfrs, model, standard, + brand, mnemonic, color, + unit, remark, img_name, + unit_id, expiry_num, weight, + enabled, other_field1, other_field2, + other_field3, enable_serial_number, enable_batch_number, + position, attribute, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{categoryId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, + #{mfrs,jdbcType=VARCHAR}, #{model,jdbcType=VARCHAR}, #{standard,jdbcType=VARCHAR}, + #{brand,jdbcType=VARCHAR}, #{mnemonic,jdbcType=VARCHAR}, #{color,jdbcType=VARCHAR}, + #{unit,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{imgName,jdbcType=VARCHAR}, + #{unitId,jdbcType=BIGINT}, #{expiryNum,jdbcType=INTEGER}, #{weight,jdbcType=DECIMAL}, + #{enabled,jdbcType=BIT}, #{otherField1,jdbcType=VARCHAR}, #{otherField2,jdbcType=VARCHAR}, + #{otherField3,jdbcType=VARCHAR}, #{enableSerialNumber,jdbcType=VARCHAR}, #{enableBatchNumber,jdbcType=VARCHAR}, + #{position,jdbcType=VARCHAR}, #{attribute,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_material + + + id, + + + category_id, + + + name, + + + mfrs, + + + model, + + + standard, + + + brand, + + + mnemonic, + + + color, + + + unit, + + + remark, + + + img_name, + + + unit_id, + + + expiry_num, + + + weight, + + + enabled, + + + other_field1, + + + other_field2, + + + other_field3, + + + enable_serial_number, + + + enable_batch_number, + + + position, + + + attribute, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{categoryId,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{mfrs,jdbcType=VARCHAR}, + + + #{model,jdbcType=VARCHAR}, + + + #{standard,jdbcType=VARCHAR}, + + + #{brand,jdbcType=VARCHAR}, + + + #{mnemonic,jdbcType=VARCHAR}, + + + #{color,jdbcType=VARCHAR}, + + + #{unit,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{imgName,jdbcType=VARCHAR}, + + + #{unitId,jdbcType=BIGINT}, + + + #{expiryNum,jdbcType=INTEGER}, + + + #{weight,jdbcType=DECIMAL}, + + + #{enabled,jdbcType=BIT}, + + + #{otherField1,jdbcType=VARCHAR}, + + + #{otherField2,jdbcType=VARCHAR}, + + + #{otherField3,jdbcType=VARCHAR}, + + + #{enableSerialNumber,jdbcType=VARCHAR}, + + + #{enableBatchNumber,jdbcType=VARCHAR}, + + + #{position,jdbcType=VARCHAR}, + + + #{attribute,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_material + + + id = #{record.id,jdbcType=BIGINT}, + + + category_id = #{record.categoryId,jdbcType=BIGINT}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + mfrs = #{record.mfrs,jdbcType=VARCHAR}, + + + model = #{record.model,jdbcType=VARCHAR}, + + + standard = #{record.standard,jdbcType=VARCHAR}, + + + brand = #{record.brand,jdbcType=VARCHAR}, + + + mnemonic = #{record.mnemonic,jdbcType=VARCHAR}, + + + color = #{record.color,jdbcType=VARCHAR}, + + + unit = #{record.unit,jdbcType=VARCHAR}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + img_name = #{record.imgName,jdbcType=VARCHAR}, + + + unit_id = #{record.unitId,jdbcType=BIGINT}, + + + expiry_num = #{record.expiryNum,jdbcType=INTEGER}, + + + weight = #{record.weight,jdbcType=DECIMAL}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + other_field1 = #{record.otherField1,jdbcType=VARCHAR}, + + + other_field2 = #{record.otherField2,jdbcType=VARCHAR}, + + + other_field3 = #{record.otherField3,jdbcType=VARCHAR}, + + + enable_serial_number = #{record.enableSerialNumber,jdbcType=VARCHAR}, + + + enable_batch_number = #{record.enableBatchNumber,jdbcType=VARCHAR}, + + + position = #{record.position,jdbcType=VARCHAR}, + + + attribute = #{record.attribute,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_material + set id = #{record.id,jdbcType=BIGINT}, + category_id = #{record.categoryId,jdbcType=BIGINT}, + name = #{record.name,jdbcType=VARCHAR}, + mfrs = #{record.mfrs,jdbcType=VARCHAR}, + model = #{record.model,jdbcType=VARCHAR}, + standard = #{record.standard,jdbcType=VARCHAR}, + brand = #{record.brand,jdbcType=VARCHAR}, + mnemonic = #{record.mnemonic,jdbcType=VARCHAR}, + color = #{record.color,jdbcType=VARCHAR}, + unit = #{record.unit,jdbcType=VARCHAR}, + remark = #{record.remark,jdbcType=VARCHAR}, + img_name = #{record.imgName,jdbcType=VARCHAR}, + unit_id = #{record.unitId,jdbcType=BIGINT}, + expiry_num = #{record.expiryNum,jdbcType=INTEGER}, + weight = #{record.weight,jdbcType=DECIMAL}, + enabled = #{record.enabled,jdbcType=BIT}, + other_field1 = #{record.otherField1,jdbcType=VARCHAR}, + other_field2 = #{record.otherField2,jdbcType=VARCHAR}, + other_field3 = #{record.otherField3,jdbcType=VARCHAR}, + enable_serial_number = #{record.enableSerialNumber,jdbcType=VARCHAR}, + enable_batch_number = #{record.enableBatchNumber,jdbcType=VARCHAR}, + position = #{record.position,jdbcType=VARCHAR}, + attribute = #{record.attribute,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_material + + + category_id = #{categoryId,jdbcType=BIGINT}, + + + name = #{name,jdbcType=VARCHAR}, + + + mfrs = #{mfrs,jdbcType=VARCHAR}, + + + model = #{model,jdbcType=VARCHAR}, + + + standard = #{standard,jdbcType=VARCHAR}, + + + brand = #{brand,jdbcType=VARCHAR}, + + + mnemonic = #{mnemonic,jdbcType=VARCHAR}, + + + color = #{color,jdbcType=VARCHAR}, + + + unit = #{unit,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + img_name = #{imgName,jdbcType=VARCHAR}, + + + unit_id = #{unitId,jdbcType=BIGINT}, + + + expiry_num = #{expiryNum,jdbcType=INTEGER}, + + + weight = #{weight,jdbcType=DECIMAL}, + + + enabled = #{enabled,jdbcType=BIT}, + + + other_field1 = #{otherField1,jdbcType=VARCHAR}, + + + other_field2 = #{otherField2,jdbcType=VARCHAR}, + + + other_field3 = #{otherField3,jdbcType=VARCHAR}, + + + enable_serial_number = #{enableSerialNumber,jdbcType=VARCHAR}, + + + enable_batch_number = #{enableBatchNumber,jdbcType=VARCHAR}, + + + position = #{position,jdbcType=VARCHAR}, + + + attribute = #{attribute,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_material + set category_id = #{categoryId,jdbcType=BIGINT}, + name = #{name,jdbcType=VARCHAR}, + mfrs = #{mfrs,jdbcType=VARCHAR}, + model = #{model,jdbcType=VARCHAR}, + standard = #{standard,jdbcType=VARCHAR}, + brand = #{brand,jdbcType=VARCHAR}, + mnemonic = #{mnemonic,jdbcType=VARCHAR}, + color = #{color,jdbcType=VARCHAR}, + unit = #{unit,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + img_name = #{imgName,jdbcType=VARCHAR}, + unit_id = #{unitId,jdbcType=BIGINT}, + expiry_num = #{expiryNum,jdbcType=INTEGER}, + weight = #{weight,jdbcType=DECIMAL}, + enabled = #{enabled,jdbcType=BIT}, + other_field1 = #{otherField1,jdbcType=VARCHAR}, + other_field2 = #{otherField2,jdbcType=VARCHAR}, + other_field3 = #{otherField3,jdbcType=VARCHAR}, + enable_serial_number = #{enableSerialNumber,jdbcType=VARCHAR}, + enable_batch_number = #{enableBatchNumber,jdbcType=VARCHAR}, + position = #{position,jdbcType=VARCHAR}, + attribute = #{attribute,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml new file mode 100644 index 0000000..0478aa3 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml @@ -0,0 +1,856 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into tbl_material + + + id, + + + category_id, + + + name, + + + mfrs, + + + model, + + + standard, + + + brand, + + + mnemonic, + + + color, + + + unit, + + + remark, + + + img_name, + + + unit_id, + + + expiry_num, + + + weight, + + + enabled, + + + other_field1, + + + other_field2, + + + other_field3, + + + enable_serial_number, + + + enable_batch_number, + + + position, + + + attribute, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{categoryId,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{mfrs,jdbcType=VARCHAR}, + + + #{model,jdbcType=VARCHAR}, + + + #{standard,jdbcType=VARCHAR}, + + + #{brand,jdbcType=VARCHAR}, + + + #{mnemonic,jdbcType=VARCHAR}, + + + #{color,jdbcType=VARCHAR}, + + + #{unit,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{imgName,jdbcType=VARCHAR}, + + + #{unitId,jdbcType=BIGINT}, + + + #{expiryNum,jdbcType=INTEGER}, + + + #{weight,jdbcType=DECIMAL}, + + + #{enabled,jdbcType=BIT}, + + + #{otherField1,jdbcType=VARCHAR}, + + + #{otherField2,jdbcType=VARCHAR}, + + + #{otherField3,jdbcType=VARCHAR}, + + + #{enableSerialNumber,jdbcType=VARCHAR}, + + + #{enableBatchNumber,jdbcType=VARCHAR}, + + + #{position,jdbcType=VARCHAR}, + + + #{attribute,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + + + + + + + + + + + + + + + + + + + + + + + update tbl_material + set delete_flag='1' + where 1=1 + and ifnull(delete_flag,'0') !='1' + and id in ( + + #{id} + + ) + + + + + + + + + + + + + + + + update tbl_material + set unit_id = null + where 1=1 + and ifnull(delete_flag,'0') !='1' + and id = #{id} + + + + update tbl_material + set expiry_num = null + where 1=1 + and ifnull(delete_flag,'0') !='1' + and id = #{id} + + + + + + + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialPropertyMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialPropertyMapper.xml new file mode 100644 index 0000000..4b4e636 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialPropertyMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, native_name, enabled, sort, another_name, tenant_id, delete_flag + + + + + delete from tbl_material_property + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_material_property + + + + + + insert into tbl_material_property (id, native_name, enabled, + sort, another_name, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{nativeName,jdbcType=VARCHAR}, #{enabled,jdbcType=BIT}, + #{sort,jdbcType=VARCHAR}, #{anotherName,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_material_property + + + id, + + + native_name, + + + enabled, + + + sort, + + + another_name, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{nativeName,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BIT}, + + + #{sort,jdbcType=VARCHAR}, + + + #{anotherName,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_material_property + + + id = #{record.id,jdbcType=BIGINT}, + + + native_name = #{record.nativeName,jdbcType=VARCHAR}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + another_name = #{record.anotherName,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_material_property + set id = #{record.id,jdbcType=BIGINT}, + native_name = #{record.nativeName,jdbcType=VARCHAR}, + enabled = #{record.enabled,jdbcType=BIT}, + sort = #{record.sort,jdbcType=VARCHAR}, + another_name = #{record.anotherName,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_material_property + + + native_name = #{nativeName,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BIT}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + another_name = #{anotherName,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_material_property + set native_name = #{nativeName,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + sort = #{sort,jdbcType=VARCHAR}, + another_name = #{anotherName,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MaterialPropertyMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/MaterialPropertyMapperEx.xml new file mode 100644 index 0000000..fdd270c --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MaterialPropertyMapperEx.xml @@ -0,0 +1,40 @@ + + + + + + + update tbl_material_property + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + + + update tbl_material_property + set another_name = #{anotherName} + where native_name = #{nativeName} + and ifnull(delete_flag,'0') !='1' + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MsgMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/MsgMapper.xml new file mode 100644 index 0000000..9d3f3bc --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MsgMapper.xml @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, msg_title, msg_content, create_time, type, user_id, status, tenant_id, delete_Flag + + + + + delete from tbl_msg + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_msg + + + + + + insert into tbl_msg (id, msg_title, msg_content, + create_time, type, user_id, + status, tenant_id, delete_Flag + ) + values (#{id,jdbcType=BIGINT}, #{msgTitle,jdbcType=VARCHAR}, #{msgContent,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{type,jdbcType=VARCHAR}, #{userId,jdbcType=BIGINT}, + #{status,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR} + ) + + + insert into tbl_msg + + + id, + + + msg_title, + + + msg_content, + + + create_time, + + + type, + + + user_id, + + + status, + + + tenant_id, + + + delete_Flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{msgTitle,jdbcType=VARCHAR}, + + + #{msgContent,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{type,jdbcType=VARCHAR}, + + + #{userId,jdbcType=BIGINT}, + + + #{status,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_msg + + + id = #{record.id,jdbcType=BIGINT}, + + + msg_title = #{record.msgTitle,jdbcType=VARCHAR}, + + + msg_content = #{record.msgContent,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + user_id = #{record.userId,jdbcType=BIGINT}, + + + status = #{record.status,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_msg + set id = #{record.id,jdbcType=BIGINT}, + msg_title = #{record.msgTitle,jdbcType=VARCHAR}, + msg_content = #{record.msgContent,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + type = #{record.type,jdbcType=VARCHAR}, + user_id = #{record.userId,jdbcType=BIGINT}, + status = #{record.status,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_msg + + + msg_title = #{msgTitle,jdbcType=VARCHAR}, + + + msg_content = #{msgContent,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + type = #{type,jdbcType=VARCHAR}, + + + user_id = #{userId,jdbcType=BIGINT}, + + + status = #{status,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_Flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_msg + set msg_title = #{msgTitle,jdbcType=VARCHAR}, + msg_content = #{msgContent,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + type = #{type,jdbcType=VARCHAR}, + user_id = #{userId,jdbcType=BIGINT}, + status = #{status,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_Flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/MsgMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/MsgMapperEx.xml new file mode 100644 index 0000000..48e80f4 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/MsgMapperEx.xml @@ -0,0 +1,45 @@ + + + + + + + + + update tbl_msg + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/OrgaUserRelMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/OrgaUserRelMapper.xml new file mode 100644 index 0000000..52d8670 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/OrgaUserRelMapper.xml @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + id, orga_id, user_id, user_blng_orga_dspl_seq, delete_flag, create_time, creator, + update_time, updater, tenant_id + + + + + + delete from tbl_orga_user_rel + where id = #{id,jdbcType=BIGINT} + + + + delete from tbl_orga_user_rel + + + + + + + insert into tbl_orga_user_rel (id, orga_id, user_id, + user_blng_orga_dspl_seq, delete_flag, create_time, + creator, update_time, updater, + tenant_id) + values (#{id,jdbcType=BIGINT}, #{orgaId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, + #{userBlngOrgaDsplSeq,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=CHAR}, #{createTime,jdbcType=TIMESTAMP}, + #{creator,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP}, #{updater,jdbcType=BIGINT}, + #{tenantId,jdbcType=BIGINT}) + + + + insert into tbl_orga_user_rel + + + id, + + + orga_id, + + + user_id, + + + user_blng_orga_dspl_seq, + + + delete_flag, + + + create_time, + + + creator, + + + update_time, + + + updater, + + + tenant_id, + + + + + #{id,jdbcType=BIGINT}, + + + #{orgaId,jdbcType=BIGINT}, + + + #{userId,jdbcType=BIGINT}, + + + #{userBlngOrgaDsplSeq,jdbcType=VARCHAR}, + + + #{deleteFlag,jdbcType=CHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{creator,jdbcType=BIGINT}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{updater,jdbcType=BIGINT}, + + + #{tenantId,jdbcType=BIGINT}, + + + + + + + update tbl_orga_user_rel + + + id = #{record.id,jdbcType=BIGINT}, + + + orga_id = #{record.orgaId,jdbcType=BIGINT}, + + + user_id = #{record.userId,jdbcType=BIGINT}, + + + user_blng_orga_dspl_seq = #{record.userBlngOrgaDsplSeq,jdbcType=VARCHAR}, + + + delete_flag = #{record.deleteFlag,jdbcType=CHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + creator = #{record.creator,jdbcType=BIGINT}, + + + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + + + updater = #{record.updater,jdbcType=BIGINT}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + + + + + + + update tbl_orga_user_rel + set id = #{record.id,jdbcType=BIGINT}, + orga_id = #{record.orgaId,jdbcType=BIGINT}, + user_id = #{record.userId,jdbcType=BIGINT}, + user_blng_orga_dspl_seq = #{record.userBlngOrgaDsplSeq,jdbcType=VARCHAR}, + delete_flag = #{record.deleteFlag,jdbcType=CHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + creator = #{record.creator,jdbcType=BIGINT}, + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + updater = #{record.updater,jdbcType=BIGINT}, + tenant_id = #{record.tenantId,jdbcType=BIGINT} + + + + + + + update tbl_orga_user_rel + + + orga_id = #{orgaId,jdbcType=BIGINT}, + + + user_id = #{userId,jdbcType=BIGINT}, + + + user_blng_orga_dspl_seq = #{userBlngOrgaDsplSeq,jdbcType=VARCHAR}, + + + delete_flag = #{deleteFlag,jdbcType=CHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + creator = #{creator,jdbcType=BIGINT}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + updater = #{updater,jdbcType=BIGINT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + where id = #{id,jdbcType=BIGINT} + + + + update tbl_orga_user_rel + set orga_id = #{orgaId,jdbcType=BIGINT}, + user_id = #{userId,jdbcType=BIGINT}, + user_blng_orga_dspl_seq = #{userBlngOrgaDsplSeq,jdbcType=VARCHAR}, + delete_flag = #{deleteFlag,jdbcType=CHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + creator = #{creator,jdbcType=BIGINT}, + update_time = #{updateTime,jdbcType=TIMESTAMP}, + updater = #{updater,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/OrgaUserRelMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/OrgaUserRelMapperEx.xml new file mode 100644 index 0000000..f637f37 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/OrgaUserRelMapperEx.xml @@ -0,0 +1,42 @@ + + + + + + + insert into tbl_orga_user_rel (orga_id, user_id, + user_blng_orga_dspl_seq, delete_flag, create_time, + creator, update_time, updater + ) + values (#{orgaId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, + #{userBlngOrgaDsplSeq,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=CHAR}, #{createTime,jdbcType=TIMESTAMP}, + #{creator,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP}, #{updater,jdbcType=BIGINT} + ) + + + update tbl_orga_user_rel + + orga_id = #{orgaId}, + + user_id = #{userId}, + + + user_blng_orga_dspl_seq = #{userBlngOrgaDsplSeq}, + + + delete_flag = #{deleteFlag}, + + + update_time = #{updateTime}, + + + updater = #{updater}, + + + where 1=1 + and id=#{id} + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/OrganizationMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/OrganizationMapper.xml new file mode 100644 index 0000000..84b6eab --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/OrganizationMapper.xml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, org_no, org_abr, parent_id, sort, remark, create_time, update_time, tenant_id, + delete_flag + + + + + delete from tbl_organization + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_organization + + + + + + insert into tbl_organization (id, org_no, org_abr, + parent_id, sort, remark, + create_time, update_time, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{orgNo,jdbcType=VARCHAR}, #{orgAbr,jdbcType=VARCHAR}, + #{parentId,jdbcType=BIGINT}, #{sort,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_organization + + + id, + + + org_no, + + + org_abr, + + + parent_id, + + + sort, + + + remark, + + + create_time, + + + update_time, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{orgNo,jdbcType=VARCHAR}, + + + #{orgAbr,jdbcType=VARCHAR}, + + + #{parentId,jdbcType=BIGINT}, + + + #{sort,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_organization + + + id = #{record.id,jdbcType=BIGINT}, + + + org_no = #{record.orgNo,jdbcType=VARCHAR}, + + + org_abr = #{record.orgAbr,jdbcType=VARCHAR}, + + + parent_id = #{record.parentId,jdbcType=BIGINT}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_organization + set id = #{record.id,jdbcType=BIGINT}, + org_no = #{record.orgNo,jdbcType=VARCHAR}, + org_abr = #{record.orgAbr,jdbcType=VARCHAR}, + parent_id = #{record.parentId,jdbcType=BIGINT}, + sort = #{record.sort,jdbcType=VARCHAR}, + remark = #{record.remark,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_organization + + + org_no = #{orgNo,jdbcType=VARCHAR}, + + + org_abr = #{orgAbr,jdbcType=VARCHAR}, + + + parent_id = #{parentId,jdbcType=BIGINT}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_organization + set org_no = #{orgNo,jdbcType=VARCHAR}, + org_abr = #{orgAbr,jdbcType=VARCHAR}, + parent_id = #{parentId,jdbcType=BIGINT}, + sort = #{sort,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/OrganizationMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/OrganizationMapperEx.xml new file mode 100644 index 0000000..a571797 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/OrganizationMapperEx.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, org_abr,org_no + + + + + + + insert into tbl_organization + (org_no, org_abr, delete_flag, + parent_id, sort, remark, + create_time, update_time) + values + (#{orgNo,jdbcType=VARCHAR}, #{orgAbr,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=CHAR}, + #{parentId,jdbcType=BIGINT}, #{sort,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}) + + + + update tbl_organization + set update_Time=#{updateTime},delete_flag='1' + where id in ( + + #{id} + + ) + + + update tbl_organization + set update_time=#{updateTime}, + org_no = #{orgNo},org_abr = #{orgAbr}, + parent_id = #{parentId}, sort = #{sort},remark = #{remark} + where id =#{id} + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/PackBomMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/PackBomMapper.xml new file mode 100644 index 0000000..060eb94 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/PackBomMapper.xml @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into tbl_pack_bom + + bom_number, + bom_name, + product_material_id, + product_material_extend_id, + product_sku, + output_material_id, + output_material_extend_id, + output_sku, + output_number, + version, + enabled, + remark, + create_time, + creator, + tenant_id, + delete_flag, + + + #{bomNumber,jdbcType=VARCHAR}, + #{bomName,jdbcType=VARCHAR}, + #{productMaterialId,jdbcType=BIGINT}, + #{productMaterialExtendId,jdbcType=BIGINT}, + #{productSku,jdbcType=VARCHAR}, + #{outputMaterialId,jdbcType=BIGINT}, + #{outputMaterialExtendId,jdbcType=BIGINT}, + #{outputSku,jdbcType=VARCHAR}, + #{outputNumber,jdbcType=DECIMAL}, + #{version,jdbcType=VARCHAR}, + #{enabled,jdbcType=BIT}, + #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, + #{creator,jdbcType=BIGINT}, + #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}, + + + + + update tbl_pack_bom + + bom_number = #{bomNumber,jdbcType=VARCHAR}, + bom_name = #{bomName,jdbcType=VARCHAR}, + product_material_id = #{productMaterialId,jdbcType=BIGINT}, + product_material_extend_id = #{productMaterialExtendId,jdbcType=BIGINT}, + product_sku = #{productSku,jdbcType=VARCHAR}, + output_material_id = #{outputMaterialId,jdbcType=BIGINT}, + output_material_extend_id = #{outputMaterialExtendId,jdbcType=BIGINT}, + output_sku = #{outputSku,jdbcType=VARCHAR}, + output_number = #{outputNumber,jdbcType=DECIMAL}, + version = #{version,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + remark = #{remark,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + creator = #{creator,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + where id = #{id,jdbcType=BIGINT} + + + + update tbl_pack_bom + set delete_flag = '1' + where id in + + #{id} + + and ifnull(delete_flag,'0') !='1' + + + + + + + + insert into tbl_pack_bom_item + + bom_id, + material_id, + material_extend_id, + material_sku, + unit, + quantity, + remark, + tenant_id, + delete_flag, + + + #{bomId,jdbcType=BIGINT}, + #{materialId,jdbcType=BIGINT}, + #{materialExtendId,jdbcType=BIGINT}, + #{materialSku,jdbcType=VARCHAR}, + #{unit,jdbcType=VARCHAR}, + #{quantity,jdbcType=DECIMAL}, + #{remark,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}, + + + + + insert into tbl_pack_bom_item (bom_id, material_id, material_extend_id, material_sku, unit, quantity, remark, delete_flag) + values + + (#{item.bomId}, #{item.materialId}, #{item.materialExtendId}, #{item.materialSku}, #{item.unit}, #{item.quantity}, #{item.remark}, '0') + + + + + + + update tbl_pack_bom_item + set delete_flag = '1' + where bom_id = #{bomId} + and ifnull(delete_flag,'0') !='1' + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/PersonMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/PersonMapper.xml new file mode 100644 index 0000000..8f73d1e --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/PersonMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, type, name, enabled, sort, tenant_id, delete_flag + + + + + delete from tbl_person + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_person + + + + + + insert into tbl_person (id, type, name, + enabled, sort, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{type,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, + #{enabled,jdbcType=BIT}, #{sort,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_person + + + id, + + + type, + + + name, + + + enabled, + + + sort, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{type,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BIT}, + + + #{sort,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_person + + + id = #{record.id,jdbcType=BIGINT}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_person + set id = #{record.id,jdbcType=BIGINT}, + type = #{record.type,jdbcType=VARCHAR}, + name = #{record.name,jdbcType=VARCHAR}, + enabled = #{record.enabled,jdbcType=BIT}, + sort = #{record.sort,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_person + + + type = #{type,jdbcType=VARCHAR}, + + + name = #{name,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BIT}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_person + set type = #{type,jdbcType=VARCHAR}, + name = #{name,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + sort = #{sort,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/PersonMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/PersonMapperEx.xml new file mode 100644 index 0000000..6c56bce --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/PersonMapperEx.xml @@ -0,0 +1,29 @@ + + + + + + + update tbl_person + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/PlatformConfigMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/PlatformConfigMapper.xml new file mode 100644 index 0000000..4f6d2c4 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/PlatformConfigMapper.xml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, platform_key, platform_key_info, platform_value + + + + + delete from tbl_platform_config + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_platform_config + + + + + + insert into tbl_platform_config (id, platform_key, platform_key_info, + platform_value) + values (#{id,jdbcType=BIGINT}, #{platformKey,jdbcType=VARCHAR}, #{platformKeyInfo,jdbcType=VARCHAR}, + #{platformValue,jdbcType=VARCHAR}) + + + insert into tbl_platform_config + + + id, + + + platform_key, + + + platform_key_info, + + + platform_value, + + + + + #{id,jdbcType=BIGINT}, + + + #{platformKey,jdbcType=VARCHAR}, + + + #{platformKeyInfo,jdbcType=VARCHAR}, + + + #{platformValue,jdbcType=VARCHAR}, + + + + + + update tbl_platform_config + + + id = #{record.id,jdbcType=BIGINT}, + + + platform_key = #{record.platformKey,jdbcType=VARCHAR}, + + + platform_key_info = #{record.platformKeyInfo,jdbcType=VARCHAR}, + + + platform_value = #{record.platformValue,jdbcType=VARCHAR}, + + + + + + + + update tbl_platform_config + set id = #{record.id,jdbcType=BIGINT}, + platform_key = #{record.platformKey,jdbcType=VARCHAR}, + platform_key_info = #{record.platformKeyInfo,jdbcType=VARCHAR}, + platform_value = #{record.platformValue,jdbcType=VARCHAR} + + + + + + update tbl_platform_config + + + platform_key = #{platformKey,jdbcType=VARCHAR}, + + + platform_key_info = #{platformKeyInfo,jdbcType=VARCHAR}, + + + platform_value = #{platformValue,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_platform_config + set platform_key = #{platformKey,jdbcType=VARCHAR}, + platform_key_info = #{platformKeyInfo,jdbcType=VARCHAR}, + platform_value = #{platformValue,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/PlatformConfigMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/PlatformConfigMapperEx.xml new file mode 100644 index 0000000..6a529d8 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/PlatformConfigMapperEx.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/ProductionOrderMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/ProductionOrderMapper.xml new file mode 100644 index 0000000..ece45cf --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/ProductionOrderMapper.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + po.*, + (select m2.name from tbl_material m2 where m2.id = po.output_material_id and ifnull(m2.delete_Flag,'0') !='1') as outputMaterialName, + (select pb.bom_name from tbl_pack_bom pb where pb.id = po.bom_id and ifnull(pb.delete_flag,'0') !='1') as bomName, + (select u.username from tbl_user u where u.id = po.creator) as creatorName, + (select u2.username from tbl_user u2 where u2.id = po.audit_by) as auditByName + + + + + + + + + + + + insert into tbl_production_order + + order_number, + source_type, + source_id, + source_number, + product_material_id, + product_material_extend_id, + product_sku, + bom_id, + output_material_id, + output_material_extend_id, + output_sku, + order_quantity, + output_quantity, + finished_quantity, + plan_start_date, + plan_end_date, + actual_start_date, + actual_end_date, + priority, + status, + audit_by, + audit_time, + release_by, + release_time, + close_reason, + remark, + create_time, + creator, + tenant_id, + delete_flag, + + + #{orderNumber,jdbcType=VARCHAR}, + #{sourceType,jdbcType=VARCHAR}, + #{sourceId,jdbcType=BIGINT}, + #{sourceNumber,jdbcType=VARCHAR}, + #{productMaterialId,jdbcType=BIGINT}, + #{productMaterialExtendId,jdbcType=BIGINT}, + #{productSku,jdbcType=VARCHAR}, + #{bomId,jdbcType=BIGINT}, + #{outputMaterialId,jdbcType=BIGINT}, + #{outputMaterialExtendId,jdbcType=BIGINT}, + #{outputSku,jdbcType=VARCHAR}, + #{orderQuantity,jdbcType=DECIMAL}, + #{outputQuantity,jdbcType=DECIMAL}, + #{finishedQuantity,jdbcType=DECIMAL}, + #{planStartDate,jdbcType=TIMESTAMP}, + #{planEndDate,jdbcType=TIMESTAMP}, + #{actualStartDate,jdbcType=TIMESTAMP}, + #{actualEndDate,jdbcType=TIMESTAMP}, + #{priority,jdbcType=VARCHAR}, + #{status,jdbcType=VARCHAR}, + #{auditBy,jdbcType=BIGINT}, + #{auditTime,jdbcType=TIMESTAMP}, + #{releaseBy,jdbcType=BIGINT}, + #{releaseTime,jdbcType=TIMESTAMP}, + #{closeReason,jdbcType=VARCHAR}, + #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, + #{creator,jdbcType=BIGINT}, + #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}, + + + + + update tbl_production_order + + order_number = #{orderNumber,jdbcType=VARCHAR}, + source_type = #{sourceType,jdbcType=VARCHAR}, + source_id = #{sourceId,jdbcType=BIGINT}, + source_number = #{sourceNumber,jdbcType=VARCHAR}, + product_material_id = #{productMaterialId,jdbcType=BIGINT}, + product_material_extend_id = #{productMaterialExtendId,jdbcType=BIGINT}, + product_sku = #{productSku,jdbcType=VARCHAR}, + bom_id = #{bomId,jdbcType=BIGINT}, + output_material_id = #{outputMaterialId,jdbcType=BIGINT}, + output_material_extend_id = #{outputMaterialExtendId,jdbcType=BIGINT}, + output_sku = #{outputSku,jdbcType=VARCHAR}, + order_quantity = #{orderQuantity,jdbcType=DECIMAL}, + output_quantity = #{outputQuantity,jdbcType=DECIMAL}, + finished_quantity = #{finishedQuantity,jdbcType=DECIMAL}, + plan_start_date = #{planStartDate,jdbcType=TIMESTAMP}, + plan_end_date = #{planEndDate,jdbcType=TIMESTAMP}, + actual_start_date = #{actualStartDate,jdbcType=TIMESTAMP}, + actual_end_date = #{actualEndDate,jdbcType=TIMESTAMP}, + priority = #{priority,jdbcType=VARCHAR}, + status = #{status,jdbcType=VARCHAR}, + audit_by = #{auditBy,jdbcType=BIGINT}, + audit_time = #{auditTime,jdbcType=TIMESTAMP}, + release_by = #{releaseBy,jdbcType=BIGINT}, + release_time = #{releaseTime,jdbcType=TIMESTAMP}, + close_reason = #{closeReason,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + creator = #{creator,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + where id = #{id,jdbcType=BIGINT} + + + + update tbl_production_order + set status = #{status} + where id = #{id} + + + + update tbl_production_order + set delete_flag = '1' + where id in + + #{id} + + and ifnull(delete_flag,'0') !='1' + + + + + + + + insert into tbl_production_order_log (order_id, order_number, operation_type, operation_desc, operator, create_time, tenant_id) + values (#{orderId}, #{orderNumber}, #{operationType}, #{operationDesc}, #{operator}, #{createTime}, #{tenantId}) + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/ProductionReportMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/ProductionReportMapper.xml new file mode 100644 index 0000000..585d929 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/ProductionReportMapper.xml @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rp.*, + (select m.name from tbl_material m where m.id = po.output_material_id and ifnull(m.delete_Flag,'0') !='1') as outputMaterialName, + (select d.name from tbl_depot d where d.id = rp.depot_id and ifnull(d.delete_Flag,'0') !='1') as depotName, + (select u.username from tbl_user u where u.id = rp.report_by) as reportByName, + (select u2.username from tbl_user u2 where u2.id = rp.audit_by) as auditByName + + + + + + + + + + insert into tbl_production_report + + report_number, + order_id, + order_number, + finished_quantity, + defect_quantity, + qualified_flag, + depot_id, + in_number, + audit_status, + audit_by, + audit_time, + report_by, + report_date, + remark, + create_time, + creator, + tenant_id, + delete_flag, + + + #{reportNumber,jdbcType=VARCHAR}, + #{orderId,jdbcType=BIGINT}, + #{orderNumber,jdbcType=VARCHAR}, + #{finishedQuantity,jdbcType=DECIMAL}, + #{defectQuantity,jdbcType=DECIMAL}, + #{qualifiedFlag,jdbcType=VARCHAR}, + #{depotId,jdbcType=BIGINT}, + #{inNumber,jdbcType=VARCHAR}, + #{auditStatus,jdbcType=VARCHAR}, + #{auditBy,jdbcType=BIGINT}, + #{auditTime,jdbcType=TIMESTAMP}, + #{reportBy,jdbcType=BIGINT}, + #{reportDate,jdbcType=TIMESTAMP}, + #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, + #{creator,jdbcType=BIGINT}, + #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}, + + + + + update tbl_production_report + + report_number = #{reportNumber,jdbcType=VARCHAR}, + order_id = #{orderId,jdbcType=BIGINT}, + order_number = #{orderNumber,jdbcType=VARCHAR}, + finished_quantity = #{finishedQuantity,jdbcType=DECIMAL}, + defect_quantity = #{defectQuantity,jdbcType=DECIMAL}, + qualified_flag = #{qualifiedFlag,jdbcType=VARCHAR}, + depot_id = #{depotId,jdbcType=BIGINT}, + in_number = #{inNumber,jdbcType=VARCHAR}, + audit_status = #{auditStatus,jdbcType=VARCHAR}, + audit_by = #{auditBy,jdbcType=BIGINT}, + audit_time = #{auditTime,jdbcType=TIMESTAMP}, + report_by = #{reportBy,jdbcType=BIGINT}, + report_date = #{reportDate,jdbcType=TIMESTAMP}, + remark = #{remark,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + creator = #{creator,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + where id = #{id,jdbcType=BIGINT} + + + + update tbl_production_report + set audit_status = #{auditStatus} + where id = #{id} + + + + update tbl_production_report + set delete_flag = '1' + where id in + + #{id} + + and ifnull(delete_flag,'0') !='1' + + + + + + insert into tbl_production_report_item + + report_id, + material_id, + material_extend_id, + material_sku, + unit, + consumption_quantity, + remark, + tenant_id, + delete_flag, + + + #{reportId,jdbcType=BIGINT}, + #{materialId,jdbcType=BIGINT}, + #{materialExtendId,jdbcType=BIGINT}, + #{materialSku,jdbcType=VARCHAR}, + #{unit,jdbcType=VARCHAR}, + #{consumptionQuantity,jdbcType=DECIMAL}, + #{remark,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}, + + + + + insert into tbl_production_report_item (report_id, material_id, material_extend_id, material_sku, unit, consumption_quantity, remark, tenant_id, delete_flag) + values + + (#{item.reportId}, #{item.materialId}, #{item.materialExtendId}, #{item.materialSku}, #{item.unit}, #{item.consumptionQuantity}, #{item.remark}, #{item.tenantId}, '0') + + + + + + + update tbl_production_report_item + set delete_flag = '1' + where report_id = #{reportId} + and ifnull(delete_flag,'0') !='1' + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/ProductionRequisitionMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/ProductionRequisitionMapper.xml new file mode 100644 index 0000000..307efc9 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/ProductionRequisitionMapper.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pr.*, + (select group_concat(distinct d.name order by d.name separator ',') + from tbl_production_requisition_item pri + left join tbl_depot d on d.id = ifnull(pri.depot_id, pr.depot_id) and ifnull(d.delete_Flag,'0') !='1' + where pri.requisition_id = pr.id and ifnull(pri.delete_flag,'0') !='1') as depotName, + (select u.username from tbl_user u where u.id = pr.creator) as creatorName, + (select u2.username from tbl_user u2 where u2.id = pr.confirm_by) as confirmByName, + (select group_concat(m.name) from tbl_production_requisition_item pri + left join tbl_material m on m.id = pri.material_id and ifnull(m.delete_Flag,'0') !='1' + where pri.requisition_id = pr.id and ifnull(pri.delete_flag,'0') !='1') as materialsList, + (select count(1) from tbl_production_requisition_item pri where pri.requisition_id = pr.id and ifnull(pri.delete_flag,'0') !='1') as itemCount + + + + + + + + + + insert into tbl_production_requisition + + requisition_number, + order_id, + order_number, + depot_id, + status, + confirm_by, + confirm_time, + remark, + create_time, + creator, + tenant_id, + delete_flag, + + + #{requisitionNumber,jdbcType=VARCHAR}, + #{orderId,jdbcType=BIGINT}, + #{orderNumber,jdbcType=VARCHAR}, + #{depotId,jdbcType=BIGINT}, + #{status,jdbcType=VARCHAR}, + #{confirmBy,jdbcType=BIGINT}, + #{confirmTime,jdbcType=TIMESTAMP}, + #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, + #{creator,jdbcType=BIGINT}, + #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}, + + + + + update tbl_production_requisition + + requisition_number = #{requisitionNumber,jdbcType=VARCHAR}, + order_id = #{orderId,jdbcType=BIGINT}, + order_number = #{orderNumber,jdbcType=VARCHAR}, + depot_id = #{depotId,jdbcType=BIGINT}, + status = #{status,jdbcType=VARCHAR}, + confirm_by = #{confirmBy,jdbcType=BIGINT}, + confirm_time = #{confirmTime,jdbcType=TIMESTAMP}, + remark = #{remark,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + creator = #{creator,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + where id = #{id,jdbcType=BIGINT} + + + + update tbl_production_requisition + set status = #{status} + where id = #{id} + + + + update tbl_production_requisition + set delete_flag = '1' + where id in + + #{id} + + and ifnull(delete_flag,'0') !='1' + + + + + + insert into tbl_production_requisition_item + + requisition_id, + depot_id, + material_id, + material_extend_id, + material_sku, + unit, + required_quantity, + issued_quantity, + unit_price, + remark, + tenant_id, + delete_flag, + + + #{requisitionId,jdbcType=BIGINT}, + #{depotId,jdbcType=BIGINT}, + #{materialId,jdbcType=BIGINT}, + #{materialExtendId,jdbcType=BIGINT}, + #{materialSku,jdbcType=VARCHAR}, + #{unit,jdbcType=VARCHAR}, + #{requiredQuantity,jdbcType=DECIMAL}, + #{issuedQuantity,jdbcType=DECIMAL}, + #{unitPrice,jdbcType=DECIMAL}, + #{remark,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}, + + + + + insert into tbl_production_requisition_item (requisition_id, depot_id, material_id, material_extend_id, material_sku, unit, required_quantity, issued_quantity, unit_price, remark, tenant_id, delete_flag) + values + + (#{item.requisitionId}, #{item.depotId}, #{item.materialId}, #{item.materialExtendId}, #{item.materialSku}, #{item.unit}, #{item.requiredQuantity}, #{item.issuedQuantity}, #{item.unitPrice}, #{item.remark}, #{item.tenantId}, '0') + + + + + + + update tbl_production_requisition_item + + material_id = #{materialId,jdbcType=BIGINT}, + depot_id = #{depotId,jdbcType=BIGINT}, + material_extend_id = #{materialExtendId,jdbcType=BIGINT}, + material_sku = #{materialSku,jdbcType=VARCHAR}, + unit = #{unit,jdbcType=VARCHAR}, + required_quantity = #{requiredQuantity,jdbcType=DECIMAL}, + issued_quantity = #{issuedQuantity,jdbcType=DECIMAL}, + unit_price = #{unitPrice,jdbcType=DECIMAL}, + remark = #{remark,jdbcType=VARCHAR}, + + where id = #{id,jdbcType=BIGINT} + + + + update tbl_production_requisition_item + set delete_flag = '1' + where requisition_id = #{requisitionId} + and ifnull(delete_flag,'0') !='1' + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/RoleMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/RoleMapper.xml new file mode 100644 index 0000000..4e1c5b4 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/RoleMapper.xml @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, type, price_limit, value, description, enabled, sort, tenant_id, delete_flag + + + + + delete from tbl_role + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_role + + + + + + insert into tbl_role (id, name, type, + price_limit, value, description, + enabled, sort, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, + #{priceLimit,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, + #{enabled,jdbcType=BIT}, #{sort,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_role + + + id, + + + name, + + + type, + + + price_limit, + + + value, + + + description, + + + enabled, + + + sort, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{type,jdbcType=VARCHAR}, + + + #{priceLimit,jdbcType=VARCHAR}, + + + #{value,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BIT}, + + + #{sort,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_role + + + id = #{record.id,jdbcType=BIGINT}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + price_limit = #{record.priceLimit,jdbcType=VARCHAR}, + + + value = #{record.value,jdbcType=VARCHAR}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_role + set id = #{record.id,jdbcType=BIGINT}, + name = #{record.name,jdbcType=VARCHAR}, + type = #{record.type,jdbcType=VARCHAR}, + price_limit = #{record.priceLimit,jdbcType=VARCHAR}, + value = #{record.value,jdbcType=VARCHAR}, + description = #{record.description,jdbcType=VARCHAR}, + enabled = #{record.enabled,jdbcType=BIT}, + sort = #{record.sort,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_role + + + name = #{name,jdbcType=VARCHAR}, + + + type = #{type,jdbcType=VARCHAR}, + + + price_limit = #{priceLimit,jdbcType=VARCHAR}, + + + value = #{value,jdbcType=VARCHAR}, + + + description = #{description,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BIT}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_role + set name = #{name,jdbcType=VARCHAR}, + type = #{type,jdbcType=VARCHAR}, + price_limit = #{priceLimit,jdbcType=VARCHAR}, + value = #{value,jdbcType=VARCHAR}, + description = #{description,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + sort = #{sort,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/RoleMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/RoleMapperEx.xml new file mode 100644 index 0000000..e138fb0 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/RoleMapperEx.xml @@ -0,0 +1,38 @@ + + + + + + + + + update tbl_role + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/SaleShipmentMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/SaleShipmentMapper.xml new file mode 100644 index 0000000..6d1e2fb --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SaleShipmentMapper.xml @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into tbl_sale_shipment + + shipment_number, + source_type, + delivery_plan_id, + delivery_plan_number, + sale_out_id, + sale_out_number, + sale_order_number, + customer_id, + status, + planned_ship_time, + logistics_company, + logistics_no, + receiver, + receiver_phone, + receiver_address, + notice_remark, + approve_by, + approve_time, + approve_remark, + ship_by, + ship_time, + confirm_by, + confirm_time, + difference_remark, + create_time, + creator, + tenant_id, + delete_flag, + + + #{shipmentNumber}, + #{sourceType}, + #{deliveryPlanId}, + #{deliveryPlanNumber}, + #{saleOutId}, + #{saleOutNumber}, + #{saleOrderNumber}, + #{customerId}, + #{status}, + #{plannedShipTime}, + #{logisticsCompany}, + #{logisticsNo}, + #{receiver}, + #{receiverPhone}, + #{receiverAddress}, + #{noticeRemark}, + #{approveBy}, + #{approveTime}, + #{approveRemark}, + #{shipBy}, + #{shipTime}, + #{confirmBy}, + #{confirmTime}, + #{differenceRemark}, + #{createTime}, + #{creator}, + #{tenantId}, + #{deleteFlag}, + + + + + update tbl_sale_shipment + + status = #{status}, + planned_ship_time = #{plannedShipTime}, + logistics_company = #{logisticsCompany}, + logistics_no = #{logisticsNo}, + receiver = #{receiver}, + receiver_phone = #{receiverPhone}, + receiver_address = #{receiverAddress}, + notice_remark = #{noticeRemark}, + approve_by = #{approveBy}, + approve_time = #{approveTime}, + approve_remark = #{approveRemark}, + ship_by = #{shipBy}, + ship_time = #{shipTime}, + confirm_by = #{confirmBy}, + confirm_time = #{confirmTime}, + difference_remark = #{differenceRemark}, + delete_flag = #{deleteFlag}, + + where id = #{id} + + + + insert into tbl_sale_shipment_item + + shipment_id, + delivery_plan_item_id, + sale_out_item_id, + material_id, + material_extend_id, + bar_code, + material_name, + standard, + model, + unit, + batch_number, + sn_list, + plan_quantity, + actual_quantity, + shipped_quantity, + difference_quantity, + depot_id, + remark, + tenant_id, + delete_flag, + + + #{shipmentId}, + #{deliveryPlanItemId}, + #{saleOutItemId}, + #{materialId}, + #{materialExtendId}, + #{barCode}, + #{materialName}, + #{standard}, + #{model}, + #{unit}, + #{batchNumber}, + #{snList}, + #{planQuantity}, + #{actualQuantity}, + #{shippedQuantity}, + #{differenceQuantity}, + #{depotId}, + #{remark}, + #{tenantId}, + #{deleteFlag}, + + + + + insert into tbl_sale_shipment_item + (shipment_id, delivery_plan_item_id, sale_out_item_id, material_id, material_extend_id, bar_code, material_name, standard, model, + unit, batch_number, sn_list, plan_quantity, actual_quantity, shipped_quantity, difference_quantity, depot_id, + remark, tenant_id, delete_flag) + values + + (#{item.shipmentId}, #{item.deliveryPlanItemId}, #{item.saleOutItemId}, #{item.materialId}, #{item.materialExtendId}, #{item.barCode}, + #{item.materialName}, #{item.standard}, #{item.model}, #{item.unit}, #{item.batchNumber}, #{item.snList}, + #{item.planQuantity}, #{item.actualQuantity}, #{item.shippedQuantity}, #{item.differenceQuantity}, + #{item.depotId}, #{item.remark}, #{item.tenantId}, '0') + + + + + update tbl_sale_shipment_item + set delete_flag = '1' + where shipment_id = #{shipmentId} + and ifnull(delete_flag,'0') != '1' + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/SequenceMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/SequenceMapperEx.xml new file mode 100644 index 0000000..ff6c7f4 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SequenceMapperEx.xml @@ -0,0 +1,13 @@ + + + + + + update tbl_sequence set current_val = current_val + 1 where seq_name = 'depot_number_seq' + + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/SerialNumberMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/SerialNumberMapper.xml new file mode 100644 index 0000000..71cbe96 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SerialNumberMapper.xml @@ -0,0 +1,370 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, material_id, depot_id, serial_number, is_sell, in_price, remark, delete_flag, + create_time, creator, update_time, updater, in_bill_no, out_bill_no, tenant_id + + + + + delete from tbl_serial_number + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_serial_number + + + + + + insert into tbl_serial_number (id, material_id, depot_id, + serial_number, is_sell, in_price, + remark, delete_flag, create_time, + creator, update_time, updater, + in_bill_no, out_bill_no, tenant_id + ) + values (#{id,jdbcType=BIGINT}, #{materialId,jdbcType=BIGINT}, #{depotId,jdbcType=BIGINT}, + #{serialNumber,jdbcType=VARCHAR}, #{isSell,jdbcType=VARCHAR}, #{inPrice,jdbcType=DECIMAL}, + #{remark,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, + #{creator,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP}, #{updater,jdbcType=BIGINT}, + #{inBillNo,jdbcType=VARCHAR}, #{outBillNo,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT} + ) + + + insert into tbl_serial_number + + + id, + + + material_id, + + + depot_id, + + + serial_number, + + + is_sell, + + + in_price, + + + remark, + + + delete_flag, + + + create_time, + + + creator, + + + update_time, + + + updater, + + + in_bill_no, + + + out_bill_no, + + + tenant_id, + + + + + #{id,jdbcType=BIGINT}, + + + #{materialId,jdbcType=BIGINT}, + + + #{depotId,jdbcType=BIGINT}, + + + #{serialNumber,jdbcType=VARCHAR}, + + + #{isSell,jdbcType=VARCHAR}, + + + #{inPrice,jdbcType=DECIMAL}, + + + #{remark,jdbcType=VARCHAR}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{creator,jdbcType=BIGINT}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{updater,jdbcType=BIGINT}, + + + #{inBillNo,jdbcType=VARCHAR}, + + + #{outBillNo,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + + + + update tbl_serial_number + + + id = #{record.id,jdbcType=BIGINT}, + + + material_id = #{record.materialId,jdbcType=BIGINT}, + + + depot_id = #{record.depotId,jdbcType=BIGINT}, + + + serial_number = #{record.serialNumber,jdbcType=VARCHAR}, + + + is_sell = #{record.isSell,jdbcType=VARCHAR}, + + + in_price = #{record.inPrice,jdbcType=DECIMAL}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + creator = #{record.creator,jdbcType=BIGINT}, + + + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + + + updater = #{record.updater,jdbcType=BIGINT}, + + + in_bill_no = #{record.inBillNo,jdbcType=VARCHAR}, + + + out_bill_no = #{record.outBillNo,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + + + + + + update tbl_serial_number + set id = #{record.id,jdbcType=BIGINT}, + material_id = #{record.materialId,jdbcType=BIGINT}, + depot_id = #{record.depotId,jdbcType=BIGINT}, + serial_number = #{record.serialNumber,jdbcType=VARCHAR}, + is_sell = #{record.isSell,jdbcType=VARCHAR}, + in_price = #{record.inPrice,jdbcType=DECIMAL}, + remark = #{record.remark,jdbcType=VARCHAR}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + creator = #{record.creator,jdbcType=BIGINT}, + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + updater = #{record.updater,jdbcType=BIGINT}, + in_bill_no = #{record.inBillNo,jdbcType=VARCHAR}, + out_bill_no = #{record.outBillNo,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT} + + + + + + update tbl_serial_number + + + material_id = #{materialId,jdbcType=BIGINT}, + + + depot_id = #{depotId,jdbcType=BIGINT}, + + + serial_number = #{serialNumber,jdbcType=VARCHAR}, + + + is_sell = #{isSell,jdbcType=VARCHAR}, + + + in_price = #{inPrice,jdbcType=DECIMAL}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + creator = #{creator,jdbcType=BIGINT}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + updater = #{updater,jdbcType=BIGINT}, + + + in_bill_no = #{inBillNo,jdbcType=VARCHAR}, + + + out_bill_no = #{outBillNo,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_serial_number + set material_id = #{materialId,jdbcType=BIGINT}, + depot_id = #{depotId,jdbcType=BIGINT}, + serial_number = #{serialNumber,jdbcType=VARCHAR}, + is_sell = #{isSell,jdbcType=VARCHAR}, + in_price = #{inPrice,jdbcType=DECIMAL}, + remark = #{remark,jdbcType=VARCHAR}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + creator = #{creator,jdbcType=BIGINT}, + update_time = #{updateTime,jdbcType=TIMESTAMP}, + updater = #{updater,jdbcType=BIGINT}, + in_bill_no = #{inBillNo,jdbcType=VARCHAR}, + out_bill_no = #{outBillNo,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/SerialNumberMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/SerialNumberMapperEx.xml new file mode 100644 index 0000000..7fa0b90 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SerialNumberMapperEx.xml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + insert into tbl_serial_number + (material_id, serial_number, is_sell, remark,delete_flag, + create_time, creator,update_time, updater,in_bill_no, out_bill_no) + values + (#{materialId},#{serialNumber},#{isSell},#{remark},#{deleteFlag}, + #{createTime},#{creator},#{updateTime},#{updater},#{inBillNo},#{outBillNo} + ) + + + update tbl_serial_number + + + material_id = #{materialId,jdbcType=BIGINT}, + + + serial_number = #{serialNumber,jdbcType=VARCHAR}, + + + is_sell = #{isSell,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + updater = #{updater,jdbcType=BIGINT}, + + + in_bill_no = #{inBillNo,jdbcType=VARCHAR}, + + + out_bill_no = #{outBillNo,jdbcType=VARCHAR} + + + where id = #{id,jdbcType=BIGINT} + + + + + + + + update tbl_serial_number + + is_sell = '1', + + out_bill_no = #{outBillNo}, + + + update_time = #{updateTime}, + + + updater = #{updater}, + + + where is_sell != '1' + + and id in + + #{item} + + + + + + update tbl_serial_number + + is_sell = '0', out_bill_no=null, + + update_time = #{updateTime}, + + + updater = #{updater}, + + + where 1=1 + + and material_id = #{materialId} + + + and out_bill_no = #{outBillNo,jdbcType=VARCHAR} + + and is_sell != '0' + and ifnull(delete_flag,'0') !='1' + + and id in + ( select batchSN.id from + ( select selFrom.id from tbl_serial_number selFrom + where 1=1 + + and selFrom.material_id = #{materialId} + + + and selFrom.out_bill_no = #{outBillNo,jdbcType=VARCHAR} + + and selFrom.is_sell !='0' + and ifnull(selFrom.delete_flag,'0') !='1' + limit 0,#{count} + ) batchSN + ) + + + + insert into tbl_serial_number + (material_id, serial_number, is_sell, remark,delete_flag, + create_time, creator,update_time, updater) + values + + (#{each.materialId},#{each.serialNumber},'0',#{each.remark},'0', + #{each.createTime},#{each.creator},#{each.updateTime},#{each.updater} + ) + + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/SupplierMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/SupplierMapper.xml new file mode 100644 index 0000000..3a4c780 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SupplierMapper.xml @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, supplier, contacts, phone_num, email, description, isystem, type, category_id, enabled, advance_in, + begin_need_get, begin_need_pay, all_need_get, all_need_pay, fax, telephone, address, + tax_num, bank_name, account_number, tax_rate, sort, creator, tenant_id, delete_flag + + + + + delete from tbl_supplier + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_supplier + + + + + + insert into tbl_supplier (id, supplier, contacts, + phone_num, email, description, + isystem, type, enabled, + advance_in, begin_need_get, begin_need_pay, + all_need_get, all_need_pay, fax, + telephone, address, tax_num, + bank_name, account_number, tax_rate, + sort, creator, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{supplier,jdbcType=VARCHAR}, #{contacts,jdbcType=VARCHAR}, + #{phoneNum,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, + #{isystem,jdbcType=TINYINT}, #{type,jdbcType=VARCHAR}, #{enabled,jdbcType=BIT}, + #{advanceIn,jdbcType=DECIMAL}, #{beginNeedGet,jdbcType=DECIMAL}, #{beginNeedPay,jdbcType=DECIMAL}, + #{allNeedGet,jdbcType=DECIMAL}, #{allNeedPay,jdbcType=DECIMAL}, #{fax,jdbcType=VARCHAR}, + #{telephone,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, #{taxNum,jdbcType=VARCHAR}, + #{bankName,jdbcType=VARCHAR}, #{accountNumber,jdbcType=VARCHAR}, #{taxRate,jdbcType=DECIMAL}, + #{sort,jdbcType=VARCHAR}, #{creator,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_supplier + + + id, + + + supplier, + + + contacts, + + + phone_num, + + + email, + + + description, + + + isystem, + + + type, + + + category_id, + + + enabled, + + + advance_in, + + + begin_need_get, + + + begin_need_pay, + + + all_need_get, + + + all_need_pay, + + + fax, + + + telephone, + + + address, + + + tax_num, + + + bank_name, + + + account_number, + + + tax_rate, + + + sort, + + + creator, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{supplier,jdbcType=VARCHAR}, + + + #{contacts,jdbcType=VARCHAR}, + + + #{phoneNum,jdbcType=VARCHAR}, + + + #{email,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{isystem,jdbcType=TINYINT}, + + + #{type,jdbcType=VARCHAR}, + + + #{categoryId,jdbcType=BIGINT}, + + + #{enabled,jdbcType=BIT}, + + + #{advanceIn,jdbcType=DECIMAL}, + + + #{beginNeedGet,jdbcType=DECIMAL}, + + + #{beginNeedPay,jdbcType=DECIMAL}, + + + #{allNeedGet,jdbcType=DECIMAL}, + + + #{allNeedPay,jdbcType=DECIMAL}, + + + #{fax,jdbcType=VARCHAR}, + + + #{telephone,jdbcType=VARCHAR}, + + + #{address,jdbcType=VARCHAR}, + + + #{taxNum,jdbcType=VARCHAR}, + + + #{bankName,jdbcType=VARCHAR}, + + + #{accountNumber,jdbcType=VARCHAR}, + + + #{taxRate,jdbcType=DECIMAL}, + + + #{sort,jdbcType=VARCHAR}, + + + #{creator,jdbcType=BIGINT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_supplier + + + id = #{record.id,jdbcType=BIGINT}, + + + supplier = #{record.supplier,jdbcType=VARCHAR}, + + + contacts = #{record.contacts,jdbcType=VARCHAR}, + + + phone_num = #{record.phoneNum,jdbcType=VARCHAR}, + + + email = #{record.email,jdbcType=VARCHAR}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + isystem = #{record.isystem,jdbcType=TINYINT}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + advance_in = #{record.advanceIn,jdbcType=DECIMAL}, + + + begin_need_get = #{record.beginNeedGet,jdbcType=DECIMAL}, + + + begin_need_pay = #{record.beginNeedPay,jdbcType=DECIMAL}, + + + all_need_get = #{record.allNeedGet,jdbcType=DECIMAL}, + + + all_need_pay = #{record.allNeedPay,jdbcType=DECIMAL}, + + + fax = #{record.fax,jdbcType=VARCHAR}, + + + telephone = #{record.telephone,jdbcType=VARCHAR}, + + + address = #{record.address,jdbcType=VARCHAR}, + + + tax_num = #{record.taxNum,jdbcType=VARCHAR}, + + + bank_name = #{record.bankName,jdbcType=VARCHAR}, + + + account_number = #{record.accountNumber,jdbcType=VARCHAR}, + + + tax_rate = #{record.taxRate,jdbcType=DECIMAL}, + + + sort = #{record.sort,jdbcType=VARCHAR}, + + + creator = #{record.creator,jdbcType=BIGINT}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_supplier + set id = #{record.id,jdbcType=BIGINT}, + supplier = #{record.supplier,jdbcType=VARCHAR}, + contacts = #{record.contacts,jdbcType=VARCHAR}, + phone_num = #{record.phoneNum,jdbcType=VARCHAR}, + email = #{record.email,jdbcType=VARCHAR}, + description = #{record.description,jdbcType=VARCHAR}, + isystem = #{record.isystem,jdbcType=TINYINT}, + type = #{record.type,jdbcType=VARCHAR}, + enabled = #{record.enabled,jdbcType=BIT}, + advance_in = #{record.advanceIn,jdbcType=DECIMAL}, + begin_need_get = #{record.beginNeedGet,jdbcType=DECIMAL}, + begin_need_pay = #{record.beginNeedPay,jdbcType=DECIMAL}, + all_need_get = #{record.allNeedGet,jdbcType=DECIMAL}, + all_need_pay = #{record.allNeedPay,jdbcType=DECIMAL}, + fax = #{record.fax,jdbcType=VARCHAR}, + telephone = #{record.telephone,jdbcType=VARCHAR}, + address = #{record.address,jdbcType=VARCHAR}, + tax_num = #{record.taxNum,jdbcType=VARCHAR}, + bank_name = #{record.bankName,jdbcType=VARCHAR}, + account_number = #{record.accountNumber,jdbcType=VARCHAR}, + tax_rate = #{record.taxRate,jdbcType=DECIMAL}, + sort = #{record.sort,jdbcType=VARCHAR}, + creator = #{record.creator,jdbcType=BIGINT}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_supplier + + + supplier = #{supplier,jdbcType=VARCHAR}, + + + contacts = #{contacts,jdbcType=VARCHAR}, + + + phone_num = #{phoneNum,jdbcType=VARCHAR}, + + + email = #{email,jdbcType=VARCHAR}, + + + description = #{description,jdbcType=VARCHAR}, + + + isystem = #{isystem,jdbcType=TINYINT}, + + + type = #{type,jdbcType=VARCHAR}, + + + category_id = #{categoryId,jdbcType=BIGINT}, + + + enabled = #{enabled,jdbcType=BIT}, + + + advance_in = #{advanceIn,jdbcType=DECIMAL}, + + + begin_need_get = #{beginNeedGet,jdbcType=DECIMAL}, + + + begin_need_pay = #{beginNeedPay,jdbcType=DECIMAL}, + + + all_need_get = #{allNeedGet,jdbcType=DECIMAL}, + + + all_need_pay = #{allNeedPay,jdbcType=DECIMAL}, + + + fax = #{fax,jdbcType=VARCHAR}, + + + telephone = #{telephone,jdbcType=VARCHAR}, + + + address = #{address,jdbcType=VARCHAR}, + + + tax_num = #{taxNum,jdbcType=VARCHAR}, + + + bank_name = #{bankName,jdbcType=VARCHAR}, + + + account_number = #{accountNumber,jdbcType=VARCHAR}, + + + tax_rate = #{taxRate,jdbcType=DECIMAL}, + + + sort = #{sort,jdbcType=VARCHAR}, + + + creator = #{creator,jdbcType=BIGINT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_supplier + set supplier = #{supplier,jdbcType=VARCHAR}, + contacts = #{contacts,jdbcType=VARCHAR}, + phone_num = #{phoneNum,jdbcType=VARCHAR}, + email = #{email,jdbcType=VARCHAR}, + description = #{description,jdbcType=VARCHAR}, + isystem = #{isystem,jdbcType=TINYINT}, + type = #{type,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + advance_in = #{advanceIn,jdbcType=DECIMAL}, + begin_need_get = #{beginNeedGet,jdbcType=DECIMAL}, + begin_need_pay = #{beginNeedPay,jdbcType=DECIMAL}, + all_need_get = #{allNeedGet,jdbcType=DECIMAL}, + all_need_pay = #{allNeedPay,jdbcType=DECIMAL}, + fax = #{fax,jdbcType=VARCHAR}, + telephone = #{telephone,jdbcType=VARCHAR}, + address = #{address,jdbcType=VARCHAR}, + tax_num = #{taxNum,jdbcType=VARCHAR}, + bank_name = #{bankName,jdbcType=VARCHAR}, + account_number = #{accountNumber,jdbcType=VARCHAR}, + tax_rate = #{taxRate,jdbcType=DECIMAL}, + sort = #{sort,jdbcType=VARCHAR}, + creator = #{creator,jdbcType=BIGINT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/SupplierMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/SupplierMapperEx.xml new file mode 100644 index 0000000..3cc53cd --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SupplierMapperEx.xml @@ -0,0 +1,115 @@ + + + + + + + + + update tbl_supplier + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + + + + + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/SysDictDataMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/SysDictDataMapper.xml new file mode 100644 index 0000000..73ad2e6 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SysDictDataMapper.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark + from tbl_sys_dict_data + + + + + + + + + + + + + + delete from tbl_sys_dict_data where dict_code = #{dictCode} + + + + delete from tbl_sys_dict_data where dict_code in + + #{dictCode} + + + + + update tbl_sys_dict_data + + dict_sort = #{dictSort}, + dict_label = #{dictLabel}, + dict_value = #{dictValue}, + dict_type = #{dictType}, + css_class = #{cssClass}, + list_class = #{listClass}, + is_default = #{isDefault}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where dict_code = #{dictCode} + + + + update tbl_sys_dict_data set dict_type = #{newDictType} where dict_type = #{oldDictType} + + + + insert into tbl_sys_dict_data( + dict_sort, + dict_label, + dict_value, + dict_type, + css_class, + list_class, + is_default, + status, + remark, + create_by, + create_time + )values( + #{dictSort}, + #{dictLabel}, + #{dictValue}, + #{dictType}, + #{cssClass}, + #{listClass}, + #{isDefault}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + + update tbl_sys_dict_data + set delete_flag='1' + where 1=1 + and dict_code in ( + + #{id} + + ) + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/SysDictTypeMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/SysDictTypeMapper.xml new file mode 100644 index 0000000..5288b0b --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SysDictTypeMapper.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + select dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark + from tbl_sys_dict_type + + + + + + + + + + + + + + delete from tbl_sys_dict_type where dict_id = #{dictId} + + + + delete from tbl_sys_dict_type where dict_id in + + #{dictId} + + + + + update tbl_sys_dict_type + + dict_name = #{dictName}, + dict_type = #{dictType}, + status = #{status}, + remark = #{remark}, + update_by = #{updateBy}, + update_time = sysdate() + + where dict_id = #{dictId} + + + + insert into tbl_sys_dict_type( + dict_name, + dict_type, + status, + remark, + create_by, + create_time + )values( + #{dictName}, + #{dictType}, + #{status}, + #{remark}, + #{createBy}, + sysdate() + ) + + + + update tbl_sys_dict_type + set delete_flag='1' + where 1=1 + and dict_id in ( + + #{id} + + ) + + + + + diff --git a/smtERP-boot/src/main/resources/mapper_xml/SystemConfigMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/SystemConfigMapper.xml new file mode 100644 index 0000000..c83555f --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SystemConfigMapper.xml @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, company_name, company_contacts, company_address, company_tel, company_fax, company_post_code, + sale_agreement, depot_flag, customer_flag, minus_stock_flag, purchase_by_sale_flag, + multi_level_approval_flag, multi_bill_type, force_approval_flag, update_unit_price_flag, + over_link_bill_flag, in_out_manage_flag, multi_account_flag, move_avg_price_flag, + audit_print_flag, zero_change_amount_flag, customer_static_price_flag, material_price_tax_flag, + tenant_id, delete_flag + + + + + delete from tbl_system_config + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_system_config + + + + + + insert into tbl_system_config (id, company_name, company_contacts, + company_address, company_tel, company_fax, + company_post_code, sale_agreement, depot_flag, + customer_flag, minus_stock_flag, purchase_by_sale_flag, + multi_level_approval_flag, multi_bill_type, + force_approval_flag, update_unit_price_flag, + over_link_bill_flag, in_out_manage_flag, multi_account_flag, + move_avg_price_flag, audit_print_flag, zero_change_amount_flag, + customer_static_price_flag, material_price_tax_flag, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{companyName,jdbcType=VARCHAR}, #{companyContacts,jdbcType=VARCHAR}, + #{companyAddress,jdbcType=VARCHAR}, #{companyTel,jdbcType=VARCHAR}, #{companyFax,jdbcType=VARCHAR}, + #{companyPostCode,jdbcType=VARCHAR}, #{saleAgreement,jdbcType=VARCHAR}, #{depotFlag,jdbcType=VARCHAR}, + #{customerFlag,jdbcType=VARCHAR}, #{minusStockFlag,jdbcType=VARCHAR}, #{purchaseBySaleFlag,jdbcType=VARCHAR}, + #{multiLevelApprovalFlag,jdbcType=VARCHAR}, #{multiBillType,jdbcType=VARCHAR}, + #{forceApprovalFlag,jdbcType=VARCHAR}, #{updateUnitPriceFlag,jdbcType=VARCHAR}, + #{overLinkBillFlag,jdbcType=VARCHAR}, #{inOutManageFlag,jdbcType=VARCHAR}, #{multiAccountFlag,jdbcType=VARCHAR}, + #{moveAvgPriceFlag,jdbcType=VARCHAR}, #{auditPrintFlag,jdbcType=VARCHAR}, #{zeroChangeAmountFlag,jdbcType=VARCHAR}, + #{customerStaticPriceFlag,jdbcType=VARCHAR}, #{materialPriceTaxFlag,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_system_config + + + id, + + + company_name, + + + company_contacts, + + + company_address, + + + company_tel, + + + company_fax, + + + company_post_code, + + + sale_agreement, + + + depot_flag, + + + customer_flag, + + + minus_stock_flag, + + + purchase_by_sale_flag, + + + multi_level_approval_flag, + + + multi_bill_type, + + + force_approval_flag, + + + update_unit_price_flag, + + + over_link_bill_flag, + + + in_out_manage_flag, + + + multi_account_flag, + + + move_avg_price_flag, + + + audit_print_flag, + + + zero_change_amount_flag, + + + customer_static_price_flag, + + + material_price_tax_flag, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{companyName,jdbcType=VARCHAR}, + + + #{companyContacts,jdbcType=VARCHAR}, + + + #{companyAddress,jdbcType=VARCHAR}, + + + #{companyTel,jdbcType=VARCHAR}, + + + #{companyFax,jdbcType=VARCHAR}, + + + #{companyPostCode,jdbcType=VARCHAR}, + + + #{saleAgreement,jdbcType=VARCHAR}, + + + #{depotFlag,jdbcType=VARCHAR}, + + + #{customerFlag,jdbcType=VARCHAR}, + + + #{minusStockFlag,jdbcType=VARCHAR}, + + + #{purchaseBySaleFlag,jdbcType=VARCHAR}, + + + #{multiLevelApprovalFlag,jdbcType=VARCHAR}, + + + #{multiBillType,jdbcType=VARCHAR}, + + + #{forceApprovalFlag,jdbcType=VARCHAR}, + + + #{updateUnitPriceFlag,jdbcType=VARCHAR}, + + + #{overLinkBillFlag,jdbcType=VARCHAR}, + + + #{inOutManageFlag,jdbcType=VARCHAR}, + + + #{multiAccountFlag,jdbcType=VARCHAR}, + + + #{moveAvgPriceFlag,jdbcType=VARCHAR}, + + + #{auditPrintFlag,jdbcType=VARCHAR}, + + + #{zeroChangeAmountFlag,jdbcType=VARCHAR}, + + + #{customerStaticPriceFlag,jdbcType=VARCHAR}, + + + #{materialPriceTaxFlag,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_system_config + + + id = #{record.id,jdbcType=BIGINT}, + + + company_name = #{record.companyName,jdbcType=VARCHAR}, + + + company_contacts = #{record.companyContacts,jdbcType=VARCHAR}, + + + company_address = #{record.companyAddress,jdbcType=VARCHAR}, + + + company_tel = #{record.companyTel,jdbcType=VARCHAR}, + + + company_fax = #{record.companyFax,jdbcType=VARCHAR}, + + + company_post_code = #{record.companyPostCode,jdbcType=VARCHAR}, + + + sale_agreement = #{record.saleAgreement,jdbcType=VARCHAR}, + + + depot_flag = #{record.depotFlag,jdbcType=VARCHAR}, + + + customer_flag = #{record.customerFlag,jdbcType=VARCHAR}, + + + minus_stock_flag = #{record.minusStockFlag,jdbcType=VARCHAR}, + + + purchase_by_sale_flag = #{record.purchaseBySaleFlag,jdbcType=VARCHAR}, + + + multi_level_approval_flag = #{record.multiLevelApprovalFlag,jdbcType=VARCHAR}, + + + multi_bill_type = #{record.multiBillType,jdbcType=VARCHAR}, + + + force_approval_flag = #{record.forceApprovalFlag,jdbcType=VARCHAR}, + + + update_unit_price_flag = #{record.updateUnitPriceFlag,jdbcType=VARCHAR}, + + + over_link_bill_flag = #{record.overLinkBillFlag,jdbcType=VARCHAR}, + + + in_out_manage_flag = #{record.inOutManageFlag,jdbcType=VARCHAR}, + + + multi_account_flag = #{record.multiAccountFlag,jdbcType=VARCHAR}, + + + move_avg_price_flag = #{record.moveAvgPriceFlag,jdbcType=VARCHAR}, + + + audit_print_flag = #{record.auditPrintFlag,jdbcType=VARCHAR}, + + + zero_change_amount_flag = #{record.zeroChangeAmountFlag,jdbcType=VARCHAR}, + + + customer_static_price_flag = #{record.customerStaticPriceFlag,jdbcType=VARCHAR}, + + + material_price_tax_flag = #{record.materialPriceTaxFlag,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_system_config + set id = #{record.id,jdbcType=BIGINT}, + company_name = #{record.companyName,jdbcType=VARCHAR}, + company_contacts = #{record.companyContacts,jdbcType=VARCHAR}, + company_address = #{record.companyAddress,jdbcType=VARCHAR}, + company_tel = #{record.companyTel,jdbcType=VARCHAR}, + company_fax = #{record.companyFax,jdbcType=VARCHAR}, + company_post_code = #{record.companyPostCode,jdbcType=VARCHAR}, + sale_agreement = #{record.saleAgreement,jdbcType=VARCHAR}, + depot_flag = #{record.depotFlag,jdbcType=VARCHAR}, + customer_flag = #{record.customerFlag,jdbcType=VARCHAR}, + minus_stock_flag = #{record.minusStockFlag,jdbcType=VARCHAR}, + purchase_by_sale_flag = #{record.purchaseBySaleFlag,jdbcType=VARCHAR}, + multi_level_approval_flag = #{record.multiLevelApprovalFlag,jdbcType=VARCHAR}, + multi_bill_type = #{record.multiBillType,jdbcType=VARCHAR}, + force_approval_flag = #{record.forceApprovalFlag,jdbcType=VARCHAR}, + update_unit_price_flag = #{record.updateUnitPriceFlag,jdbcType=VARCHAR}, + over_link_bill_flag = #{record.overLinkBillFlag,jdbcType=VARCHAR}, + in_out_manage_flag = #{record.inOutManageFlag,jdbcType=VARCHAR}, + multi_account_flag = #{record.multiAccountFlag,jdbcType=VARCHAR}, + move_avg_price_flag = #{record.moveAvgPriceFlag,jdbcType=VARCHAR}, + audit_print_flag = #{record.auditPrintFlag,jdbcType=VARCHAR}, + zero_change_amount_flag = #{record.zeroChangeAmountFlag,jdbcType=VARCHAR}, + customer_static_price_flag = #{record.customerStaticPriceFlag,jdbcType=VARCHAR}, + material_price_tax_flag = #{record.materialPriceTaxFlag,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_system_config + + + company_name = #{companyName,jdbcType=VARCHAR}, + + + company_contacts = #{companyContacts,jdbcType=VARCHAR}, + + + company_address = #{companyAddress,jdbcType=VARCHAR}, + + + company_tel = #{companyTel,jdbcType=VARCHAR}, + + + company_fax = #{companyFax,jdbcType=VARCHAR}, + + + company_post_code = #{companyPostCode,jdbcType=VARCHAR}, + + + sale_agreement = #{saleAgreement,jdbcType=VARCHAR}, + + + depot_flag = #{depotFlag,jdbcType=VARCHAR}, + + + customer_flag = #{customerFlag,jdbcType=VARCHAR}, + + + minus_stock_flag = #{minusStockFlag,jdbcType=VARCHAR}, + + + purchase_by_sale_flag = #{purchaseBySaleFlag,jdbcType=VARCHAR}, + + + multi_level_approval_flag = #{multiLevelApprovalFlag,jdbcType=VARCHAR}, + + + multi_bill_type = #{multiBillType,jdbcType=VARCHAR}, + + + force_approval_flag = #{forceApprovalFlag,jdbcType=VARCHAR}, + + + update_unit_price_flag = #{updateUnitPriceFlag,jdbcType=VARCHAR}, + + + over_link_bill_flag = #{overLinkBillFlag,jdbcType=VARCHAR}, + + + in_out_manage_flag = #{inOutManageFlag,jdbcType=VARCHAR}, + + + multi_account_flag = #{multiAccountFlag,jdbcType=VARCHAR}, + + + move_avg_price_flag = #{moveAvgPriceFlag,jdbcType=VARCHAR}, + + + audit_print_flag = #{auditPrintFlag,jdbcType=VARCHAR}, + + + zero_change_amount_flag = #{zeroChangeAmountFlag,jdbcType=VARCHAR}, + + + customer_static_price_flag = #{customerStaticPriceFlag,jdbcType=VARCHAR}, + + + material_price_tax_flag = #{materialPriceTaxFlag,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_system_config + set company_name = #{companyName,jdbcType=VARCHAR}, + company_contacts = #{companyContacts,jdbcType=VARCHAR}, + company_address = #{companyAddress,jdbcType=VARCHAR}, + company_tel = #{companyTel,jdbcType=VARCHAR}, + company_fax = #{companyFax,jdbcType=VARCHAR}, + company_post_code = #{companyPostCode,jdbcType=VARCHAR}, + sale_agreement = #{saleAgreement,jdbcType=VARCHAR}, + depot_flag = #{depotFlag,jdbcType=VARCHAR}, + customer_flag = #{customerFlag,jdbcType=VARCHAR}, + minus_stock_flag = #{minusStockFlag,jdbcType=VARCHAR}, + purchase_by_sale_flag = #{purchaseBySaleFlag,jdbcType=VARCHAR}, + multi_level_approval_flag = #{multiLevelApprovalFlag,jdbcType=VARCHAR}, + multi_bill_type = #{multiBillType,jdbcType=VARCHAR}, + force_approval_flag = #{forceApprovalFlag,jdbcType=VARCHAR}, + update_unit_price_flag = #{updateUnitPriceFlag,jdbcType=VARCHAR}, + over_link_bill_flag = #{overLinkBillFlag,jdbcType=VARCHAR}, + in_out_manage_flag = #{inOutManageFlag,jdbcType=VARCHAR}, + multi_account_flag = #{multiAccountFlag,jdbcType=VARCHAR}, + move_avg_price_flag = #{moveAvgPriceFlag,jdbcType=VARCHAR}, + audit_print_flag = #{auditPrintFlag,jdbcType=VARCHAR}, + zero_change_amount_flag = #{zeroChangeAmountFlag,jdbcType=VARCHAR}, + customer_static_price_flag = #{customerStaticPriceFlag,jdbcType=VARCHAR}, + material_price_tax_flag = #{materialPriceTaxFlag,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/SystemConfigMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/SystemConfigMapperEx.xml new file mode 100644 index 0000000..53d6c43 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/SystemConfigMapperEx.xml @@ -0,0 +1,25 @@ + + + + + + + update tbl_system_config + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/TenantMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/TenantMapper.xml new file mode 100644 index 0000000..6f46b22 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/TenantMapper.xml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, tenant_id, login_name, user_num_limit, type, enabled, create_time, expire_time, + remark, delete_flag + + + + + delete from tbl_tenant + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_tenant + + + + + + insert into tbl_tenant (id, tenant_id, login_name, + user_num_limit, type, enabled, + create_time, expire_time, remark, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, #{loginName,jdbcType=VARCHAR}, + #{userNumLimit,jdbcType=INTEGER}, #{type,jdbcType=VARCHAR}, #{enabled,jdbcType=BIT}, + #{createTime,jdbcType=TIMESTAMP}, #{expireTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_tenant + + + id, + + + tenant_id, + + + login_name, + + + user_num_limit, + + + type, + + + enabled, + + + create_time, + + + expire_time, + + + remark, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{loginName,jdbcType=VARCHAR}, + + + #{userNumLimit,jdbcType=INTEGER}, + + + #{type,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BIT}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{expireTime,jdbcType=TIMESTAMP}, + + + #{remark,jdbcType=VARCHAR}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_tenant + + + id = #{record.id,jdbcType=BIGINT}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + login_name = #{record.loginName,jdbcType=VARCHAR}, + + + user_num_limit = #{record.userNumLimit,jdbcType=INTEGER}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + expire_time = #{record.expireTime,jdbcType=TIMESTAMP}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_tenant + set id = #{record.id,jdbcType=BIGINT}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + login_name = #{record.loginName,jdbcType=VARCHAR}, + user_num_limit = #{record.userNumLimit,jdbcType=INTEGER}, + type = #{record.type,jdbcType=VARCHAR}, + enabled = #{record.enabled,jdbcType=BIT}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + expire_time = #{record.expireTime,jdbcType=TIMESTAMP}, + remark = #{record.remark,jdbcType=VARCHAR}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_tenant + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + login_name = #{loginName,jdbcType=VARCHAR}, + + + user_num_limit = #{userNumLimit,jdbcType=INTEGER}, + + + type = #{type,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BIT}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + expire_time = #{expireTime,jdbcType=TIMESTAMP}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_tenant + set tenant_id = #{tenantId,jdbcType=BIGINT}, + login_name = #{loginName,jdbcType=VARCHAR}, + user_num_limit = #{userNumLimit,jdbcType=INTEGER}, + type = #{type,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BIT}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + expire_time = #{expireTime,jdbcType=TIMESTAMP}, + remark = #{remark,jdbcType=VARCHAR}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml new file mode 100644 index 0000000..72fe56a --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/TenantMapperEx.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/UnitMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/UnitMapper.xml new file mode 100644 index 0000000..11aa44f --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/UnitMapper.xml @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, basic_unit, other_unit, other_unit_two, other_unit_three, ratio, ratio_two, + ratio_three, enabled, tenant_id, delete_flag + + + + + delete from tbl_unit + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_unit + + + + + + insert into tbl_unit (id, name, basic_unit, + other_unit, other_unit_two, other_unit_three, + ratio, ratio_two, ratio_three, + enabled, tenant_id, delete_flag + ) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{basicUnit,jdbcType=VARCHAR}, + #{otherUnit,jdbcType=VARCHAR}, #{otherUnitTwo,jdbcType=VARCHAR}, #{otherUnitThree,jdbcType=VARCHAR}, + #{ratio,jdbcType=DECIMAL}, #{ratioTwo,jdbcType=DECIMAL}, #{ratioThree,jdbcType=DECIMAL}, + #{enabled,jdbcType=BIT}, #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR} + ) + + + insert into tbl_unit + + + id, + + + name, + + + basic_unit, + + + other_unit, + + + other_unit_two, + + + other_unit_three, + + + ratio, + + + ratio_two, + + + ratio_three, + + + enabled, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{basicUnit,jdbcType=VARCHAR}, + + + #{otherUnit,jdbcType=VARCHAR}, + + + #{otherUnitTwo,jdbcType=VARCHAR}, + + + #{otherUnitThree,jdbcType=VARCHAR}, + + + #{ratio,jdbcType=DECIMAL}, + + + #{ratioTwo,jdbcType=DECIMAL}, + + + #{ratioThree,jdbcType=DECIMAL}, + + + #{enabled,jdbcType=BIT}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_unit + + + id = #{record.id,jdbcType=BIGINT}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + basic_unit = #{record.basicUnit,jdbcType=VARCHAR}, + + + other_unit = #{record.otherUnit,jdbcType=VARCHAR}, + + + other_unit_two = #{record.otherUnitTwo,jdbcType=VARCHAR}, + + + other_unit_three = #{record.otherUnitThree,jdbcType=VARCHAR}, + + + ratio = #{record.ratio,jdbcType=DECIMAL}, + + + ratio_two = #{record.ratioTwo,jdbcType=DECIMAL}, + + + ratio_three = #{record.ratioThree,jdbcType=DECIMAL}, + + + enabled = #{record.enabled,jdbcType=BIT}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_unit + set id = #{record.id,jdbcType=BIGINT}, + name = #{record.name,jdbcType=VARCHAR}, + basic_unit = #{record.basicUnit,jdbcType=VARCHAR}, + other_unit = #{record.otherUnit,jdbcType=VARCHAR}, + other_unit_two = #{record.otherUnitTwo,jdbcType=VARCHAR}, + other_unit_three = #{record.otherUnitThree,jdbcType=VARCHAR}, + ratio = #{record.ratio,jdbcType=DECIMAL}, + ratio_two = #{record.ratioTwo,jdbcType=DECIMAL}, + ratio_three = #{record.ratioThree,jdbcType=DECIMAL}, + enabled = #{record.enabled,jdbcType=BIT}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_unit + + + name = #{name,jdbcType=VARCHAR}, + + + basic_unit = #{basicUnit,jdbcType=VARCHAR}, + + + other_unit = #{otherUnit,jdbcType=VARCHAR}, + + + other_unit_two = #{otherUnitTwo,jdbcType=VARCHAR}, + + + other_unit_three = #{otherUnitThree,jdbcType=VARCHAR}, + + + ratio = #{ratio,jdbcType=DECIMAL}, + + + ratio_two = #{ratioTwo,jdbcType=DECIMAL}, + + + ratio_three = #{ratioThree,jdbcType=DECIMAL}, + + + enabled = #{enabled,jdbcType=BIT}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_unit + set name = #{name,jdbcType=VARCHAR}, + basic_unit = #{basicUnit,jdbcType=VARCHAR}, + other_unit = #{otherUnit,jdbcType=VARCHAR}, + other_unit_two = #{otherUnitTwo,jdbcType=VARCHAR}, + other_unit_three = #{otherUnitThree,jdbcType=VARCHAR}, + ratio = #{ratio,jdbcType=DECIMAL}, + ratio_two = #{ratioTwo,jdbcType=DECIMAL}, + ratio_three = #{ratioThree,jdbcType=DECIMAL}, + enabled = #{enabled,jdbcType=BIT}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/UnitMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/UnitMapperEx.xml new file mode 100644 index 0000000..e4e28c8 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/UnitMapperEx.xml @@ -0,0 +1,36 @@ + + + + + + + update tbl_unit + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + update tbl_unit + set ratio_two=null + where id=#{id} + + + update tbl_unit + set ratio_three=null + where id=#{id} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/UserBusinessMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/UserBusinessMapper.xml new file mode 100644 index 0000000..643c394 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/UserBusinessMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, type, key_id, value, btn_str, tenant_id, delete_flag + + + + + delete from tbl_user_business + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_user_business + + + + + + insert into tbl_user_business (id, type, key_id, + value, btn_str, tenant_id, + delete_flag) + values (#{id,jdbcType=BIGINT}, #{type,jdbcType=VARCHAR}, #{keyId,jdbcType=VARCHAR}, + #{value,jdbcType=VARCHAR}, #{btnStr,jdbcType=VARCHAR}, #{tenantId,jdbcType=BIGINT}, + #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_user_business + + + id, + + + type, + + + key_id, + + + value, + + + btn_str, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{type,jdbcType=VARCHAR}, + + + #{keyId,jdbcType=VARCHAR}, + + + #{value,jdbcType=VARCHAR}, + + + #{btnStr,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_user_business + + + id = #{record.id,jdbcType=BIGINT}, + + + type = #{record.type,jdbcType=VARCHAR}, + + + key_id = #{record.keyId,jdbcType=VARCHAR}, + + + value = #{record.value,jdbcType=VARCHAR}, + + + btn_str = #{record.btnStr,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_user_business + set id = #{record.id,jdbcType=BIGINT}, + type = #{record.type,jdbcType=VARCHAR}, + key_id = #{record.keyId,jdbcType=VARCHAR}, + value = #{record.value,jdbcType=VARCHAR}, + btn_str = #{record.btnStr,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_user_business + + + type = #{type,jdbcType=VARCHAR}, + + + key_id = #{keyId,jdbcType=VARCHAR}, + + + value = #{value,jdbcType=VARCHAR}, + + + btn_str = #{btnStr,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_user_business + set type = #{type,jdbcType=VARCHAR}, + key_id = #{keyId,jdbcType=VARCHAR}, + value = #{value,jdbcType=VARCHAR}, + btn_str = #{btnStr,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/UserBusinessMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/UserBusinessMapperEx.xml new file mode 100644 index 0000000..07ae43d --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/UserBusinessMapperEx.xml @@ -0,0 +1,41 @@ + + + + + update tbl_user_business + set delete_flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + + + + update tbl_user_business + set value= #{ubValue} + where type = #{type} and key_id = #{keyId} + and ifnull(delete_flag,'0') !='1' + + + + + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/UserMapper.xml b/smtERP-boot/src/main/resources/mapper_xml/UserMapper.xml new file mode 100644 index 0000000..1561bf8 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/UserMapper.xml @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, username, login_name, password, leader_flag, position, department, email, phonenum, + ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag + + + + + delete from tbl_user + where id = #{id,jdbcType=BIGINT} + + + delete from tbl_user + + + + + + insert into tbl_user (id, username, login_name, + password, leader_flag, position, + department, email, phonenum, + ismanager, isystem, status, + description, remark, weixin_open_id, + tenant_id, delete_flag) + values (#{id,jdbcType=BIGINT}, #{username,jdbcType=VARCHAR}, #{loginName,jdbcType=VARCHAR}, + #{password,jdbcType=VARCHAR}, #{leaderFlag,jdbcType=VARCHAR}, #{position,jdbcType=VARCHAR}, + #{department,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{phonenum,jdbcType=VARCHAR}, + #{ismanager,jdbcType=TINYINT}, #{isystem,jdbcType=TINYINT}, #{status,jdbcType=TINYINT}, + #{description,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{weixinOpenId,jdbcType=VARCHAR}, + #{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}) + + + insert into tbl_user + + + id, + + + username, + + + login_name, + + + password, + + + leader_flag, + + + position, + + + department, + + + email, + + + phonenum, + + + ismanager, + + + isystem, + + + status, + + + description, + + + remark, + + + weixin_open_id, + + + tenant_id, + + + delete_flag, + + + + + #{id,jdbcType=BIGINT}, + + + #{username,jdbcType=VARCHAR}, + + + #{loginName,jdbcType=VARCHAR}, + + + #{password,jdbcType=VARCHAR}, + + + #{leaderFlag,jdbcType=VARCHAR}, + + + #{position,jdbcType=VARCHAR}, + + + #{department,jdbcType=VARCHAR}, + + + #{email,jdbcType=VARCHAR}, + + + #{phonenum,jdbcType=VARCHAR}, + + + #{ismanager,jdbcType=TINYINT}, + + + #{isystem,jdbcType=TINYINT}, + + + #{status,jdbcType=TINYINT}, + + + #{description,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{weixinOpenId,jdbcType=VARCHAR}, + + + #{tenantId,jdbcType=BIGINT}, + + + #{deleteFlag,jdbcType=VARCHAR}, + + + + + + update tbl_user + + + id = #{record.id,jdbcType=BIGINT}, + + + username = #{record.username,jdbcType=VARCHAR}, + + + login_name = #{record.loginName,jdbcType=VARCHAR}, + + + password = #{record.password,jdbcType=VARCHAR}, + + + leader_flag = #{record.leaderFlag,jdbcType=VARCHAR}, + + + position = #{record.position,jdbcType=VARCHAR}, + + + department = #{record.department,jdbcType=VARCHAR}, + + + email = #{record.email,jdbcType=VARCHAR}, + + + phonenum = #{record.phonenum,jdbcType=VARCHAR}, + + + ismanager = #{record.ismanager,jdbcType=TINYINT}, + + + isystem = #{record.isystem,jdbcType=TINYINT}, + + + status = #{record.status,jdbcType=TINYINT}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + weixin_open_id = #{record.weixinOpenId,jdbcType=VARCHAR}, + + + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + + + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR}, + + + + + + + + update tbl_user + set id = #{record.id,jdbcType=BIGINT}, + username = #{record.username,jdbcType=VARCHAR}, + login_name = #{record.loginName,jdbcType=VARCHAR}, + password = #{record.password,jdbcType=VARCHAR}, + leader_flag = #{record.leaderFlag,jdbcType=VARCHAR}, + position = #{record.position,jdbcType=VARCHAR}, + department = #{record.department,jdbcType=VARCHAR}, + email = #{record.email,jdbcType=VARCHAR}, + phonenum = #{record.phonenum,jdbcType=VARCHAR}, + ismanager = #{record.ismanager,jdbcType=TINYINT}, + isystem = #{record.isystem,jdbcType=TINYINT}, + status = #{record.status,jdbcType=TINYINT}, + description = #{record.description,jdbcType=VARCHAR}, + remark = #{record.remark,jdbcType=VARCHAR}, + weixin_open_id = #{record.weixinOpenId,jdbcType=VARCHAR}, + tenant_id = #{record.tenantId,jdbcType=BIGINT}, + delete_flag = #{record.deleteFlag,jdbcType=VARCHAR} + + + + + + update tbl_user + + + username = #{username,jdbcType=VARCHAR}, + + + login_name = #{loginName,jdbcType=VARCHAR}, + + + password = #{password,jdbcType=VARCHAR}, + + + leader_flag = #{leaderFlag,jdbcType=VARCHAR}, + + + position = #{position,jdbcType=VARCHAR}, + + + department = #{department,jdbcType=VARCHAR}, + + + email = #{email,jdbcType=VARCHAR}, + + + phonenum = #{phonenum,jdbcType=VARCHAR}, + + + ismanager = #{ismanager,jdbcType=TINYINT}, + + + isystem = #{isystem,jdbcType=TINYINT}, + + + status = #{status,jdbcType=TINYINT}, + + + description = #{description,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + weixin_open_id = #{weixinOpenId,jdbcType=VARCHAR}, + + + tenant_id = #{tenantId,jdbcType=BIGINT}, + + + delete_flag = #{deleteFlag,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update tbl_user + set username = #{username,jdbcType=VARCHAR}, + login_name = #{loginName,jdbcType=VARCHAR}, + password = #{password,jdbcType=VARCHAR}, + leader_flag = #{leaderFlag,jdbcType=VARCHAR}, + position = #{position,jdbcType=VARCHAR}, + department = #{department,jdbcType=VARCHAR}, + email = #{email,jdbcType=VARCHAR}, + phonenum = #{phonenum,jdbcType=VARCHAR}, + ismanager = #{ismanager,jdbcType=TINYINT}, + isystem = #{isystem,jdbcType=TINYINT}, + status = #{status,jdbcType=TINYINT}, + description = #{description,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + weixin_open_id = #{weixinOpenId,jdbcType=VARCHAR}, + tenant_id = #{tenantId,jdbcType=BIGINT}, + delete_flag = #{deleteFlag,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/smtERP-boot/src/main/resources/mapper_xml/UserMapperEx.xml b/smtERP-boot/src/main/resources/mapper_xml/UserMapperEx.xml new file mode 100644 index 0000000..31d7f07 --- /dev/null +++ b/smtERP-boot/src/main/resources/mapper_xml/UserMapperEx.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + update tbl_user + set delete_flag = '1' + where id in ( + + #{id} + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + update tbl_user set status='2' + where tenant_id=#{tenantId} and id!=#{tenantId} + + + + + + + + update tbl_user u set u.weixin_open_id = #{weixinOpenId} + where u.login_name = #{loginName} and u.password = #{password} + and u.status=0 + and ifnull(u.delete_flag,'0') !='1' + + \ No newline at end of file diff --git a/smtERP-boot/src/test/java/com/reallin/smt/filter/LogCostFilterTest.java b/smtERP-boot/src/test/java/com/reallin/smt/filter/LogCostFilterTest.java new file mode 100644 index 0000000..318da8c --- /dev/null +++ b/smtERP-boot/src/test/java/com/reallin/smt/filter/LogCostFilterTest.java @@ -0,0 +1,129 @@ +package com.reallin.smt.filter; + +import com.reallin.smt.service.LegacyInventoryAuthService; +import com.reallin.smt.service.RedisService; +import org.junit.Before; +import org.junit.Test; +import org.springframework.mock.web.MockFilterConfig; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.test.util.ReflectionTestUtils; + +import javax.servlet.FilterChain; +import javax.servlet.annotation.WebFilter; +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +public class LogCostFilterTest { + private LogCostFilter filter; + private RedisService redis; + private LegacyInventoryAuthService inventoryAuth; + + @Before + public void setUp() throws Exception { + filter = new LogCostFilter(); + redis = mock(RedisService.class); + inventoryAuth = mock(LegacyInventoryAuthService.class); + ReflectionTestUtils.setField(filter, "redisService", redis); + ReflectionTestUtils.setField(filter, "legacyInventoryAuthService", inventoryAuth); + ReflectionTestUtils.setField(filter, "syncApiKey", "test-only-sync-key"); + MockFilterConfig config = new MockFilterConfig(); + config.addInitParameter("filterPath", LogCostFilter.class.getAnnotation(WebFilter.class).initParams()[0].value()); + filter.init(config); + } + + private MockHttpServletRequest request(String path) { + MockHttpServletRequest request = new MockHttpServletRequest("POST", "/apis" + path); + request.setContextPath("/apis"); + return request; + } + + private void check(MockHttpServletRequest request, boolean allowed, int status) throws Exception { + FilterChain chain = mock(FilterChain.class); + MockHttpServletResponse response = new MockHttpServletResponse(); + filter.doFilter(request, response, chain); + verify(chain, times(allowed ? 1 : 0)).doFilter(request, response); + assertEquals(status, response.getStatus()); + } + + @Test + public void anonymousSyncIsRejectedForBothEndpoints() throws Exception { + check(request("/smtInbound/sync"), false, 401); + check(request("/headquartersInbound/sync"), false, 401); + } + + @Test + public void syncKeyIsScopedToExactPostEndpoints() throws Exception { + for (String path : new String[]{"/smtInbound/sync", "/headquartersInbound/sync"}) { + MockHttpServletRequest request = request(path); + request.addHeader("X-Sync-Api-Key", "test-only-sync-key"); + check(request, true, 200); + request.setMethod("GET"); + check(request, false, 401); + } + MockHttpServletRequest other = request("/smtInbound/save"); + other.addHeader("X-Sync-Api-Key", "test-only-sync-key"); + check(other, false, 500); + } + + @Test + public void missingConfigurationAndWrongKeysFailClosed() throws Exception { + MockHttpServletRequest request = request("/smtInbound/sync"); + request.addHeader("X-Sync-Api-Key", "wrong"); + check(request, false, 401); + ReflectionTestUtils.setField(filter, "syncApiKey", ""); + request = request("/smtInbound/sync"); + request.addHeader("X-Sync-Api-Key", ""); + check(request, false, 401); + } + + @Test + public void erpSessionStillAllowsNormalBusinessAndSync() throws Exception { + for (String path : new String[]{"/smtInbound/save", "/smtInbound/sync", "/headquartersInbound/sync"}) { + MockHttpServletRequest request = request(path); + when(redis.getObjectFromSessionByKey(request, "userId")).thenReturn("63"); + check(request, true, 200); + } + } + + @Test + public void inventoryLoginIsPublicButOperationsRequireIdentity() throws Exception { + for (String base : new String[]{"/n2tpm/webmvc/Inventory", "/webmvc/Inventory"}) { + check(request(base + "/Login"), true, 200); + for (String operation : new String[]{"GetInventory", "GetInventoryDetail", "SaveDeviceInventoryInfo", + "AccepteOrHandoverDocForInventory", "UploadPicture", "GetDevice", "GetDevic"}) { + MockHttpServletRequest request = request(base + "/" + operation); + check(request, false, 401); + when(inventoryAuth.authenticatedUser(request)).thenReturn("63"); + check(request, true, 200); + } + check(request(base + "/LoginOther"), false, 401); + } + } + + @Test + public void inventoryAlsoWorksWithoutContextPrefix() throws Exception { + check(new MockHttpServletRequest("POST", "/webmvc/Inventory/Login"), true, 200); + check(new MockHttpServletRequest("POST", "/webmvc/Inventory/GetDevice"), false, 401); + } + + @Test + public void publicPrefixesCannotMatchSiblingEndpoints() throws Exception { + check(request("/platformConfig/getPlatform/logo"), true, 200); + check(request("/platformConfig/getPlatformEvil"), false, 500); + check(request("/api/plugin/tenant-statistics/tenantClean"), false, 500); + check(request("/smtInbound/template"), false, 500); + } + + @Test + public void staticTemplatesKeepWorkingForDirectBrowserDownloads() throws Exception { + for (String path : new String[]{"/smtInbound/template", "/headquartersInbound/template"}) { + MockHttpServletRequest request = request(path); + request.setMethod("GET"); + check(request, true, 200); + MockHttpServletRequest sibling = request(path + "Other"); + sibling.setMethod("GET"); + check(sibling, false, 500); + } + } +} diff --git a/smtERP-boot/src/test/java/com/reallin/smt/security/MapperSecurityTest.java b/smtERP-boot/src/test/java/com/reallin/smt/security/MapperSecurityTest.java new file mode 100644 index 0000000..e2fac94 --- /dev/null +++ b/smtERP-boot/src/test/java/com/reallin/smt/security/MapperSecurityTest.java @@ -0,0 +1,79 @@ +package com.reallin.smt.security; + +import org.apache.ibatis.builder.xml.XMLMapperBuilder; +import org.apache.ibatis.io.Resources; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.session.Configuration; +import org.junit.Test; +import java.io.InputStream; +import java.util.*; +import static org.junit.Assert.*; + +public class MapperSecurityTest { + private Configuration mapper(String name) throws Exception { + Configuration configuration = new Configuration(); + if (name.endsWith("Ex")) { + String baseResource = "mapper_xml/" + name.substring(0, name.length() - 2) + ".xml"; + try (InputStream input = Resources.getResourceAsStream(baseResource)) { + new XMLMapperBuilder(input, configuration, baseResource, configuration.getSqlFragments()).parse(); + } + } + String resource = "mapper_xml/" + name + ".xml"; + try (InputStream input = Resources.getResourceAsStream(resource)) { + new XMLMapperBuilder(input, configuration, resource, configuration.getSqlFragments()).parse(); + } + return configuration; + } + + @Test + public void allFourteenLikeValuesAreBoundRatherThanInsertedIntoSql() throws Exception { + String[][] cases = { + {"PackBomMapper", "bomNumber", "bomName", "outputMaterialParam"}, + {"ProductionOrderMapper", "orderNumber", "sourceNumber", "productMaterialParam"}, + {"ProductionReportMapper", "reportNumber", "orderNumber"}, + {"ProductionRequisitionMapper", "requisitionNumber", "orderNumber"} + }; + int bindings = 0; + for (String[] item : cases) { + Configuration configuration = mapper(item[0]); + Map parameters = new HashMap<>(); + for (int i = 1; i < item.length; i++) parameters.put(item[i], "SMT' OR 1=1 -- %_中文"); + BoundSql sql = configuration.getMappedStatement("com.reallin.smt.datasource.mappers." + + item[0] + ".selectList").getBoundSql(parameters); + assertFalse(sql.getSql(), sql.getSql().contains("OR 1=1")); + assertTrue(sql.getSql(), sql.getSql().contains("concat('%', ?, '%')")); + bindings += sql.getParameterMappings().size(); + Map ordinary = new HashMap<>(); + for (int i = 1; i < item.length; i++) ordinary.put(item[i], "SMT-001"); + assertEquals(sql.getSql(), configuration.getMappedStatement("com.reallin.smt.datasource.mappers." + + item[0] + ".selectList").getBoundSql(ordinary).getSql()); + } + assertEquals(14, bindings); + } + + @Test + public void existingMapperSortAllowlistsRejectInjectedFieldsAndDirections() throws Exception { + String[][] cases = { + {"DepotHeadMapperEx", "findInOutDetail", "barCode"}, + {"DepotHeadMapperEx", "findInOutMaterialCount", "numSum"}, + {"DepotHeadMapperEx", "findAllocationDetail", "operNumber"}, + {"MaterialMapperEx", "getListWithStock", "mBarCode"} + }; + for (String[] item : cases) { + Configuration configuration = mapper(item[0]); + String statement = "com.reallin.smt.datasource.mappers." + item[0] + "." + item[1]; + Map params = new HashMap<>(); + for (String collection : new String[]{"depotList", "depotFList", "categoryList", "idList"}) { + params.put(collection, Collections.emptyList()); + } + params.put("column", "id; DROP TABLE tbl_user"); + params.put("order", "desc; DROP TABLE tbl_user"); + assertFalse(configuration.getMappedStatement(statement).getBoundSql(params).getSql().contains("DROP")); + params.put("column", item[2]); + assertFalse(configuration.getMappedStatement(statement).getBoundSql(params).getSql().contains("DROP")); + params.put("order", "asc"); + String sql = configuration.getMappedStatement(statement).getBoundSql(params).getSql().replaceAll("\\s+", " "); + assertTrue(sql, sql.contains("order by " + item[2] + " asc")); + } + } +} diff --git a/smtERP-boot/src/test/java/com/reallin/smt/service/LegacyInventoryAuthServiceTest.java b/smtERP-boot/src/test/java/com/reallin/smt/service/LegacyInventoryAuthServiceTest.java new file mode 100644 index 0000000..9f8e641 --- /dev/null +++ b/smtERP-boot/src/test/java/com/reallin/smt/service/LegacyInventoryAuthServiceTest.java @@ -0,0 +1,51 @@ +package com.reallin.smt.service; + +import org.junit.Before; +import org.junit.Test; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.test.util.ReflectionTestUtils; +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +public class LegacyInventoryAuthServiceTest { + private LegacyInventoryAuthService auth; + private RedisService redis; + + @Before + public void setUp() { + auth = new LegacyInventoryAuthService(); + redis = mock(RedisService.class); + ReflectionTestUtils.setField(auth, "redisService", redis); + ReflectionTestUtils.setField(auth, "tokenTtlSeconds", 3600L); + } + + @Test + public void tokenIsRandomScopedAndExpiresWithoutRenewal() { + String token = auth.issueToken(63L); + assertTrue(token.matches("[a-f0-9]{32}")); + assertNotEquals(token, auth.issueToken(63L)); + verify(redis).storageKeyWithTime("inventory:token:" + token, "63", 3600L); + MockHttpServletRequest request = new MockHttpServletRequest(); + request.addHeader("X-Inventory-Token", token); + when(redis.getCacheObject("inventory:token:" + token)).thenReturn("63"); + assertEquals("63", auth.authenticatedUser(request)); + when(redis.getCacheObject("inventory:token:" + token)).thenReturn(null); + assertNull(auth.authenticatedUser(request)); + verify(redis, never()).getObjectFromSessionByKey(any(), anyString()); + } + + @Test + public void invalidTokenDoesNotFallBackToAnotherIdentity() { + MockHttpServletRequest request = new MockHttpServletRequest(); + request.addHeader("X-Inventory-Token", "invalid"); + assertNull(auth.authenticatedUser(request)); + verifyZeroInteractions(redis); + } + + @Test + public void erpSessionIsSupportedWhenNoInventoryTokenSupplied() { + MockHttpServletRequest request = new MockHttpServletRequest(); + when(redis.getObjectFromSessionByKey(request, "userId")).thenReturn("63"); + assertEquals("63", auth.authenticatedUser(request)); + } +} diff --git a/smtERP-boot/src/test/java/com/reallin/smt/service/LegacyInventorySecurityTest.java b/smtERP-boot/src/test/java/com/reallin/smt/service/LegacyInventorySecurityTest.java new file mode 100644 index 0000000..2c1d954 --- /dev/null +++ b/smtERP-boot/src/test/java/com/reallin/smt/service/LegacyInventorySecurityTest.java @@ -0,0 +1,113 @@ +package com.reallin.smt.service; + +import com.alibaba.fastjson.JSONObject; +import com.reallin.smt.exception.LegacyInventoryBusinessException; +import org.junit.Before; +import org.junit.Test; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.test.util.ReflectionTestUtils; +import org.springframework.util.DigestUtils; +import java.nio.charset.StandardCharsets; +import java.util.*; +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +public class LegacyInventorySecurityTest { + private LegacyInventoryService service; + private LegacyInventoryAuthService auth; + private JdbcTemplate jdbc; + private LoginAttemptService attempts; + + @Before + public void setUp() { + service = new LegacyInventoryService(); + auth = mock(LegacyInventoryAuthService.class); + jdbc = mock(JdbcTemplate.class); + attempts = mock(LoginAttemptService.class); + ReflectionTestUtils.setField(service, "legacyInventoryAuthService", auth); + ReflectionTestUtils.setField(service, "jdbcTemplate", jdbc); + ReflectionTestUtils.setField(service, "loginAttemptService", attempts); + when(auth.requireCurrentUserId()).thenReturn(63L); + } + + @Test + public void rejectsForgedOperatorBeforeReadingOrWritingBusinessData() { + JSONObject input = JSONObject.parseObject("{\"USER_ID\":\"64\",\"DATA_AUTH\":\"64\"}"); + try { + service.getInventory(input); + fail("Forged user accepted"); + } catch (LegacyInventoryBusinessException expected) { + verifyZeroInteractions(jdbc); + } + } + + @Test + public void rejectsOtherUsersInventoryDetails() { + Map inventory = new HashMap<>(); + inventory.put("inventory_user_id", 64L); + when(jdbc.queryForList(anyString(), eq("INV-1"))).thenReturn(Collections.singletonList(inventory)); + when(jdbc.queryForList(anyString(), eq(63L))).thenReturn(Collections.singletonList(new HashMap<>())); + try { + service.getInventoryDetail(JSONObject.parseObject("{\"INVENTORY_DOC\":\"INV-1\",\"DATA_AUTH\":\"63\"}")); + fail("Other user's inventory accepted"); + } catch (LegacyInventoryBusinessException expected) { + assertTrue(expected.getMessage().contains("无权")); + } + } + + @Test + public void successfulLegacyLoginPreservesFieldsAndAddsScopedToken() { + Map user = new HashMap<>(); + user.put("id", 63L); + user.put("password", DigestUtils.md5DigestAsHex("test-password".getBytes(StandardCharsets.UTF_8))); + when(jdbc.queryForList(anyString(), eq("operator"))).thenReturn(Collections.singletonList(user)); + when(auth.issueToken(63L)).thenReturn("scoped-token"); + Map result = (Map) service.login(JSONObject.parseObject( + "{\"USER_NAME\":\"operator\",\"PASSWORD\":\"test-password\"}")); + assertEquals("true", result.get("RESULT")); + assertEquals("63", result.get("USER_ID")); + assertEquals("63", result.get("DATA_AUTH")); + assertEquals("scoped-token", result.get("TOKEN")); + verify(attempts).clear("operator"); + } + + @Test + public void assignedOperatorCanStillAcceptDraftInventory() { + Map inventory = new HashMap<>(); + inventory.put("inventory_user_id", 63L); + inventory.put("id", 100L); + inventory.put("status", "DRAFT"); + when(jdbc.queryForList(anyString(), eq("INV-1"))).thenReturn(Collections.singletonList(inventory)); + when(jdbc.queryForList(anyString(), eq(63L))).thenReturn(Collections.singletonList(new HashMap<>())); + assertEquals("OK", service.acceptInventory(JSONObject.parseObject( + "{\"USER_ID\":\"63\",\"INVENTORY_DOC\":\"INV-1\",\"DATA_AUTH\":\"63\"}"))); + verify(jdbc).update(contains("UPDATE tbl_asset_inventory SET status="), eq("ACCEPTED"), eq(63L), eq(100L)); + verify(jdbc).update(contains("INSERT INTO tbl_asset_inventory_operation"), eq(100L), eq("2"), + eq(63L), any(java.sql.Timestamp.class), eq("接收盘点单")); + } + + @Test + public void lockedAccountCannotObtainTokenOrQueryCredentials() { + when(attempts.getRemainingDelaySeconds("operator")).thenReturn(30L); + try { + service.login(JSONObject.parseObject("{\"USER_NAME\":\"operator\",\"PASSWORD\":\"test-password\"}")); + fail("Locked login accepted"); + } catch (LegacyInventoryBusinessException expected) { + verifyZeroInteractions(jdbc); + verify(auth, never()).issueToken(any()); + } + } + + @Test + public void wrongPasswordNeverIssuesToken() { + Map user = new HashMap<>(); + user.put("password", "wrong"); + when(jdbc.queryForList(anyString(), eq("operator"))).thenReturn(Collections.singletonList(user)); + Map result = (Map) service.login(JSONObject.parseObject( + "{\"USER_NAME\":\"operator\",\"PASSWORD\":\"test-password\"}")); + assertEquals("false", result.get("RESULT")); + assertFalse(result.containsKey("TOKEN")); + verify(attempts).recordPasswordFailure("operator"); + verify(auth, never()).issueToken(any()); + } +} diff --git a/smtERP-boot/src/test/java/com/reallin/smt/service/LoginAttemptServiceTest.java b/smtERP-boot/src/test/java/com/reallin/smt/service/LoginAttemptServiceTest.java new file mode 100644 index 0000000..2677226 --- /dev/null +++ b/smtERP-boot/src/test/java/com/reallin/smt/service/LoginAttemptServiceTest.java @@ -0,0 +1,34 @@ +package com.reallin.smt.service; + +import org.junit.Before; +import org.junit.Test; +import org.springframework.test.util.ReflectionTestUtils; + +import static org.junit.Assert.assertEquals; + +public class LoginAttemptServiceTest { + + private LoginAttemptService loginAttemptService; + + @Before + public void setUp() { + loginAttemptService = new LoginAttemptService(); + ReflectionTestUtils.setField(loginAttemptService, "maxFailuresBeforeDelay", 3L); + ReflectionTestUtils.setField(loginAttemptService, "baseDelaySeconds", 30L); + ReflectionTestUtils.setField(loginAttemptService, "maxDelaySeconds", 1800L); + } + + @Test + public void shouldIncreaseDelayExponentiallyAfterThreshold() { + assertEquals(0L, loginAttemptService.calculateDelaySeconds(1)); + assertEquals(0L, loginAttemptService.calculateDelaySeconds(2)); + assertEquals(30L, loginAttemptService.calculateDelaySeconds(3)); + assertEquals(60L, loginAttemptService.calculateDelaySeconds(4)); + assertEquals(120L, loginAttemptService.calculateDelaySeconds(5)); + } + + @Test + public void shouldCapDelayAtConfiguredMaximum() { + assertEquals(1800L, loginAttemptService.calculateDelaySeconds(20)); + } +} diff --git a/smtERP-boot/src/test/java/com/reallin/smt/utils/SqlUtilTest.java b/smtERP-boot/src/test/java/com/reallin/smt/utils/SqlUtilTest.java new file mode 100644 index 0000000..588fefa --- /dev/null +++ b/smtERP-boot/src/test/java/com/reallin/smt/utils/SqlUtilTest.java @@ -0,0 +1,25 @@ +package com.reallin.smt.utils; + +import org.junit.Test; +import static org.junit.Assert.*; + +public class SqlUtilTest { + @Test + public void preservesSingleMultipleAndQualifiedSorts() { + for (String sort : new String[]{"id", "create_time desc", "sort asc, id DESC", "m.id desc", " id asc "}) { + assertEquals(sort, SqlUtil.escapeOrderBySql(sort)); + } + assertNull(SqlUtil.escapeOrderBySql(null)); + assertEquals("", SqlUtil.escapeOrderBySql("")); + } + + @Test + public void rejectsExtraSqlSyntaxEvenWithoutSpecialCharacters() { + assertFalse(SqlUtil.isValidOrderBySql(null)); + assertFalse(SqlUtil.isValidOrderBySql("a".repeat(501))); + for (String sort : new String[]{"id desc limit 1", "id;delete from tbl_user", "sleep(10)", + "id --", "id into outfile", "id,,name", "1", "id union select password"}) { + assertFalse(sort, SqlUtil.isValidOrderBySql(sort)); + } + } +} diff --git a/smtERP-boot/src/test/resources/generatorConfig.xml b/smtERP-boot/src/test/resources/generatorConfig.xml new file mode 100644 index 0000000..a30d5e3 --- /dev/null +++ b/smtERP-boot/src/test/resources/generatorConfig.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smtERP-web/.editorconfig b/smtERP-web/.editorconfig new file mode 100644 index 0000000..3e26fbb --- /dev/null +++ b/smtERP-web/.editorconfig @@ -0,0 +1,39 @@ +[*] +charset=utf-8 +end_of_line=crlf +insert_final_newline=false +indent_style=space +indent_size=2 + +[{*.ng,*.sht,*.html,*.shtm,*.shtml,*.htm}] +indent_style=space +indent_size=2 + +[{*.jhm,*.xslt,*.xul,*.rng,*.xsl,*.xsd,*.ant,*.tld,*.fxml,*.jrxml,*.xml,*.jnlp,*.wsdl}] +indent_style=space +indent_size=2 + +[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}] +indent_style=space +indent_size=2 + +[*.svg] +indent_style=space +indent_size=2 + +[*.js.map] +indent_style=space +indent_size=2 + +[*.less] +indent_style=space +indent_size=2 + +[*.vue] +indent_style=space +indent_size=2 + +[{.analysis_options,*.yml,*.yaml}] +indent_style=space +indent_size=2 + diff --git a/smtERP-web/.eslintignore b/smtERP-web/.eslintignore new file mode 100644 index 0000000..dbc8690 --- /dev/null +++ b/smtERP-web/.eslintignore @@ -0,0 +1 @@ +/src \ No newline at end of file diff --git a/smtERP-web/.gitattributes b/smtERP-web/.gitattributes new file mode 100644 index 0000000..e507319 --- /dev/null +++ b/smtERP-web/.gitattributes @@ -0,0 +1 @@ +public/* linguist-vendored \ No newline at end of file diff --git a/smtERP-web/.gitignore b/smtERP-web/.gitignore new file mode 100644 index 0000000..f56a978 --- /dev/null +++ b/smtERP-web/.gitignore @@ -0,0 +1,22 @@ +.DS_Store +node_modules +/dist + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* +/package-lock.json diff --git a/smtERP-web/.prettierrc b/smtERP-web/.prettierrc new file mode 100644 index 0000000..cbe842a --- /dev/null +++ b/smtERP-web/.prettierrc @@ -0,0 +1,5 @@ +{ + "printWidth": 120, + "semi": false, + "singleQuote": true +} diff --git a/smtERP-web/README.md b/smtERP-web/README.md new file mode 100644 index 0000000..d68f2fc --- /dev/null +++ b/smtERP-web/README.md @@ -0,0 +1,104 @@ +jshERP-web Vue +==== + + +Overview +---- + + +#### 前端技术 + +- 基础框架:[ant-design-vue](https://github.com/vueComponent/ant-design-vue) - Ant Design Of Vue 实现 +- JavaScript框架:Vue +- Jeecg-boot 的前段UI框架 +- Webpack +- node +- yarn +- eslint +- @vue/cli 3.2.1 +- [vue-cropper](https://github.com/xyxiao001/vue-cropper) - 头像裁剪组件 +- [@antv/g2](https://antv.alipay.com/zh-cn/index.html) - Alipay AntV 数据可视化图表 +- [Viser-vue](https://viserjs.github.io/docs.html#/viser/guide/installation) - antv/g2 封装实现 + + + +项目运行 +---- + +- 安装nodeJS +``` +建议安装node-v20.17.0-x64版本 教程参考 https://blog.csdn.net/Coin_Collecter/article/details/136484312 +``` + +- 安装yarn +``` +npm install -g yarn +``` + +- 配镜像源(速度快) +``` +yarn config set registry https://registry.npmmirror.com +``` + +- 安装依赖 +``` +yarn install +``` + +- 开发模式运行 +``` +yarn serve +``` + +- 编译发布项目 +``` +yarn build +``` + + +其他说明 +---- + +- 项目使用的 [vue-cli3](https://cli.vuejs.org/guide/), 请更新您的 cli + +- 关闭 Eslint (不推荐) 移除 `package.json` 中 `eslintConfig` 整个节点代码 + +- 修改 Ant Design 配色,在文件 `vue.config.js` 中,其他 less 变量覆盖参考 [ant design](https://ant.design/docs/react/customize-theme-cn) 官方说明 +```ecmascript 6 + css: { + loaderOptions: { + less: { + modifyVars: { + /* less 变量覆盖,用于自定义 ant design 主题 */ + + 'primary-color': '#F5222D', + 'link-color': '#F5222D', + 'border-radius-base': '4px', + }, + javascriptEnabled: true, + } + } + } +``` + + + +附属文档 +---- +- [Ant Design Vue](https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn) + +- [报表 viser-vue](https://viserjs.github.io/demo.html#/viser/bar/basic-bar) + +- [Vue](https://cn.vuejs.org/v2/guide) + +- [路由/菜单说明](https://github.com/zhangdaiscott/jeecg-boot/tree/master/ant-design-jeecg-vue/src/router/README.md) + +- [ANTD 默认配置项](https://github.com/zhangdaiscott/jeecg-boot/tree/master/ant-design-jeecg-vue/src/defaultSettings.js) + +- 其他待补充... + + +备注 +---- + +> @vue/cli 升级后,eslint 规则更新了。由于影响到全部 .vue 文件,需要逐个验证。既暂时关闭部分原本不验证的规则,后期维护时,在逐步修正这些 rules \ No newline at end of file diff --git a/smtERP-web/babel.config.js b/smtERP-web/babel.config.js new file mode 100644 index 0000000..f05294d --- /dev/null +++ b/smtERP-web/babel.config.js @@ -0,0 +1,6 @@ +module.exports = { + presets: [ + ['@vue/app', + { useBuiltIns: 'entry' }] + ] +} diff --git a/smtERP-web/changeLog.md b/smtERP-web/changeLog.md new file mode 100644 index 0000000..a3fe125 --- /dev/null +++ b/smtERP-web/changeLog.md @@ -0,0 +1,5 @@ +# 变更日志 + +## Release Version: 1.0.0 (2026-07-18) +## Change detail: +1. SMT-ERP project int \ No newline at end of file diff --git a/smtERP-web/idea.config.js b/smtERP-web/idea.config.js new file mode 100644 index 0000000..4d86bd9 --- /dev/null +++ b/smtERP-web/idea.config.js @@ -0,0 +1,24 @@ +'use strict' +const path = require('path') + +function resolve (dir) { + return path.join(__dirname, '.', dir) +} + +module.exports = { + context: path.resolve(__dirname, './'), + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'config': resolve('config'), + '@': resolve('src'), + '@views': resolve('src/views'), + '@comp': resolve('src/components'), + '@core': resolve('src/core'), + '@utils': resolve('src/utils'), + '@entry': resolve('src/entry'), + '@router': resolve('src/router'), + '@store': resolve('src/store') + } + }, +} \ No newline at end of file diff --git a/smtERP-web/package.json b/smtERP-web/package.json new file mode 100644 index 0000000..8098513 --- /dev/null +++ b/smtERP-web/package.json @@ -0,0 +1,112 @@ +{ + "name": "stm-erp-web", + "version": "1.0.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "test:security": "node tests/security.cjs" + }, + "dependencies": { + "@antv/data-set": "^0.11.2", + "@tinymce/tinymce-vue": "^2.0.0", + "ant-design-vue": "1.5.2", + "area-data": "^5.0.6", + "axios": "^0.18.0", + "clipboard": "^2.0.4", + "codemirror": "^5.46.0", + "dayjs": "^1.8.0", + "dompurify": "3.4.16", + "enquire.js": "^2.1.6", + "intro.js": "^4.2.2", + "jquery": "^1.12.4", + "js-cookie": "^2.2.0", + "lodash.get": "^4.4.2", + "lodash.pick": "^4.4.0", + "md5": "^2.2.1", + "nprogress": "^0.2.0", + "viser-vue": "^2.4.4", + "vue": "^2.7.16", + "vue-area-linkage": "^5.1.0", + "vue-cropper": "^0.4.8", + "vue-draggable-resizable": "^2.3.0", + "vue-i18n": "^8.7.0", + "vue-loader": "^15.7.0", + "vue-ls": "^3.2.0", + "vue-photo-preview": "^1.1.3", + "vue-print-nb-jeecg": "^1.0.9", + "vue-router": "^3.0.1", + "vue-splitpane": "^1.0.4", + "vuedraggable": "^2.20.0", + "vuex": "^3.1.0" + }, + "devDependencies": { + "@babel/polyfill": "^7.2.5", + "@vue/cli-plugin-babel": "^3.3.0", + "@vue/cli-plugin-eslint": "^3.3.0", + "@vue/cli-service": "^3.3.0", + "@vue/eslint-config-standard": "^4.0.0", + "babel-eslint": "^10.0.1", + "compression-webpack-plugin": "^3.1.0", + "eslint": "^5.16.0", + "eslint-plugin-vue": "^5.1.0", + "html-webpack-plugin": "^4.2.0", + "jsdom": "22.1.0", + "less": "^3.9.0", + "less-loader": "^4.1.0", + "vue-template-compiler": "^2.6.10" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/strongly-recommended", + "@vue/standard" + ], + "parserOptions": { + "parser": "babel-eslint" + }, + "rules": { + "generator-star-spacing": "off", + "no-mixed-operators": 0, + "vue/max-attributes-per-line": [ + 2, + { + "singleline": 5, + "multiline": { + "max": 1, + "allowFirstLine": false + } + } + ], + "vue/attribute-hyphenation": 0, + "vue/html-self-closing": 0, + "vue/component-name-in-template-casing": 0, + "vue/html-closing-bracket-spacing": 0, + "vue/singleline-html-element-content-newline": 0, + "vue/no-unused-components": 0, + "vue/multiline-html-element-content-newline": 0, + "vue/no-use-v-if-with-v-for": 0, + "vue/html-closing-bracket-newline": 0, + "vue/no-parsing-error": 0, + "no-console": 0, + "no-tabs": 0, + "indent": [ + 1, + 4 + ] + } + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 10" + ] +} diff --git a/smtERP-web/public/doc/apply_item_template.xls b/smtERP-web/public/doc/apply_item_template.xls new file mode 100644 index 0000000..3ff9179 Binary files /dev/null and b/smtERP-web/public/doc/apply_item_template.xls differ diff --git a/smtERP-web/public/doc/buy_sale_item_template.xls b/smtERP-web/public/doc/buy_sale_item_template.xls new file mode 100644 index 0000000..fae802e Binary files /dev/null and b/smtERP-web/public/doc/buy_sale_item_template.xls differ diff --git a/smtERP-web/public/doc/customer_template.xls b/smtERP-web/public/doc/customer_template.xls new file mode 100644 index 0000000..53db828 Binary files /dev/null and b/smtERP-web/public/doc/customer_template.xls differ diff --git a/smtERP-web/public/doc/goods_template.xls b/smtERP-web/public/doc/goods_template.xls new file mode 100644 index 0000000..fda897a Binary files /dev/null and b/smtERP-web/public/doc/goods_template.xls differ diff --git a/smtERP-web/public/doc/in_out_item_template.xls b/smtERP-web/public/doc/in_out_item_template.xls new file mode 100644 index 0000000..8b9e9a2 Binary files /dev/null and b/smtERP-web/public/doc/in_out_item_template.xls differ diff --git a/smtERP-web/public/doc/member_template.xls b/smtERP-web/public/doc/member_template.xls new file mode 100644 index 0000000..1fde4a3 Binary files /dev/null and b/smtERP-web/public/doc/member_template.xls differ diff --git a/smtERP-web/public/doc/order_item_template.xls b/smtERP-web/public/doc/order_item_template.xls new file mode 100644 index 0000000..f57147a Binary files /dev/null and b/smtERP-web/public/doc/order_item_template.xls differ diff --git a/smtERP-web/public/doc/vendor_template.xls b/smtERP-web/public/doc/vendor_template.xls new file mode 100644 index 0000000..2e9201c Binary files /dev/null and b/smtERP-web/public/doc/vendor_template.xls differ diff --git a/smtERP-web/public/index.html b/smtERP-web/public/index.html new file mode 100644 index 0000000..b79ce71 --- /dev/null +++ b/smtERP-web/public/index.html @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + +

+
+
+
+
+
+ 正在加载系统,请耐心等待 +
+
+
+ + + + diff --git a/smtERP-web/public/static/Android.png b/smtERP-web/public/static/Android.png new file mode 100644 index 0000000..a4174f7 Binary files /dev/null and b/smtERP-web/public/static/Android.png differ diff --git a/smtERP-web/public/static/android-code.png b/smtERP-web/public/static/android-code.png new file mode 100644 index 0000000..e5daee9 Binary files /dev/null and b/smtERP-web/public/static/android-code.png differ diff --git a/smtERP-web/public/static/banner-home.jpg b/smtERP-web/public/static/banner-home.jpg new file mode 100644 index 0000000..c118b8b Binary files /dev/null and b/smtERP-web/public/static/banner-home.jpg differ diff --git a/smtERP-web/public/static/banner-small.jpg b/smtERP-web/public/static/banner-small.jpg new file mode 100644 index 0000000..4809663 Binary files /dev/null and b/smtERP-web/public/static/banner-small.jpg differ diff --git a/smtERP-web/public/static/bgimg.png b/smtERP-web/public/static/bgimg.png new file mode 100644 index 0000000..e892b38 Binary files /dev/null and b/smtERP-web/public/static/bgimg.png differ diff --git a/smtERP-web/public/static/blue.png b/smtERP-web/public/static/blue.png new file mode 100644 index 0000000..37d0ed4 Binary files /dev/null and b/smtERP-web/public/static/blue.png differ diff --git a/smtERP-web/public/static/color.less b/smtERP-web/public/static/color.less new file mode 100644 index 0000000..f62bbb8 --- /dev/null +++ b/smtERP-web/public/static/color.less @@ -0,0 +1,7701 @@ +@primary-color: #1890ff; +/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */ +/* stylelint-disable no-duplicate-selectors */ +/* stylelint-disable */ +.bezierEasingMixin() { + @functions: ~`(function() { + var NEWTON_ITERATIONS = 4; + var NEWTON_MIN_SLOPE = 0.001; + var SUBDIVISION_PRECISION = 0.0000001; + var SUBDIVISION_MAX_ITERATIONS = 10; + + var kSplineTableSize = 11; + var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); + + var float32ArraySupported = typeof Float32Array === 'function'; + + function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } + function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } + function C (aA1) { return 3.0 * aA1; } + + // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. + function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } + + // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. + function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } + + function binarySubdivide (aX, aA, aB, mX1, mX2) { + var currentX, currentT, i = 0; + do { + currentT = aA + (aB - aA) / 2.0; + currentX = calcBezier(currentT, mX1, mX2) - aX; + if (currentX > 0.0) { + aB = currentT; + } else { + aA = currentT; + } + } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); + return currentT; + } + + function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { + for (var i = 0; i < NEWTON_ITERATIONS; ++i) { + var currentSlope = getSlope(aGuessT, mX1, mX2); + if (currentSlope === 0.0) { + return aGuessT; + } + var currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + } + return aGuessT; + } + + var BezierEasing = function (mX1, mY1, mX2, mY2) { + if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { + throw new Error('bezier x values must be in [0, 1] range'); + } + + // Precompute samples table + var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); + if (mX1 !== mY1 || mX2 !== mY2) { + for (var i = 0; i < kSplineTableSize; ++i) { + sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); + } + } + + function getTForX (aX) { + var intervalStart = 0.0; + var currentSample = 1; + var lastSample = kSplineTableSize - 1; + + for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { + intervalStart += kSampleStepSize; + } + --currentSample; + + // Interpolate to provide an initial guess for t + var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); + var guessForT = intervalStart + dist * kSampleStepSize; + + var initialSlope = getSlope(guessForT, mX1, mX2); + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT, mX1, mX2); + } else if (initialSlope === 0.0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); + } + } + + return function BezierEasing (x) { + if (mX1 === mY1 && mX2 === mY2) { + return x; // linear + } + // Because JavaScript number are imprecise, we should guarantee the extremes are right. + if (x === 0) { + return 0; + } + if (x === 1) { + return 1; + } + return calcBezier(getTForX(x), mY1, mY2); + }; + }; + + this.colorEasing = BezierEasing(0.26, 0.09, 0.37, 0.18); + // less 3 requires a return + return ''; +})()`; +} +// It is hacky way to make this function will be compiled preferentially by less +// resolve error: `ReferenceError: colorPalette is not defined` +// https://github.com/ant-design/ant-motion/issues/44 +.bezierEasingMixin(); + +/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */ +.tinyColorMixin() { + @functions: ~`(function() { +// TinyColor v1.4.1 +// https://github.com/bgrins/TinyColor +// 2016-07-07, Brian Grinstead, MIT License +var trimLeft = /^\s+/, + trimRight = /\s+$/, + tinyCounter = 0, + mathRound = Math.round, + mathMin = Math.min, + mathMax = Math.max, + mathRandom = Math.random; + +function tinycolor (color, opts) { + + color = (color) ? color : ''; + opts = opts || { }; + + // If input is already a tinycolor, return itself + if (color instanceof tinycolor) { + return color; + } + // If we are called as a function, call using new instead + if (!(this instanceof tinycolor)) { + return new tinycolor(color, opts); + } + + var rgb = inputToRGB(color); + this._originalInput = color, + this._r = rgb.r, + this._g = rgb.g, + this._b = rgb.b, + this._a = rgb.a, + this._roundA = mathRound(100*this._a) / 100, + this._format = opts.format || rgb.format; + this._gradientType = opts.gradientType; + + // Don't let the range of [0,255] come back in [0,1]. + // Potentially lose a little bit of precision here, but will fix issues where + // .5 gets interpreted as half of the total, instead of half of 1 + // If it was supposed to be 128, this was already taken care of by inputToRgb + if (this._r < 1) { this._r = mathRound(this._r); } + if (this._g < 1) { this._g = mathRound(this._g); } + if (this._b < 1) { this._b = mathRound(this._b); } + + this._ok = rgb.ok; + this._tc_id = tinyCounter++; +} + +tinycolor.prototype = { + isDark: function() { + return this.getBrightness() < 128; + }, + isLight: function() { + return !this.isDark(); + }, + isValid: function() { + return this._ok; + }, + getOriginalInput: function() { + return this._originalInput; + }, + getFormat: function() { + return this._format; + }, + getAlpha: function() { + return this._a; + }, + getBrightness: function() { + //http://www.w3.org/TR/AERT#color-contrast + var rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; + }, + getLuminance: function() { + //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef + var rgb = this.toRgb(); + var RsRGB, GsRGB, BsRGB, R, G, B; + RsRGB = rgb.r/255; + GsRGB = rgb.g/255; + BsRGB = rgb.b/255; + + if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);} + if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);} + if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);} + return (0.2126 * R) + (0.7152 * G) + (0.0722 * B); + }, + setAlpha: function(value) { + this._a = boundAlpha(value); + this._roundA = mathRound(100*this._a) / 100; + return this; + }, + toHsv: function() { + var hsv = rgbToHsv(this._r, this._g, this._b); + return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; + }, + toHsvString: function() { + var hsv = rgbToHsv(this._r, this._g, this._b); + var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); + return (this._a == 1) ? + "hsv(" + h + ", " + s + "%, " + v + "%)" : + "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")"; + }, + toHsl: function() { + var hsl = rgbToHsl(this._r, this._g, this._b); + return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; + }, + toHslString: function() { + var hsl = rgbToHsl(this._r, this._g, this._b); + var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); + return (this._a == 1) ? + "hsl(" + h + ", " + s + "%, " + l + "%)" : + "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")"; + }, + toHex: function(allow3Char) { + return rgbToHex(this._r, this._g, this._b, allow3Char); + }, + toHexString: function(allow3Char) { + return '#' + this.toHex(allow3Char); + }, + toHex8: function(allow4Char) { + return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); + }, + toHex8String: function(allow4Char) { + return '#' + this.toHex8(allow4Char); + }, + toRgb: function() { + return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; + }, + toRgbString: function() { + return (this._a == 1) ? + "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : + "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; + }, + toPercentageRgb: function() { + return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; + }, + toPercentageRgbString: function() { + return (this._a == 1) ? + "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : + "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; + }, + toName: function() { + if (this._a === 0) { + return "transparent"; + } + + if (this._a < 1) { + return false; + } + + return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; + }, + toFilter: function(secondColor) { + var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a); + var secondHex8String = hex8String; + var gradientType = this._gradientType ? "GradientType = 1, " : ""; + + if (secondColor) { + var s = tinycolor(secondColor); + secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a); + } + + return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"; + }, + toString: function(format) { + var formatSet = !!format; + format = format || this._format; + + var formattedString = false; + var hasAlpha = this._a < 1 && this._a >= 0; + var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name"); + + if (needsAlphaFormat) { + // Special case for "transparent", all other non-alpha formats + // will return rgba when there is transparency. + if (format === "name" && this._a === 0) { + return this.toName(); + } + return this.toRgbString(); + } + if (format === "rgb") { + formattedString = this.toRgbString(); + } + if (format === "prgb") { + formattedString = this.toPercentageRgbString(); + } + if (format === "hex" || format === "hex6") { + formattedString = this.toHexString(); + } + if (format === "hex3") { + formattedString = this.toHexString(true); + } + if (format === "hex4") { + formattedString = this.toHex8String(true); + } + if (format === "hex8") { + formattedString = this.toHex8String(); + } + if (format === "name") { + formattedString = this.toName(); + } + if (format === "hsl") { + formattedString = this.toHslString(); + } + if (format === "hsv") { + formattedString = this.toHsvString(); + } + + return formattedString || this.toHexString(); + }, + clone: function() { + return tinycolor(this.toString()); + }, + + _applyModification: function(fn, args) { + var color = fn.apply(null, [this].concat([].slice.call(args))); + this._r = color._r; + this._g = color._g; + this._b = color._b; + this.setAlpha(color._a); + return this; + }, + lighten: function() { + return this._applyModification(lighten, arguments); + }, + brighten: function() { + return this._applyModification(brighten, arguments); + }, + darken: function() { + return this._applyModification(darken, arguments); + }, + desaturate: function() { + return this._applyModification(desaturate, arguments); + }, + saturate: function() { + return this._applyModification(saturate, arguments); + }, + greyscale: function() { + return this._applyModification(greyscale, arguments); + }, + spin: function() { + return this._applyModification(spin, arguments); + }, + + _applyCombination: function(fn, args) { + return fn.apply(null, [this].concat([].slice.call(args))); + }, + analogous: function() { + return this._applyCombination(analogous, arguments); + }, + complement: function() { + return this._applyCombination(complement, arguments); + }, + monochromatic: function() { + return this._applyCombination(monochromatic, arguments); + }, + splitcomplement: function() { + return this._applyCombination(splitcomplement, arguments); + }, + triad: function() { + return this._applyCombination(triad, arguments); + }, + tetrad: function() { + return this._applyCombination(tetrad, arguments); + } +}; + +// If input is an object, force 1 into "1.0" to handle ratios properly +// String input requires "1.0" as input, so 1 will be treated as 1 +tinycolor.fromRatio = function(color, opts) { + if (typeof color == "object") { + var newColor = {}; + for (var i in color) { + if (color.hasOwnProperty(i)) { + if (i === "a") { + newColor[i] = color[i]; + } + else { + newColor[i] = convertToPercentage(color[i]); + } + } + } + color = newColor; + } + + return tinycolor(color, opts); +}; + +// Given a string or object, convert that input to RGB +// Possible string inputs: +// +// "red" +// "#f00" or "f00" +// "#ff0000" or "ff0000" +// "#ff000000" or "ff000000" +// "rgb 255 0 0" or "rgb (255, 0, 0)" +// "rgb 1.0 0 0" or "rgb (1, 0, 0)" +// "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" +// "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" +// "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" +// "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" +// "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" +// +function inputToRGB(color) { + + var rgb = { r: 0, g: 0, b: 0 }; + var a = 1; + var s = null; + var v = null; + var l = null; + var ok = false; + var format = false; + + if (typeof color == "string") { + color = stringInputToObject(color); + } + + if (typeof color == "object") { + if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; + } + else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { + s = convertToPercentage(color.s); + v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, s, v); + ok = true; + format = "hsv"; + } + else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { + s = convertToPercentage(color.s); + l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, s, l); + ok = true; + format = "hsl"; + } + + if (color.hasOwnProperty("a")) { + a = color.a; + } + } + + a = boundAlpha(a); + + return { + ok: ok, + format: color.format || format, + r: mathMin(255, mathMax(rgb.r, 0)), + g: mathMin(255, mathMax(rgb.g, 0)), + b: mathMin(255, mathMax(rgb.b, 0)), + a: a + }; +} + +// Conversion Functions +// -------------------- + +// rgbToHsl, rgbToHsv, hslToRgb, hsvToRgb modified from: +// + +// rgbToRgb +// Handle bounds / percentage checking to conform to CSS color spec +// +// *Assumes:* r, g, b in [0, 255] or [0, 1] +// *Returns:* { r, g, b } in [0, 255] +function rgbToRgb(r, g, b){ + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; +} + +// rgbToHsl +// Converts an RGB color value to HSL. +// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] +// *Returns:* { h, s, l } in [0,1] +function rgbToHsl(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, l = (max + min) / 2; + + if(max == min) { + h = s = 0; // achromatic + } + else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + + h /= 6; + } + + return { h: h, s: s, l: l }; +} + +// hslToRgb +// Converts an HSL color value to RGB. +// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] +// *Returns:* { r, g, b } in the set [0, 255] +function hslToRgb(h, s, l) { + var r, g, b; + + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); + + function hue2rgb(p, q, t) { + if(t < 0) t += 1; + if(t > 1) t -= 1; + if(t < 1/6) return p + (q - p) * 6 * t; + if(t < 1/2) return q; + if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; + return p; + } + + if(s === 0) { + r = g = b = l; // achromatic + } + else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1/3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1/3); + } + + return { r: r * 255, g: g * 255, b: b * 255 }; +} + +// rgbToHsv +// Converts an RGB color value to HSV +// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] +// *Returns:* { h, s, v } in [0,1] +function rgbToHsv(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, v = max; + + var d = max - min; + s = max === 0 ? 0 : d / max; + + if(max == min) { + h = 0; // achromatic + } + else { + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + return { h: h, s: s, v: v }; +} + +// hsvToRgb +// Converts an HSV color value to RGB. +// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] +// *Returns:* { r, g, b } in the set [0, 255] + function hsvToRgb(h, s, v) { + + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + + var i = Math.floor(h), + f = h - i, + p = v * (1 - s), + q = v * (1 - f * s), + t = v * (1 - (1 - f) * s), + mod = i % 6, + r = [v, q, p, p, t, v][mod], + g = [t, v, v, q, p, p][mod], + b = [p, p, t, v, v, q][mod]; + + return { r: r * 255, g: g * 255, b: b * 255 }; +} + +// rgbToHex +// Converts an RGB color to hex +// Assumes r, g, and b are contained in the set [0, 255] +// Returns a 3 or 6 character hex +function rgbToHex(r, g, b, allow3Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + // Return a 3 character hex if possible + if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); + } + + return hex.join(""); +} + +// rgbaToHex +// Converts an RGBA color plus alpha transparency to hex +// Assumes r, g, b are contained in the set [0, 255] and +// a in [0, 1]. Returns a 4 or 8 character rgba hex +function rgbaToHex(r, g, b, a, allow4Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)), + pad2(convertDecimalToHex(a)) + ]; + + // Return a 4 character hex if possible + if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); + } + + return hex.join(""); +} + +// rgbaToArgbHex +// Converts an RGBA color to an ARGB Hex8 string +// Rarely used, but required for "toFilter()" +function rgbaToArgbHex(r, g, b, a) { + + var hex = [ + pad2(convertDecimalToHex(a)), + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + return hex.join(""); +} + +// equals +// Can be called with any tinycolor input +tinycolor.equals = function (color1, color2) { + if (!color1 || !color2) { return false; } + return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); +}; + +tinycolor.random = function() { + return tinycolor.fromRatio({ + r: mathRandom(), + g: mathRandom(), + b: mathRandom() + }); +}; + +// Modification Functions +// ---------------------- +// Thanks to less.js for some of the basics here +// + +function desaturate(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} + +function saturate(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} + +function greyscale(color) { + return tinycolor(color).desaturate(100); +} + +function lighten (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} + +function brighten(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var rgb = tinycolor(color).toRgb(); + rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100)))); + rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100)))); + rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100)))); + return tinycolor(rgb); +} + +function darken (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} + +// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. +// Values outside of this range will be wrapped into this range. +function spin(color, amount) { + var hsl = tinycolor(color).toHsl(); + var hue = (hsl.h + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return tinycolor(hsl); +} + +// Combination Functions +// --------------------- +// Thanks to jQuery xColor for some of the ideas behind these +// + +function complement(color) { + var hsl = tinycolor(color).toHsl(); + hsl.h = (hsl.h + 180) % 360; + return tinycolor(hsl); +} + +function triad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }) + ]; +} + +function tetrad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }) + ]; +} + +function splitcomplement(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}), + tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l}) + ]; +} + +function analogous(color, results, slices) { + results = results || 6; + slices = slices || 30; + + var hsl = tinycolor(color).toHsl(); + var part = 360 / slices; + var ret = [tinycolor(color)]; + + for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) { + hsl.h = (hsl.h + part) % 360; + ret.push(tinycolor(hsl)); + } + return ret; +} + +function monochromatic(color, results) { + results = results || 6; + var hsv = tinycolor(color).toHsv(); + var h = hsv.h, s = hsv.s, v = hsv.v; + var ret = []; + var modification = 1 / results; + + while (results--) { + ret.push(tinycolor({ h: h, s: s, v: v})); + v = (v + modification) % 1; + } + + return ret; +} + +// Utility Functions +// --------------------- + +tinycolor.mix = function(color1, color2, amount) { + amount = (amount === 0) ? 0 : (amount || 50); + + var rgb1 = tinycolor(color1).toRgb(); + var rgb2 = tinycolor(color2).toRgb(); + + var p = amount / 100; + + var rgba = { + r: ((rgb2.r - rgb1.r) * p) + rgb1.r, + g: ((rgb2.g - rgb1.g) * p) + rgb1.g, + b: ((rgb2.b - rgb1.b) * p) + rgb1.b, + a: ((rgb2.a - rgb1.a) * p) + rgb1.a + }; + + return tinycolor(rgba); +}; + +// Readability Functions +// --------------------- +// false +// tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false +tinycolor.isReadable = function(color1, color2, wcag2) { + var readability = tinycolor.readability(color1, color2); + var wcag2Parms, out; + + out = false; + + wcag2Parms = validateWCAG2Parms(wcag2); + switch (wcag2Parms.level + wcag2Parms.size) { + case "AAsmall": + case "AAAlarge": + out = readability >= 4.5; + break; + case "AAlarge": + out = readability >= 3; + break; + case "AAAsmall": + out = readability >= 7; + break; + } + return out; + +}; + +// mostReadable +// Given a base color and a list of possible foreground or background +// colors for that base, returns the most readable color. +// Optionally returns Black or White if the most readable color is unreadable. +// *Example* +// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255" +// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString(); // "#ffffff" +// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3" +// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff" +tinycolor.mostReadable = function(baseColor, colorList, args) { + var bestColor = null; + var bestScore = 0; + var readability; + var includeFallbackColors, level, size ; + args = args || {}; + includeFallbackColors = args.includeFallbackColors ; + level = args.level; + size = args.size; + + for (var i= 0; i < colorList.length ; i++) { + readability = tinycolor.readability(baseColor, colorList[i]); + if (readability > bestScore) { + bestScore = readability; + bestColor = tinycolor(colorList[i]); + } + } + + if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) { + return bestColor; + } + else { + args.includeFallbackColors=false; + return tinycolor.mostReadable(baseColor,["#fff", "#000"],args); + } +}; + +// Big List of Colors +// ------------------ +// +var names = tinycolor.names = { + aliceblue: "f0f8ff", + antiquewhite: "faebd7", + aqua: "0ff", + aquamarine: "7fffd4", + azure: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "000", + blanchedalmond: "ffebcd", + blue: "00f", + blueviolet: "8a2be2", + brown: "a52a2a", + burlywood: "deb887", + burntsienna: "ea7e5d", + cadetblue: "5f9ea0", + chartreuse: "7fff00", + chocolate: "d2691e", + coral: "ff7f50", + cornflowerblue: "6495ed", + cornsilk: "fff8dc", + crimson: "dc143c", + cyan: "0ff", + darkblue: "00008b", + darkcyan: "008b8b", + darkgoldenrod: "b8860b", + darkgray: "a9a9a9", + darkgreen: "006400", + darkgrey: "a9a9a9", + darkkhaki: "bdb76b", + darkmagenta: "8b008b", + darkolivegreen: "556b2f", + darkorange: "ff8c00", + darkorchid: "9932cc", + darkred: "8b0000", + darksalmon: "e9967a", + darkseagreen: "8fbc8f", + darkslateblue: "483d8b", + darkslategray: "2f4f4f", + darkslategrey: "2f4f4f", + darkturquoise: "00ced1", + darkviolet: "9400d3", + deeppink: "ff1493", + deepskyblue: "00bfff", + dimgray: "696969", + dimgrey: "696969", + dodgerblue: "1e90ff", + firebrick: "b22222", + floralwhite: "fffaf0", + forestgreen: "228b22", + fuchsia: "f0f", + gainsboro: "dcdcdc", + ghostwhite: "f8f8ff", + gold: "ffd700", + goldenrod: "daa520", + gray: "808080", + green: "008000", + greenyellow: "adff2f", + grey: "808080", + honeydew: "f0fff0", + hotpink: "ff69b4", + indianred: "cd5c5c", + indigo: "4b0082", + ivory: "fffff0", + khaki: "f0e68c", + lavender: "e6e6fa", + lavenderblush: "fff0f5", + lawngreen: "7cfc00", + lemonchiffon: "fffacd", + lightblue: "add8e6", + lightcoral: "f08080", + lightcyan: "e0ffff", + lightgoldenrodyellow: "fafad2", + lightgray: "d3d3d3", + lightgreen: "90ee90", + lightgrey: "d3d3d3", + lightpink: "ffb6c1", + lightsalmon: "ffa07a", + lightseagreen: "20b2aa", + lightskyblue: "87cefa", + lightslategray: "789", + lightslategrey: "789", + lightsteelblue: "b0c4de", + lightyellow: "ffffe0", + lime: "0f0", + limegreen: "32cd32", + linen: "faf0e6", + magenta: "f0f", + maroon: "800000", + mediumaquamarine: "66cdaa", + mediumblue: "0000cd", + mediumorchid: "ba55d3", + mediumpurple: "9370db", + mediumseagreen: "3cb371", + mediumslateblue: "7b68ee", + mediumspringgreen: "00fa9a", + mediumturquoise: "48d1cc", + mediumvioletred: "c71585", + midnightblue: "191970", + mintcream: "f5fffa", + mistyrose: "ffe4e1", + moccasin: "ffe4b5", + navajowhite: "ffdead", + navy: "000080", + oldlace: "fdf5e6", + olive: "808000", + olivedrab: "6b8e23", + orange: "ffa500", + orangered: "ff4500", + orchid: "da70d6", + palegoldenrod: "eee8aa", + palegreen: "98fb98", + paleturquoise: "afeeee", + palevioletred: "db7093", + papayawhip: "ffefd5", + peachpuff: "ffdab9", + peru: "cd853f", + pink: "ffc0cb", + plum: "dda0dd", + powderblue: "b0e0e6", + purple: "800080", + rebeccapurple: "663399", + red: "f00", + rosybrown: "bc8f8f", + royalblue: "4169e1", + saddlebrown: "8b4513", + salmon: "fa8072", + sandybrown: "f4a460", + seagreen: "2e8b57", + seashell: "fff5ee", + sienna: "a0522d", + silver: "c0c0c0", + skyblue: "87ceeb", + slateblue: "6a5acd", + slategray: "708090", + slategrey: "708090", + snow: "fffafa", + springgreen: "00ff7f", + steelblue: "4682b4", + tan: "d2b48c", + teal: "008080", + thistle: "d8bfd8", + tomato: "ff6347", + turquoise: "40e0d0", + violet: "ee82ee", + wheat: "f5deb3", + white: "fff", + whitesmoke: "f5f5f5", + yellow: "ff0", + yellowgreen: "9acd32" +}; + +// Make it easy to access colors via hexNames[hex] +var hexNames = tinycolor.hexNames = flip(names); + +// Utilities +// --------- + +// { 'name1': 'val1' } becomes { 'val1': 'name1' } +function flip(o) { + var flipped = { }; + for (var i in o) { + if (o.hasOwnProperty(i)) { + flipped[o[i]] = i; + } + } + return flipped; +} + +// Return a valid alpha value [0,1] with all invalid values being set to 1 +function boundAlpha(a) { + a = parseFloat(a); + + if (isNaN(a) || a < 0 || a > 1) { + a = 1; + } + + return a; +} + +// Take input from [0, n] and return it as [0, 1] +function bound01(n, max) { + if (isOnePointZero(n)) { n = "100%"; } + + var processPercent = isPercentage(n); + n = mathMin(max, mathMax(0, parseFloat(n))); + + // Automatically convert percentage into number + if (processPercent) { + n = parseInt(n * max, 10) / 100; + } + + // Handle floating point rounding errors + if ((Math.abs(n - max) < 0.000001)) { + return 1; + } + + // Convert into [0, 1] range if it isn't already + return (n % max) / parseFloat(max); +} + +// Force a number between 0 and 1 +function clamp01(val) { + return mathMin(1, mathMax(0, val)); +} + +// Parse a base-16 hex value into a base-10 integer +function parseIntFromHex(val) { + return parseInt(val, 16); +} + +// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 +// +function isOnePointZero(n) { + return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; +} + +// Check to see if string passed in is a percentage +function isPercentage(n) { + return typeof n === "string" && n.indexOf('%') != -1; +} + +// Force a hex value to have 2 characters +function pad2(c) { + return c.length == 1 ? '0' + c : '' + c; +} + +// Replace a decimal with it's percentage value +function convertToPercentage(n) { + if (n <= 1) { + n = (n * 100) + "%"; + } + + return n; +} + +// Converts a decimal to a hex value +function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); +} +// Converts a hex value to a decimal +function convertHexToDecimal(h) { + return (parseIntFromHex(h) / 255); +} + +var matchers = (function() { + + // + var CSS_INTEGER = "[-\\+]?\\d+%?"; + + // + var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; + + // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. + var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; + + // Actual matching. + // Parentheses and commas are optional, but not required. + // Whitespace can take the place of commas or opening paren + var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + + return { + CSS_UNIT: new RegExp(CSS_UNIT), + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), + hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ + }; +})(); + +// isValidCSSUnit +// Take in a single string / number and check to see if it looks like a CSS unit +// (see matchers above for definition). +function isValidCSSUnit(color) { + return !!matchers.CSS_UNIT.exec(color); +} + +// stringInputToObject +// Permissive string parsing. Take in a number of formats, and output an object +// based on detected format. Returns { r, g, b } or { h, s, l } or { h, s, v} +function stringInputToObject(color) { + + color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase(); + var named = false; + if (names[color]) { + color = names[color]; + named = true; + } + else if (color == 'transparent') { + return { r: 0, g: 0, b: 0, a: 0, format: "name" }; + } + + // Try to match string input using regular expressions. + // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] + // Just return an object and let the conversion functions handle that. + // This way the result will be the same whether the tinycolor is initialized with string or object. + var match; + if ((match = matchers.rgb.exec(color))) { + return { r: match[1], g: match[2], b: match[3] }; + } + if ((match = matchers.rgba.exec(color))) { + return { r: match[1], g: match[2], b: match[3], a: match[4] }; + } + if ((match = matchers.hsl.exec(color))) { + return { h: match[1], s: match[2], l: match[3] }; + } + if ((match = matchers.hsla.exec(color))) { + return { h: match[1], s: match[2], l: match[3], a: match[4] }; + } + if ((match = matchers.hsv.exec(color))) { + return { h: match[1], s: match[2], v: match[3] }; + } + if ((match = matchers.hsva.exec(color))) { + return { h: match[1], s: match[2], v: match[3], a: match[4] }; + } + if ((match = matchers.hex8.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + a: convertHexToDecimal(match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex6.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + } + if ((match = matchers.hex4.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + a: convertHexToDecimal(match[4] + '' + match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex3.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + format: named ? "name" : "hex" + }; + } + + return false; +} + +function validateWCAG2Parms(parms) { + // return valid WCAG2 parms for isReadable. + // If input parms are invalid, return {"level":"AA", "size":"small"} + var level, size; + parms = parms || {"level":"AA", "size":"small"}; + level = (parms.level || "AA").toUpperCase(); + size = (parms.size || "small").toLowerCase(); + if (level !== "AA" && level !== "AAA") { + level = "AA"; + } + if (size !== "small" && size !== "large") { + size = "small"; + } + return {"level":level, "size":size}; +} + +this.tinycolor = tinycolor; + +})()`; +} +// It is hacky way to make this function will be compiled preferentially by less +// resolve error: `ReferenceError: colorPalette is not defined` +// https://github.com/ant-design/ant-motion/issues/44 +.tinyColorMixin(); + +// We create a very complex algorithm which take the place of original tint/shade color system +// to make sure no one can understand it 👻 +// and create an entire color palette magicly by inputing just a single primary color. +// We are using bezier-curve easing function and some color manipulations like tint/shade/darken/spin +.colorPaletteMixin() { + @functions: ~`(function() { + var hueStep = 2; + var saturationStep = 16; + var saturationStep2 = 5; + var brightnessStep1 = 5; + var brightnessStep2 = 15; + var lightColorCount = 5; + var darkColorCount = 4; + + var getHue = function(hsv, i, isLight) { + var hue; + if (hsv.h >= 60 && hsv.h <= 240) { + hue = isLight ? hsv.h - hueStep * i : hsv.h + hueStep * i; + } else { + hue = isLight ? hsv.h + hueStep * i : hsv.h - hueStep * i; + } + if (hue < 0) { + hue += 360; + } else if (hue >= 360) { + hue -= 360; + } + return Math.round(hue); + }; + var getSaturation = function(hsv, i, isLight) { + var saturation; + if (isLight) { + saturation = Math.round(hsv.s * 100) - saturationStep * i; + } else if (i == darkColorCount) { + saturation = Math.round(hsv.s * 100) + saturationStep; + } else { + saturation = Math.round(hsv.s * 100) + saturationStep2 * i; + } + if (saturation > 100) { + saturation = 100; + } + if (isLight && i === lightColorCount && saturation > 10) { + saturation = 10; + } + if (saturation < 6) { + saturation = 6; + } + return Math.round(saturation); + }; + var getValue = function(hsv, i, isLight) { + if (isLight) { + return Math.round(hsv.v * 100) + brightnessStep1 * i; + } + return Math.round(hsv.v * 100) - brightnessStep2 * i; + }; + + this.colorPalette = function(color, index) { + var isLight = index <= 6; + var hsv = tinycolor(color).toHsv(); + var i = isLight ? lightColorCount + 1 - index : index - lightColorCount - 1; + return tinycolor({ + h: getHue(hsv, i, isLight), + s: getSaturation(hsv, i, isLight), + v: getValue(hsv, i, isLight), + }).toHexString(); + }; +})()`; +} +// It is hacky way to make this function will be compiled preferentially by less +// resolve error: `ReferenceError: colorPalette is not defined` +// https://github.com/ant-design/ant-motion/issues/44 +.colorPaletteMixin(); + +// color palettes +@blue-1: color(~`colorPalette("@{blue-6}", 1)`); +@blue-2: color(~`colorPalette("@{blue-6}", 2)`); +@blue-3: color(~`colorPalette("@{blue-6}", 3)`); +@blue-4: color(~`colorPalette("@{blue-6}", 4)`); +@blue-5: color(~`colorPalette("@{blue-6}", 5)`); +@blue-6: #1890ff; +@blue-7: color(~`colorPalette("@{blue-6}", 7)`); +@blue-8: color(~`colorPalette("@{blue-6}", 8)`); +@blue-9: color(~`colorPalette("@{blue-6}", 9)`); +@blue-10: color(~`colorPalette("@{blue-6}", 10)`); + +@purple-1: color(~`colorPalette("@{purple-6}", 1)`); +@purple-2: color(~`colorPalette("@{purple-6}", 2)`); +@purple-3: color(~`colorPalette("@{purple-6}", 3)`); +@purple-4: color(~`colorPalette("@{purple-6}", 4)`); +@purple-5: color(~`colorPalette("@{purple-6}", 5)`); +@purple-6: #722ed1; +@purple-7: color(~`colorPalette("@{purple-6}", 7)`); +@purple-8: color(~`colorPalette("@{purple-6}", 8)`); +@purple-9: color(~`colorPalette("@{purple-6}", 9)`); +@purple-10: color(~`colorPalette("@{purple-6}", 10)`); + +@cyan-1: color(~`colorPalette("@{cyan-6}", 1)`); +@cyan-2: color(~`colorPalette("@{cyan-6}", 2)`); +@cyan-3: color(~`colorPalette("@{cyan-6}", 3)`); +@cyan-4: color(~`colorPalette("@{cyan-6}", 4)`); +@cyan-5: color(~`colorPalette("@{cyan-6}", 5)`); +@cyan-6: #13c2c2; +@cyan-7: color(~`colorPalette("@{cyan-6}", 7)`); +@cyan-8: color(~`colorPalette("@{cyan-6}", 8)`); +@cyan-9: color(~`colorPalette("@{cyan-6}", 9)`); +@cyan-10: color(~`colorPalette("@{cyan-6}", 10)`); + +@green-1: color(~`colorPalette("@{green-6}", 1)`); +@green-2: color(~`colorPalette("@{green-6}", 2)`); +@green-3: color(~`colorPalette("@{green-6}", 3)`); +@green-4: color(~`colorPalette("@{green-6}", 4)`); +@green-5: color(~`colorPalette("@{green-6}", 5)`); +@green-6: #52c41a; +@green-7: color(~`colorPalette("@{green-6}", 7)`); +@green-8: color(~`colorPalette("@{green-6}", 8)`); +@green-9: color(~`colorPalette("@{green-6}", 9)`); +@green-10: color(~`colorPalette("@{green-6}", 10)`); + +@magenta-1: color(~`colorPalette("@{magenta-6}", 1)`); +@magenta-2: color(~`colorPalette("@{magenta-6}", 2)`); +@magenta-3: color(~`colorPalette("@{magenta-6}", 3)`); +@magenta-4: color(~`colorPalette("@{magenta-6}", 4)`); +@magenta-5: color(~`colorPalette("@{magenta-6}", 5)`); +@magenta-6: #eb2f96; +@magenta-7: color(~`colorPalette("@{magenta-6}", 7)`); +@magenta-8: color(~`colorPalette("@{magenta-6}", 8)`); +@magenta-9: color(~`colorPalette("@{magenta-6}", 9)`); +@magenta-10: color(~`colorPalette("@{magenta-6}", 10)`); + +// alias of magenta +@pink-1: color(~`colorPalette("@{pink-6}", 1)`); +@pink-2: color(~`colorPalette("@{pink-6}", 2)`); +@pink-3: color(~`colorPalette("@{pink-6}", 3)`); +@pink-4: color(~`colorPalette("@{pink-6}", 4)`); +@pink-5: color(~`colorPalette("@{pink-6}", 5)`); +@pink-6: #eb2f96; +@pink-7: color(~`colorPalette("@{pink-6}", 7)`); +@pink-8: color(~`colorPalette("@{pink-6}", 8)`); +@pink-9: color(~`colorPalette("@{pink-6}", 9)`); +@pink-10: color(~`colorPalette("@{pink-6}", 10)`); + +@red-1: color(~`colorPalette("@{red-6}", 1)`); +@red-2: color(~`colorPalette("@{red-6}", 2)`); +@red-3: color(~`colorPalette("@{red-6}", 3)`); +@red-4: color(~`colorPalette("@{red-6}", 4)`); +@red-5: color(~`colorPalette("@{red-6}", 5)`); +@red-6: #f5222d; +@red-7: color(~`colorPalette("@{red-6}", 7)`); +@red-8: color(~`colorPalette("@{red-6}", 8)`); +@red-9: color(~`colorPalette("@{red-6}", 9)`); +@red-10: color(~`colorPalette("@{red-6}", 10)`); + +@orange-1: color(~`colorPalette("@{orange-6}", 1)`); +@orange-2: color(~`colorPalette("@{orange-6}", 2)`); +@orange-3: color(~`colorPalette("@{orange-6}", 3)`); +@orange-4: color(~`colorPalette("@{orange-6}", 4)`); +@orange-5: color(~`colorPalette("@{orange-6}", 5)`); +@orange-6: #fa8c16; +@orange-7: color(~`colorPalette("@{orange-6}", 7)`); +@orange-8: color(~`colorPalette("@{orange-6}", 8)`); +@orange-9: color(~`colorPalette("@{orange-6}", 9)`); +@orange-10: color(~`colorPalette("@{orange-6}", 10)`); + +@yellow-1: color(~`colorPalette("@{yellow-6}", 1)`); +@yellow-2: color(~`colorPalette("@{yellow-6}", 2)`); +@yellow-3: color(~`colorPalette("@{yellow-6}", 3)`); +@yellow-4: color(~`colorPalette("@{yellow-6}", 4)`); +@yellow-5: color(~`colorPalette("@{yellow-6}", 5)`); +@yellow-6: #fadb14; +@yellow-7: color(~`colorPalette("@{yellow-6}", 7)`); +@yellow-8: color(~`colorPalette("@{yellow-6}", 8)`); +@yellow-9: color(~`colorPalette("@{yellow-6}", 9)`); +@yellow-10: color(~`colorPalette("@{yellow-6}", 10)`); + +@volcano-1: color(~`colorPalette("@{volcano-6}", 1)`); +@volcano-2: color(~`colorPalette("@{volcano-6}", 2)`); +@volcano-3: color(~`colorPalette("@{volcano-6}", 3)`); +@volcano-4: color(~`colorPalette("@{volcano-6}", 4)`); +@volcano-5: color(~`colorPalette("@{volcano-6}", 5)`); +@volcano-6: #fa541c; +@volcano-7: color(~`colorPalette("@{volcano-6}", 7)`); +@volcano-8: color(~`colorPalette("@{volcano-6}", 8)`); +@volcano-9: color(~`colorPalette("@{volcano-6}", 9)`); +@volcano-10: color(~`colorPalette("@{volcano-6}", 10)`); + +@geekblue-1: color(~`colorPalette("@{geekblue-6}", 1)`); +@geekblue-2: color(~`colorPalette("@{geekblue-6}", 2)`); +@geekblue-3: color(~`colorPalette("@{geekblue-6}", 3)`); +@geekblue-4: color(~`colorPalette("@{geekblue-6}", 4)`); +@geekblue-5: color(~`colorPalette("@{geekblue-6}", 5)`); +@geekblue-6: #2f54eb; +@geekblue-7: color(~`colorPalette("@{geekblue-6}", 7)`); +@geekblue-8: color(~`colorPalette("@{geekblue-6}", 8)`); +@geekblue-9: color(~`colorPalette("@{geekblue-6}", 9)`); +@geekblue-10: color(~`colorPalette("@{geekblue-6}", 10)`); + +@lime-1: color(~`colorPalette("@{lime-6}", 1)`); +@lime-2: color(~`colorPalette("@{lime-6}", 2)`); +@lime-3: color(~`colorPalette("@{lime-6}", 3)`); +@lime-4: color(~`colorPalette("@{lime-6}", 4)`); +@lime-5: color(~`colorPalette("@{lime-6}", 5)`); +@lime-6: #a0d911; +@lime-7: color(~`colorPalette("@{lime-6}", 7)`); +@lime-8: color(~`colorPalette("@{lime-6}", 8)`); +@lime-9: color(~`colorPalette("@{lime-6}", 9)`); +@lime-10: color(~`colorPalette("@{lime-6}", 10)`); + +@gold-1: color(~`colorPalette("@{gold-6}", 1)`); +@gold-2: color(~`colorPalette("@{gold-6}", 2)`); +@gold-3: color(~`colorPalette("@{gold-6}", 3)`); +@gold-4: color(~`colorPalette("@{gold-6}", 4)`); +@gold-5: color(~`colorPalette("@{gold-6}", 5)`); +@gold-6: #faad14; +@gold-7: color(~`colorPalette("@{gold-6}", 7)`); +@gold-8: color(~`colorPalette("@{gold-6}", 8)`); +@gold-9: color(~`colorPalette("@{gold-6}", 9)`); +@gold-10: color(~`colorPalette("@{gold-6}", 10)`); + +// The prefix to use on all css classes from ant. +@ant-prefix : ant; + +// -------- Colors ----------- + +@info-color : @blue-6; +@success-color : @green-6; +@processing-color : @blue-6; +@error-color : @red-6; +@highlight-color : @red-6; +@warning-color : @gold-6; +@normal-color : #d9d9d9; + +// Color used by default to control hover and active backgrounds and for +// alert info backgrounds. +@primary-1: color(~`colorPalette("@{primary-color}", 1)`); // replace tint(@primary-color, 90%) +@primary-2: color(~`colorPalette("@{primary-color}", 2)`); // replace tint(@primary-color, 80%) +@primary-3: color(~`colorPalette("@{primary-color}", 3)`); // unused +@primary-4: color(~`colorPalette("@{primary-color}", 4)`); // unused +@primary-5: color(~`colorPalette("@{primary-color}", 5)`); // color used to control the text color in many active and hover states, replace tint(@primary-color, 20%) +@primary-6: @primary-color; // color used to control the text color of active buttons, don't use, use @primary-color +@primary-7: color(~`colorPalette("@{primary-color}", 7)`); // replace shade(@primary-color, 5%) +@primary-8: color(~`colorPalette("@{primary-color}", 8)`); // unused +@primary-9: color(~`colorPalette("@{primary-color}", 9)`); // unused +@primary-10: color(~`colorPalette("@{primary-color}", 10)`); // unused + +// Base Scaffolding Variables +// --- + +// Background color for `` +@body-background : #fff; +// Base background color for most components +@component-background : #fff; +@font-family : "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, +"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +@code-family : "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; +@heading-color : fade(#000, 85%); +@text-color : fade(#000, 65%); +@text-color-secondary : fade(#000, 45%); +@heading-color-dark : fade(#fff, 100%); +@text-color-dark : fade(#fff, 85%); +@text-color-secondary-dark: fade(#fff, 65%); +@font-size-base : 14px; +@font-size-lg : @font-size-base + 2px; +@font-size-sm : 12px; +@line-height-base : 1.5; +@border-radius-base : 4px; +@border-radius-sm : 2px; + +// vertical paddings +@padding-lg : 24px; // containers +@padding-md : 16px; // small containers and buttons +@padding-sm : 12px; // Form controls and items +@padding-xs : 8px; // small items + +// vertical padding for all form controls +@control-padding-horizontal: @padding-sm; +@control-padding-horizontal-sm: @padding-xs; + +// The background colors for active and hover states for things like +// list items or table cells. +@item-active-bg : @primary-1; +@item-hover-bg : @primary-1; + +// ICONFONT +@iconfont-css-prefix : anticon; + +// LINK +@link-color : @primary-color; +@link-hover-color : color(~`colorPalette("@{link-color}", 5)`); +@link-active-color : color(~`colorPalette("@{link-color}", 7)`); +@link-decoration : none; +@link-hover-decoration : none; + +// Animation +@ease-base-out : cubic-bezier(0.7, 0.3, 0.1, 1); +@ease-base-in : cubic-bezier(0.9, 0, 0.3, 0.7); +@ease-out : cubic-bezier(0.215, 0.61, 0.355, 1); +@ease-in : cubic-bezier(0.55, 0.055, 0.675, 0.19); +@ease-in-out : cubic-bezier(0.645, 0.045, 0.355, 1); +@ease-out-back : cubic-bezier(0.12, 0.4, 0.29, 1.46); +@ease-in-back : cubic-bezier(0.71, -0.46, 0.88, 0.6); +@ease-in-out-back : cubic-bezier(0.71, -0.46, 0.29, 1.46); +@ease-out-circ : cubic-bezier(0.08, 0.82, 0.17, 1); +@ease-in-circ : cubic-bezier(0.6, 0.04, 0.98, 0.34); +@ease-in-out-circ : cubic-bezier(0.78, 0.14, 0.15, 0.86); +@ease-out-quint : cubic-bezier(0.23, 1, 0.32, 1); +@ease-in-quint : cubic-bezier(0.755, 0.05, 0.855, 0.06); +@ease-in-out-quint : cubic-bezier(0.86, 0, 0.07, 1); + +// Border color +@border-color-base : hsv(0, 0, 85%); // base border outline a component +@border-color-split : hsv(0, 0, 91%); // split border inside a component +@border-width-base : 1px; // width of the border for a component +@border-style-base : solid; // style of a components border + +// Outline +@outline-blur-size : 0; +@outline-width : 2px; +@outline-color : @primary-color; + +@background-color-light : hsv(0, 0, 98%); // background of header and selected item +@background-color-base : hsv(0, 0, 96%); // Default grey background color + +// Disabled states +@disabled-color : fade(#000, 25%); +@disabled-bg : @background-color-base; +@disabled-color-dark : fade(#fff, 35%); + +// Shadow +@shadow-color : rgba(0, 0, 0, .15); +@box-shadow-base : @shadow-1-down; +@shadow-1-up : 0 -2px 8px @shadow-color; +@shadow-1-down : 0 2px 8px @shadow-color; +@shadow-1-left : -2px 0 8px @shadow-color; +@shadow-1-right : 2px 0 8px @shadow-color; +@shadow-2 : 0 4px 12px @shadow-color; + +// Buttons +@btn-font-weight : 400; +@btn-border-radius-base : @border-radius-base; +@btn-border-radius-sm : @border-radius-base; + +@btn-primary-color : #fff; +@btn-primary-bg : @primary-color; + +@btn-default-color : @text-color; +@btn-default-bg : #fff; +@btn-default-border : @border-color-base; + +@btn-danger-color : @error-color; +@btn-danger-bg : @background-color-base; +@btn-danger-border : @border-color-base; + +@btn-disable-color : @disabled-color; +@btn-disable-bg : @disabled-bg; +@btn-disable-border : @border-color-base; + +@btn-padding-base : 0 @padding-md - 1px; +@btn-font-size-lg : @font-size-lg; +@btn-font-size-sm : @font-size-base; +@btn-padding-lg : @btn-padding-base; +@btn-padding-sm : 0 @padding-xs - 1px; + +@btn-height-base : 32px; +@btn-height-lg : 40px; +@btn-height-sm : 24px; + +@btn-circle-size : @btn-height-base; +@btn-circle-size-lg : @btn-height-lg; +@btn-circle-size-sm : @btn-height-sm; + +@btn-group-border : @primary-5; + +// Checkbox +@checkbox-size : 16px; +@checkbox-color : @primary-color; +@checkbox-check-color : #fff; + +// Radio +@radio-size : 16px; +@radio-dot-color : @primary-color; + +// Radio buttons +@radio-button-bg : @btn-default-bg; +@radio-button-color : @btn-default-color; +@radio-button-hover-color : @primary-5; +@radio-button-active-color : @primary-7; + +// Media queries breakpoints +// Extra small screen / phone +@screen-xs : 480px; +@screen-xs-min : @screen-xs; + +// Small screen / tablet +@screen-sm : 576px; +@screen-sm-min : @screen-sm; + +// Medium screen / desktop +@screen-md : 768px; +@screen-md-min : @screen-md; + +// Large screen / wide desktop +@screen-lg : 992px; +@screen-lg-min : @screen-lg; + +// Extra large screen / full hd +@screen-xl : 1200px; +@screen-xl-min : @screen-xl; + +// Extra extra large screen / large descktop +@screen-xxl : 1600px; +@screen-xxl-min : @screen-xxl; + +// provide a maximum +@screen-xs-max : (@screen-sm-min - 1px); +@screen-sm-max : (@screen-md-min - 1px); +@screen-md-max : (@screen-lg-min - 1px); +@screen-lg-max : (@screen-xl-min - 1px); +@screen-xl-max : (@screen-xxl-min - 1px); + +// Grid system +@grid-columns : 24; +@grid-gutter-width : 0; + +// Layout +@layout-body-background : #f0f2f5; +@layout-header-background : #001529; +@layout-footer-background : @layout-body-background; +@layout-header-height : 64px; +@layout-header-padding : 0 50px; +@layout-footer-padding : 24px 50px; +@layout-sider-background : @layout-header-background; +@layout-trigger-height : 48px; +@layout-trigger-background : #002140; +@layout-trigger-color : #fff; +@layout-zero-trigger-width : 36px; +@layout-zero-trigger-height : 42px; +// Layout light theme +@layout-sider-background-light : #fff; +@layout-trigger-background-light: #fff; +@layout-trigger-color-light : @text-color; + +// z-index list +@zindex-affix : 10; +@zindex-back-top : 10; +@zindex-modal-mask : 1000; +@zindex-modal : 1000; +@zindex-notification : 1010; +@zindex-message : 1010; +@zindex-popover : 1030; +@zindex-picker : 1050; +@zindex-dropdown : 1050; +@zindex-tooltip : 1060; + +// Animation +@animation-duration-slow: .3s; // Modal +@animation-duration-base: .2s; +@animation-duration-fast: .1s; // Tooltip + +// Form +// --- +@label-required-color : @highlight-color; +@label-color : @heading-color; +@form-item-margin-bottom : 24px; +@form-item-trailing-colon : true; +@form-vertical-label-padding : 0 0 8px; +@form-vertical-label-margin : 0; + +// Input +// --- +@input-height-base : 32px; +@input-height-lg : 40px; +@input-height-sm : 24px; +@input-padding-horizontal : @control-padding-horizontal - 1px; +@input-padding-horizontal-base: @input-padding-horizontal; +@input-padding-horizontal-sm : @control-padding-horizontal-sm - 1px; +@input-padding-horizontal-lg : @input-padding-horizontal; +@input-padding-vertical-base : 4px; +@input-padding-vertical-sm : 1px; +@input-padding-vertical-lg : 6px; +@input-placeholder-color : hsv(0, 0, 75%); +@input-color : @text-color; +@input-border-color : @border-color-base; +@input-bg : #fff; +@input-addon-bg : @background-color-light; +@input-hover-border-color : @primary-color; +@input-disabled-bg : @disabled-bg; +@input-outline-offset : 0 0; + +// Tooltip +// --- +//* Tooltip max width +@tooltip-max-width: 250px; +//** Tooltip text color +@tooltip-color: #fff; +//** Tooltip background color +@tooltip-bg: rgba(0, 0, 0, .75); +//** Tooltip arrow width +@tooltip-arrow-width: 5px; +//** Tooltip distance with trigger +@tooltip-distance: @tooltip-arrow-width - 1px + 4px; +//** Tooltip arrow color +@tooltip-arrow-color: @tooltip-bg; + +// Popover +// --- +//** Popover body background color +@popover-bg: #fff; +//** Popover text color +@popover-color: @text-color; +//** Popover maximum width +@popover-min-width: 177px; +//** Popover arrow width +@popover-arrow-width: 6px; +//** Popover arrow color +@popover-arrow-color: @popover-bg; +//** Popover outer arrow width +//** Popover outer arrow color +@popover-arrow-outer-color: @popover-bg; +//** Popover distance with trigger +@popover-distance: @popover-arrow-width + 4px; + +// Modal +// -- +@modal-mask-bg: rgba(0, 0, 0, 0.65); + +// Progress +// -- +@progress-default-color: @processing-color; +@progress-remaining-color: @background-color-base; +@progress-text-color: @text-color; + +// Menu +// --- +@menu-inline-toplevel-item-height: 40px; +@menu-item-height: 40px; +@menu-collapsed-width: 80px; +@menu-bg: @component-background; +@menu-item-color: @text-color; +@menu-highlight-color: @primary-color; +@menu-item-active-bg: @item-active-bg; +@menu-item-active-border-width: 3px; +@menu-item-group-title-color: @text-color-secondary; +// dark theme +@menu-dark-color: @text-color-secondary-dark; +@menu-dark-bg: @layout-header-background; +@menu-dark-arrow-color: #fff; +@menu-dark-submenu-bg: #000c17; +@menu-dark-highlight-color: #fff; +@menu-dark-item-active-bg: @primary-color; + +// Spin +// --- +@spin-dot-size-sm: 14px; +@spin-dot-size: 20px; +@spin-dot-size-lg: 32px; + +// Table +// -- +@table-header-bg: @background-color-light; +@table-header-color: @heading-color; +@table-header-sort-bg: @background-color-base; +@table-body-sort-bg: rgba(0, 0, 0, .01); +@table-row-hover-bg: @primary-1; +@table-selected-row-bg: #fafafa; +@table-expanded-row-bg: #fbfbfb; +@table-padding-vertical: 16px; +@table-padding-horizontal: 16px; + +// Tag +// -- +@tag-default-bg: @background-color-light; +@tag-default-color: @text-color; +@tag-font-size: @font-size-sm; + +// TimePicker +// --- +@time-picker-panel-column-width: 56px; +@time-picker-panel-width: @time-picker-panel-column-width * 3; +@time-picker-selected-bg: @background-color-base; + +// Carousel +// --- +@carousel-dot-width: 16px; +@carousel-dot-height: 3px; +@carousel-dot-active-width: 24px; + +// Badge +// --- +@badge-height: 20px; +@badge-dot-size: 6px; +@badge-font-size: @font-size-sm; +@badge-font-weight: normal; +@badge-status-size: 6px; + +// Rate +// --- +@rate-star-color: @yellow-6; +@rate-star-bg: @border-color-split; + +// Card +// --- +@card-head-color: @heading-color; +@card-head-background: transparent; +@card-head-padding: 16px; +@card-inner-head-padding: 12px; +@card-padding-base: 24px; +@card-padding-wider: 32px; +@card-actions-background: @background-color-light; +@card-shadow: 0 2px 8px rgba(0, 0, 0, .09); + +// Tabs +// --- +@tabs-card-head-background: @background-color-light; +@tabs-card-height: 40px; +@tabs-card-active-color: @primary-color; +@tabs-title-font-size: @font-size-base; +@tabs-title-font-size-lg: @font-size-lg; +@tabs-title-font-size-sm: @font-size-base; +@tabs-ink-bar-color: @primary-color; +@tabs-bar-margin: 0 0 16px 0; +@tabs-horizontal-margin: 0 32px 0 0; +@tabs-horizontal-padding: 12px 16px; +@tabs-vertical-padding: 8px 24px; +@tabs-vertical-margin: 0 0 16px 0; +@tabs-scrolling-size: 32px; +@tabs-highlight-color: @primary-color; +@tabs-hover-color: @primary-5; +@tabs-active-color: @primary-7; + +// BackTop +// --- +@back-top-color: #fff; +@back-top-bg: @text-color-secondary; +@back-top-hover-bg: @text-color; + +// Avatar +// --- +@avatar-size-base: 32px; +@avatar-size-lg: 40px; +@avatar-size-sm: 24px; +@avatar-font-size-base: 18px; +@avatar-font-size-lg: 24px; +@avatar-font-size-sm: 14px; +@avatar-bg: #ccc; +@avatar-color: #fff; +@avatar-border-radius: @border-radius-base; + +// Switch +// --- +@switch-height: 22px; +@switch-sm-height: 16px; +@switch-sm-checked-margin-left: -(@switch-sm-height - 3px); +@switch-disabled-opacity: 0.4; +@switch-color: @primary-color; + +// Pagination +// --- +@pagination-item-size: 32px; +@pagination-item-size-sm: 24px; +@pagination-font-family: Arial; +@pagination-font-weight-active: 500; + +// Breadcrumb +// --- +@breadcrumb-base-color: @text-color-secondary; +@breadcrumb-last-item-color: @text-color; +@breadcrumb-font-size: @font-size-base; +@breadcrumb-icon-font-size: @font-size-base; +@breadcrumb-link-color: @text-color-secondary; +@breadcrumb-link-color-hover: @primary-5; +@breadcrumb-separator-color: @text-color-secondary; +@breadcrumb-separator-margin: 0 @padding-xs; + +// Slider +// --- +@slider-margin: 14px 6px 10px; +@slider-rail-background-color: @background-color-base; +@slider-rail-background-color-hover: #e1e1e1; +@slider-track-background-color: @primary-3; +@slider-track-background-color-hover: @primary-4; +@slider-handle-color: @primary-3; +@slider-handle-color-hover: @primary-4; +@slider-handle-color-focus: tint(@primary-color, 20%); +@slider-handle-color-focus-shadow: tint(@primary-color, 50%); +@slider-handle-color-tooltip-open: @primary-color; +@slider-dot-border-color: @border-color-split; +@slider-dot-border-color-active: tint(@primary-color, 50%); +@slider-disabled-color: @disabled-color; +@slider-disabled-background-color: @component-background; + +// Tree +// --- +@tree-title-height: 24px; +@tree-child-padding: 18px; +@tree-directory-selected-color: #fff; +@tree-directory-selected-bg: @primary-color; + +// Collapse +// --- +@collapse-header-padding: 12px 0 12px 40px; +@collapse-header-bg: @background-color-light; +@collapse-content-padding: @padding-md; +@collapse-content-bg: @component-background; + +// Skeleton +// --- +@skeleton-color: #f2f2f2; + +// Transfer +// --- +@transfer-disabled-bg: @disabled-bg; + +// Message +// --- +@message-notice-content-padding: 10px 16px; + +// Motion +// --- +@wave-animation-width: 6px; + +// Alert +// --- +@alert-success-border-color: ~`colorPalette("@{success-color}", 3)`; +@alert-success-bg-color: ~`colorPalette("@{success-color}", 1)`; +@alert-success-icon-color: @success-color; +@alert-info-border-color: ~`colorPalette("@{info-color}", 3)`; +@alert-info-bg-color: ~`colorPalette("@{info-color}", 1)`; +@alert-info-icon-color: @info-color; +@alert-warning-border-color: ~`colorPalette("@{warning-color}", 3)`; +@alert-warning-bg-color: ~`colorPalette("@{warning-color}", 1)`; +@alert-warning-icon-color: @warning-color; +@alert-error-border-color: ~`colorPalette("@{error-color}", 3)`; +@alert-error-bg-color: ~`colorPalette("@{error-color}", 1)`; +@alert-error-icon-color: @error-color; + +// List +// --- +@list-empty-text-padding: @padding-md; +@list-item-padding: @padding-sm 0; +@list-item-content-margin: 0 0 @padding-md 0; +@list-item-meta-margin-bottom: @padding-md; +@list-item-meta-avatar-margin-right: @padding-md; +@list-item-meta-title-margin-bottom: @padding-sm; + +// Menu +@menu-dark-item-selected-bg: @menu-dark-item-active-bg; + +// Tabs +@tab-bar-margin: @tabs-bar-margin; +@tab-horizontal-margin: @tabs-horizontal-margin; +@tab-vertical-margin: @tabs-vertical-margin; +@tab-horizontal-padding: @tabs-horizontal-padding; +@tab-vertical-padding: @tabs-vertical-padding; +@tab-scrolling-size: @tabs-scrolling-size; +@tab-highlight-color: @tabs-highlight-color; +@tab-hover-color: @tabs-hover-color; +@tab-active-color: @tabs-active-color; +@tabs-ink-bar-bg-color: @tabs-ink-bar-color; + +.listContent .extra { + color: rgba(0, 0, 0, 0.45); +} +.listContent .extra > em { + color: rgba(0, 0, 0, 0.25); +} +.avatarItem :global .ant-avatar { + border: 1px solid #fff; +} +.chartCard .avatar img { + border-radius: 100%; +} +.chartCard .meta { + color: rgba(0, 0, 0, 0.45); +} +.chartCard .total { + color: rgba(0, 0, 0, 0.85); +} +.chartCard .footer { + border-top: 1px solid #e8e8e8; +} +.field span:last-child { + color: rgba(0, 0, 0, 0.85); +} +.miniProgress .progressWrap { + background-color: #f5f5f5; +} +.miniProgress .progress { + border-radius: 1px 0 0 1px; + background-color: @primary-color; +} +.miniProgress .target span { + border-radius: 100px; +} +.pie .dot { + border-radius: 8px; +} +.pie .line { + background-color: #e8e8e8; +} +.pie .legendTitle { + color: rgba(0, 0, 0, 0.65); +} +.pie .percent { + color: rgba(0, 0, 0, 0.45); +} +.pie .total > h4 { + color: rgba(0, 0, 0, 0.45); +} +.pie .total > p { + color: rgba(0, 0, 0, 0.85); +} +.radar .legend .legendItem { + color: rgba(0, 0, 0, 0.45); +} +.radar .legend .legendItem h6 { + color: rgba(0, 0, 0, 0.85); +} +.radar .legend .legendItem:after { + background-color: #e8e8e8; +} +.radar .legend .dot { + border-radius: 6px; +} + +.timelineChart { + background: #fff; +} +.waterWave .text span { + color: rgba(0, 0, 0, 0.45); +} +.waterWave .text h4 { + color: rgba(0, 0, 0, 0.85); +} +.descriptionList .title { + color: rgba(0, 0, 0, 0.85); +} +.descriptionList .term { + color: rgba(0, 0, 0, 0.85); +} +.descriptionList .detail { + color: rgba(0, 0, 0, 0.65); +} +.descriptionList.small .title { + color: rgba(0, 0, 0, 0.65); +} +.linkGroup > a { + color: rgba(0, 0, 0, 0.65); +} +.linkGroup > a:hover { + color: @primary-color; +} +.lines .shadow { + color: transparent; +} +.exception .imgEle { + background-repeat: no-repeat; + background-position: 50% 50%; + background-size: contain; +} +.exception .content h1 { + color: #434e59; +} +.exception .content .desc { + color: rgba(0, 0, 0, 0.45); +} +.toolbar { + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03); + background: #fff; + border-top: 1px solid #e8e8e8; +} +.globalFooter .links a { + color: rgba(0, 0, 0, 0.45); +} +.globalFooter .links a:hover { + color: rgba(0, 0, 0, 0.65); +} +.globalFooter .copyright { + color: rgba(0, 0, 0, 0.45); +} +.layout .header { + background-color: @primary-color !important; +} +i.trigger:hover { + background: rgba(0, 0, 0, 0.025); +} +.right .action > i { + color: rgba(0, 0, 0, 0.65); +} +.right .action:hover { + background: rgba(0, 0, 0, 0.025); +} +:global(.right .action.ant-popover-open) { + background: rgba(0, 0, 0, 0.025); +} +.right .search:hover { + background: transparent; +} +.right .account .avatar { + color: @primary-color; + background: rgba(255, 255, 255, 0.85); +} +.dark .action { + color: rgba(255, 255, 255, 0.85); +} +.dark .action > i { + color: rgba(255, 255, 255, 0.85); +} +.dark .action:hover, +.dark .action:global(.ant-popover-open) { + background: @primary-color; +} +.dark .action :global(.ant-badge) { + color: rgba(255, 255, 255, 0.85); +} +.headerSearch .input { + background: transparent; + border-radius: 0; +} +.headerSearch .input :global(.ant-select-selection) { + background: transparent; +} +.headerSearch .input input { + border: 0; + box-shadow: none !important; +} +.headerSearch .input, +.headerSearch .input:hover, +.headerSearch .input:focus { + border-bottom: 1px solid #d9d9d9; +} +.login :global .ant-tabs .ant-tabs-bar { + border-bottom: 0; +} +.login .icon { + color: rgba(0, 0, 0, 0.2); +} +.login .icon:hover { + color: @primary-color; +} +.login .prefixIcon { + color: rgba(0, 0, 0, 0.25); +} +.list .item .avatar { + background: #fff; +} +.list .item:last-child { + border-bottom: 0; +} +.list .item:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.list .item .extra { + color: rgba(0, 0, 0, 0.45); +} +.notFound { + color: rgba(0, 0, 0, 0.45); +} +.clear { + color: rgba(0, 0, 0, 0.65); + border-radius: 0 0 4px 4px; + border-top: 1px solid #e8e8e8; +} +.clear:hover { + color: rgba(0, 0, 0, 0.85); +} +.numberInfo .suffix { + color: rgba(0, 0, 0, 0.65); +} +.numberInfo .numberInfoTitle { + color: rgba(0, 0, 0, 0.65); +} +.numberInfo .numberInfoSubTitle { + color: rgba(0, 0, 0, 0.45); +} +.numberInfo .numberInfoValue > span { + color: rgba(0, 0, 0, 0.85); +} +.numberInfo .numberInfoValue .subTotal { + color: rgba(0, 0, 0, 0.45); +} +.numberInfo .numberInfoValue .subTotal :global .anticon-caret-up { + color: #f5222d; +} +.numberInfo .numberInfoValue .subTotal :global .anticon-caret-down { + color: #52c41a; +} +.numberInfolight .numberInfoValue > span { + color: rgba(0, 0, 0, 0.65); +} +.pageHeader { + background: #fff; + border-bottom: 1px solid #e8e8e8; +} +.pageHeader .tabs :global .ant-tabs-bar { + border-bottom: 1px solid #e8e8e8; +} +.pageHeader .logo > img { + border-radius: 4px; +} +.pageHeader .title { + color: rgba(0, 0, 0, 0.85); +} +.result .icon > .success { + color: #52c41a; +} +.result .icon > .error { + color: #f5222d; +} +.result .title { + color: rgba(0, 0, 0, 0.85); +} +.result .description { + color: rgba(0, 0, 0, 0.45); +} +.result .extra { + background: #fafafa; + border-radius: 2px; +} +.blockChecbox .item { + border-radius: 4px; +} +.blockChecbox .selectIcon { + color: @primary-color; +} +.color_block { + border-radius: 4px; +} +.title { + color: rgba(0, 0, 0, 0.85); +} +.handle { + background: @primary-color; + border-radius: 4px 0 0 4px; +} +.setting-drawer-index-handle { + /* 暂时不知道放哪解决 */ + background: @primary-color !important; +} +.themeColor .title { + color: rgba(0, 0, 0, 0.65); +} +.themeColor .colorBlock { + border-radius: 2px; + color: #fff; +} +.logo h1 { + color: white; +} +.sider { + box-shadow: 2px 116px 6px rgba(0, 21, 41, 0.35); +} +.sider.light { + box-shadow: 2px 116px 8px 0 rgba(29, 35, 41, 0.05); + background-color: white; +} +.sider.light .logo { + background-color: @primary-color !important; + box-shadow: 1px 1px 0 0 #e8e8e8; +} +.sider.light .logo h1 { + color: white; +} +.sider.light :global(.ant-menu-light) { + border-right-color: transparent; +} +:global .drawer .drawer-content { + background: #001529; +} +.standardFormRow { + border-bottom: 1px dashed #e8e8e8; +} +.standardFormRow :global .ant-form-item-label label { + color: rgba(0, 0, 0, 0.65); +} +.standardFormRow .label { + color: rgba(0, 0, 0, 0.85); +} +.standardFormRowLast { + border: none; +} + +.head { + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); +} +.head.light { + background-color: #fff; +} +.logo h1 { + color: #fff; +} +.light h1 { + color: #002140; +} +.trendItem .up { + color: #f5222d; +} +.trendItem .down { + color: #52c41a; +} +.trendItem.trendItemGrey .up, +.trendItem.trendItemGrey .down { + color: rgba(0, 0, 0, 0.65); +} +.trendItem.reverseColor .up { + color: #52c41a; +} +.trendItem.reverseColor .down { + color: #f5222d; +} +.container { + background: #f0f2f5; +} +.title { + color: rgba(0, 0, 0, 0.85); +} +.desc { + color: rgba(0, 0, 0, 0.45); +} +a.listItemMetaTitle { + color: rgba(0, 0, 0, 0.85); +} +.baseView .right .avatar_title { + color: rgba(0, 0, 0, 0.85); +} +.main { + background-color: #fff; +} +.main .leftmenu { + border-right: 1px solid #e8e8e8; +} +.main .leftmenu :global .ant-menu-inline { + border: none; +} +.main .right .title { + color: rgba(0, 0, 0, 0.85); +} +.main :global .ant-list-split .ant-list-item:last-child { + border-bottom: 1px solid #e8e8e8; +} +:global .ant-list-item-meta .taobao { + color: #ff4000; + border-radius: 4px; +} +:global .ant-list-item-meta .dingding { + background-color: #2eabff; + color: #fff; + border-radius: 4px; +} +:global .ant-list-item-meta .alipay { + color: #2eabff; + border-radius: 4px; +} +:global font.strong { + color: #52c41a; +} +:global font.medium { + color: #faad14; +} +:global font.weak { + color: #f5222d; +} + + + + +.trigger { + background: 'red'; +} +.desc { + color: rgba(0, 0, 0, 0.45); +} +.desc h3 { + color: rgba(0, 0, 0, 0.45); +} +.desc h4 { + color: rgba(0, 0, 0, 0.45); +} +.information .label { + color: rgba(0, 0, 0, 0.85); +} +.errorIcon { + color: #f5222d; +} +.errorListItem { + border-bottom: 1px solid #e8e8e8; +} +.errorListItem:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.errorListItem:last-child { + border: 0; +} +.errorListItem .errorIcon { + color: #f5222d; +} +.errorListItem .errorField { + color: rgba(0, 0, 0, 0.45); +} +.optional { + color: rgba(0, 0, 0, 0.45); +} +a.listItemMetaTitle { + color: rgba(0, 0, 0, 0.85); +} +.noData { + color: rgba(0, 0, 0, 0.25); +} +.heading { + color: rgba(0, 0, 0, 0.85); +} +.textSecondary { + color: rgba(0, 0, 0, 0.45); +} +.title { + color: rgba(0, 0, 0, 0.85); +} +.main .icon { + color: rgba(0, 0, 0, 0.2); +} +.main .icon:hover { + color: @primary-color; +} +.success { + color: #52c41a; +} +.warning { + color: #faad14; +} +.error { + color: #f5222d; +} +.progress-pass > .progress :global .ant-progress-bg { + background-color: #faad14; +} +html { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; +} +h1, +h2, +h3, +h4, +h5, +h6 { + color: rgba(0, 0, 0, 0.85); +} +abbr[title], +abbr[data-original-title] { + border-bottom: 0; +} +a { + color: @primary-color; + background-color: transparent; +} +a:hover { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +a:active { + color: color(~`colorPalette("@{primary-color}", 7)`); +} +a[disabled] { + color: rgba(0, 0, 0, 0.25); +} +img { + border-style: none; +} +table { + border-collapse: collapse; +} +caption { + color: rgba(0, 0, 0, 0.45); +} +input, +button, +select, +optgroup, +textarea { + color: inherit; +} +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; +} +fieldset { + border: 0; +} +legend { + color: inherit; +} +mark { + background-color: #feffe6; +} +::selection { + background: @primary-color; + color: #fff; +} +[ant-click-animating-without-extra-node]:after, +.ant-click-animating-node { + border-radius: inherit; + border: 0 solid @primary-color; +} +.ant-alert { + color: rgba(0, 0, 0, 0.65); + border-radius: 4px; +} +.ant-alert-success { + border: 1px solid #b7eb8f; + background-color: #f6ffed; +} +.ant-alert-success .ant-alert-icon { + color: #52c41a; +} +.ant-alert-info { + border: 1px solid color(~`colorPalette("@{primary-color}", 3)`); + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-alert-info .ant-alert-icon { + color: @primary-color; +} +.ant-alert-warning { + border: 1px solid #ffe58f; + background-color: #fffbe6; +} +.ant-alert-warning .ant-alert-icon { + color: #faad14; +} +.ant-alert-error { + border: 1px solid #ffa39e; + background-color: #fff1f0; +} +.ant-alert-error .ant-alert-icon { + color: #f5222d; +} +.ant-alert-close-icon .anticon-close { + color: rgba(0, 0, 0, 0.45); +} +.ant-alert-close-icon .anticon-close:hover { + color: #404040; +} +.ant-alert-with-description { + border-radius: 4px; + color: rgba(0, 0, 0, 0.65); +} +.ant-alert-with-description .ant-alert-message { + color: rgba(0, 0, 0, 0.85); +} +.ant-alert-banner { + border-radius: 0; + border: 0; +} +.ant-anchor { + color: rgba(0, 0, 0, 0.65); +} +.ant-anchor-wrapper { + background-color: #fff; +} +.ant-anchor-ink:before { + background-color: #e8e8e8; +} +.ant-anchor-ink-ball { + border-radius: 8px; + border: 2px solid @primary-color; + background-color: #fff; +} +.ant-anchor-link-title { + color: rgba(0, 0, 0, 0.65); +} +.ant-anchor-link-active > .ant-anchor-link-title { + color: @primary-color; +} +.ant-select-auto-complete { + color: rgba(0, 0, 0, 0.65); +} +.ant-select-auto-complete.ant-select .ant-select-selection { + border: 0; + box-shadow: none; +} +.ant-select-auto-complete.ant-select .ant-input { + background: transparent; + border-width: 1px; +} +.ant-select-auto-complete.ant-select .ant-input:focus, +.ant-select-auto-complete.ant-select .ant-input:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-avatar { + color: rgba(0, 0, 0, 0.65); + background: #ccc; + color: #fff; + border-radius: 50%; +} +.ant-avatar-image { + background: transparent; +} +.ant-avatar-lg { + border-radius: 50%; +} +.ant-avatar-sm { + border-radius: 50%; +} +.ant-avatar-square { + border-radius: 4px; +} +.ant-back-top { + color: rgba(0, 0, 0, 0.65); +} +.ant-back-top-content { + border-radius: 20px; + background-color: rgba(0, 0, 0, 0.45); + color: #fff; +} +.ant-back-top-content:hover { + background-color: rgba(0, 0, 0, 0.65); +} +.ant-back-top-icon { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAYAAACWwljjAAAABGdBTUEAALGPC/xhBQAAAbtJREFUWAntmMtKw0AUhhMvS5cuxILgQlRUpIggIoKIIoigG1eC+AA+jo+i6FIXBfeuXIgoeKVeitVWJX5HWhhDksnUpp3FDPyZk3Nm5nycmZKkXhAEOXSA3lG7muTeRzmfy6HneUvIhnYkQK+Q9NhAA0Opg0vBEhjBKHiyb8iGMyQMOYuK41BcBSypAL+MYXSKjtFAW7EAGEO3qN4uMQbbAkXiSfRQJ1H6a+yhlkKRcAoVFYiweYNjtCVQJJpBz2GCiPt7fBOZQpFgDpUikse5HgnkM4Fi4QX0Fpc5wf9EbLqpUCy4jMoJSXWhFwbMNgWKhVbRhy5jirhs9fy/oFhgHVVTJEs7RLZ8sSEoJm6iz7SZDMbJ+/OKERQTttCXQRLToRUmrKWCYuA2+jbN0MB4OQobYShfdTCgn/sL1K36M7TLrN3n+758aPy2rrpR6+/od5E8tf/A1uLS9aId5T7J3CNYihkQ4D9PiMdMC7mp4rjB9kjFjZp8BlnVHJBuO1yFXIV0FdDF3RlyFdJVQBdv5AxVdIsq8apiZ2PyYO1EVykesGfZEESsCkweyR8MUW+V8uJ1gkYipmpdP1pm2aJVPEGzAAAAAElFTkSuQmCC) 100%/100% no-repeat; +} +.ant-badge { + color: rgba(0, 0, 0, 0.65); + color: unset; +} +.ant-badge-count { + border-radius: 10px; + background: #f5222d; + color: #fff; + box-shadow: 0 0 0 1px #fff; +} +.ant-badge-count a, +.ant-badge-count a:hover { + color: #fff; +} +.ant-badge-dot { + border-radius: 100%; + background: #f5222d; + box-shadow: 0 0 0 1px #fff; +} +.ant-badge-status-dot { + border-radius: 50%; +} +.ant-badge-status-success { + background-color: #52c41a; +} +.ant-badge-status-processing { + background-color: @primary-color; +} +.ant-badge-status-processing:after { + border-radius: 50%; + border: 1px solid @primary-color; +} +.ant-badge-status-default { + background-color: #d9d9d9; +} +.ant-badge-status-error { + background-color: #f5222d; +} +.ant-badge-status-warning { + background-color: #faad14; +} +.ant-badge-status-text { + color: rgba(0, 0, 0, 0.65); +} +.ant-breadcrumb { + color: rgba(0, 0, 0, 0.65); + color: rgba(0, 0, 0, 0.45); +} +.ant-breadcrumb a { + color: rgba(0, 0, 0, 0.45); +} +.ant-breadcrumb a:hover { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-breadcrumb > span:last-child { + color: rgba(0, 0, 0, 0.65); +} +.ant-breadcrumb-separator { + color: rgba(0, 0, 0, 0.45); +} +.ant-btn { + background-image: none; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015); + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + border-color: #d9d9d9; +} +.ant-btn:not([disabled]):active { + box-shadow: none; +} +.ant-btn-lg { + border-radius: 4px; +} +.ant-btn-sm { + border-radius: 4px; +} +.ant-btn > a:only-child { + color: currentColor; +} +.ant-btn > a:only-child:after { + background: transparent; +} +.ant-btn:hover, +.ant-btn:focus { + color: color(~`colorPalette("@{primary-color}", 5)`); + background-color: #fff; + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-btn:hover > a:only-child, +.ant-btn:focus > a:only-child { + color: currentColor; +} +.ant-btn:hover > a:only-child:after, +.ant-btn:focus > a:only-child:after { + background: transparent; +} +.ant-btn:active, +.ant-btn.active { + color: color(~`colorPalette("@{primary-color}", 7)`); + background-color: #fff; + border-color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-btn:active > a:only-child, +.ant-btn.active > a:only-child { + color: currentColor; +} +.ant-btn:active > a:only-child:after, +.ant-btn.active > a:only-child:after { + background: transparent; +} +.ant-btn.disabled, +.ant-btn[disabled], +.ant-btn.disabled:hover, +.ant-btn[disabled]:hover, +.ant-btn.disabled:focus, +.ant-btn[disabled]:focus, +.ant-btn.disabled:active, +.ant-btn[disabled]:active, +.ant-btn.disabled.active, +.ant-btn[disabled].active { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-btn.disabled > a:only-child, +.ant-btn[disabled] > a:only-child, +.ant-btn.disabled:hover > a:only-child, +.ant-btn[disabled]:hover > a:only-child, +.ant-btn.disabled:focus > a:only-child, +.ant-btn[disabled]:focus > a:only-child, +.ant-btn.disabled:active > a:only-child, +.ant-btn[disabled]:active > a:only-child, +.ant-btn.disabled.active > a:only-child, +.ant-btn[disabled].active > a:only-child { + color: currentColor; +} +.ant-btn.disabled > a:only-child:after, +.ant-btn[disabled] > a:only-child:after, +.ant-btn.disabled:hover > a:only-child:after, +.ant-btn[disabled]:hover > a:only-child:after, +.ant-btn.disabled:focus > a:only-child:after, +.ant-btn[disabled]:focus > a:only-child:after, +.ant-btn.disabled:active > a:only-child:after, +.ant-btn[disabled]:active > a:only-child:after, +.ant-btn.disabled.active > a:only-child:after, +.ant-btn[disabled].active > a:only-child:after { + background: transparent; +} +.ant-btn:hover, +.ant-btn:focus, +.ant-btn:active, +.ant-btn.active { + background: #fff; +} +.ant-btn-primary { + color: #fff; + background-color: @primary-color; + border-color: @primary-color; + box-shadow: 0 2px 0 rgba(0, 0, 0, 0.035); +} +.ant-btn-primary > a:only-child { + color: currentColor; +} +.ant-btn-primary > a:only-child:after { + background: transparent; +} +.ant-btn-primary:hover, +.ant-btn-primary:focus { + color: #fff; + background-color: color(~`colorPalette("@{primary-color}", 5)`); + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-btn-primary:hover > a:only-child, +.ant-btn-primary:focus > a:only-child { + color: currentColor; +} +.ant-btn-primary:hover > a:only-child:after, +.ant-btn-primary:focus > a:only-child:after { + background: transparent; +} +.ant-btn-primary:active, +.ant-btn-primary.active { + color: #fff; + background-color: color(~`colorPalette("@{primary-color}", 7)`); + border-color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-btn-primary:active > a:only-child, +.ant-btn-primary.active > a:only-child { + color: currentColor; +} +.ant-btn-primary:active > a:only-child:after, +.ant-btn-primary.active > a:only-child:after { + background: transparent; +} +.ant-btn-primary.disabled, +.ant-btn-primary[disabled], +.ant-btn-primary.disabled:hover, +.ant-btn-primary[disabled]:hover, +.ant-btn-primary.disabled:focus, +.ant-btn-primary[disabled]:focus, +.ant-btn-primary.disabled:active, +.ant-btn-primary[disabled]:active, +.ant-btn-primary.disabled.active, +.ant-btn-primary[disabled].active { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-btn-primary.disabled > a:only-child, +.ant-btn-primary[disabled] > a:only-child, +.ant-btn-primary.disabled:hover > a:only-child, +.ant-btn-primary[disabled]:hover > a:only-child, +.ant-btn-primary.disabled:focus > a:only-child, +.ant-btn-primary[disabled]:focus > a:only-child, +.ant-btn-primary.disabled:active > a:only-child, +.ant-btn-primary[disabled]:active > a:only-child, +.ant-btn-primary.disabled.active > a:only-child, +.ant-btn-primary[disabled].active > a:only-child { + color: currentColor; +} +.ant-btn-primary.disabled > a:only-child:after, +.ant-btn-primary[disabled] > a:only-child:after, +.ant-btn-primary.disabled:hover > a:only-child:after, +.ant-btn-primary[disabled]:hover > a:only-child:after, +.ant-btn-primary.disabled:focus > a:only-child:after, +.ant-btn-primary[disabled]:focus > a:only-child:after, +.ant-btn-primary.disabled:active > a:only-child:after, +.ant-btn-primary[disabled]:active > a:only-child:after, +.ant-btn-primary.disabled.active > a:only-child:after, +.ant-btn-primary[disabled].active > a:only-child:after { + background: transparent; +} +.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child) { + border-right-color: color(~`colorPalette("@{primary-color}", 5)`); + border-left-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled { + border-color: #d9d9d9; +} +.ant-btn-group .ant-btn-primary:first-child:not(:last-child) { + border-right-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled] { + border-right-color: #d9d9d9; +} +.ant-btn-group .ant-btn-primary:last-child:not(:first-child), +.ant-btn-group .ant-btn-primary + .ant-btn-primary { + border-left-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled], +.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] { + border-left-color: #d9d9d9; +} +.ant-btn-ghost { + color: rgba(0, 0, 0, 0.65); + background-color: transparent; + border-color: #d9d9d9; +} +.ant-btn-ghost > a:only-child { + color: currentColor; +} +.ant-btn-ghost > a:only-child:after { + background: transparent; +} +.ant-btn-ghost:hover, +.ant-btn-ghost:focus { + color: color(~`colorPalette("@{primary-color}", 5)`); + background-color: transparent; + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-btn-ghost:hover > a:only-child, +.ant-btn-ghost:focus > a:only-child { + color: currentColor; +} +.ant-btn-ghost:hover > a:only-child:after, +.ant-btn-ghost:focus > a:only-child:after { + background: transparent; +} +.ant-btn-ghost:active, +.ant-btn-ghost.active { + color: color(~`colorPalette("@{primary-color}", 7)`); + background-color: transparent; + border-color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-btn-ghost:active > a:only-child, +.ant-btn-ghost.active > a:only-child { + color: currentColor; +} +.ant-btn-ghost:active > a:only-child:after, +.ant-btn-ghost.active > a:only-child:after { + background: transparent; +} +.ant-btn-ghost.disabled, +.ant-btn-ghost[disabled], +.ant-btn-ghost.disabled:hover, +.ant-btn-ghost[disabled]:hover, +.ant-btn-ghost.disabled:focus, +.ant-btn-ghost[disabled]:focus, +.ant-btn-ghost.disabled:active, +.ant-btn-ghost[disabled]:active, +.ant-btn-ghost.disabled.active, +.ant-btn-ghost[disabled].active { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-btn-ghost.disabled > a:only-child, +.ant-btn-ghost[disabled] > a:only-child, +.ant-btn-ghost.disabled:hover > a:only-child, +.ant-btn-ghost[disabled]:hover > a:only-child, +.ant-btn-ghost.disabled:focus > a:only-child, +.ant-btn-ghost[disabled]:focus > a:only-child, +.ant-btn-ghost.disabled:active > a:only-child, +.ant-btn-ghost[disabled]:active > a:only-child, +.ant-btn-ghost.disabled.active > a:only-child, +.ant-btn-ghost[disabled].active > a:only-child { + color: currentColor; +} +.ant-btn-ghost.disabled > a:only-child:after, +.ant-btn-ghost[disabled] > a:only-child:after, +.ant-btn-ghost.disabled:hover > a:only-child:after, +.ant-btn-ghost[disabled]:hover > a:only-child:after, +.ant-btn-ghost.disabled:focus > a:only-child:after, +.ant-btn-ghost[disabled]:focus > a:only-child:after, +.ant-btn-ghost.disabled:active > a:only-child:after, +.ant-btn-ghost[disabled]:active > a:only-child:after, +.ant-btn-ghost.disabled.active > a:only-child:after, +.ant-btn-ghost[disabled].active > a:only-child:after { + background: transparent; +} +.ant-btn-dashed { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + border-color: #d9d9d9; + border-style: dashed; +} +.ant-btn-dashed > a:only-child { + color: currentColor; +} +.ant-btn-dashed > a:only-child:after { + background: transparent; +} +.ant-btn-dashed:hover, +.ant-btn-dashed:focus { + color: color(~`colorPalette("@{primary-color}", 5)`); + background-color: #fff; + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-btn-dashed:hover > a:only-child, +.ant-btn-dashed:focus > a:only-child { + color: currentColor; +} +.ant-btn-dashed:hover > a:only-child:after, +.ant-btn-dashed:focus > a:only-child:after { + background: transparent; +} +.ant-btn-dashed:active, +.ant-btn-dashed.active { + color: color(~`colorPalette("@{primary-color}", 7)`); + background-color: #fff; + border-color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-btn-dashed:active > a:only-child, +.ant-btn-dashed.active > a:only-child { + color: currentColor; +} +.ant-btn-dashed:active > a:only-child:after, +.ant-btn-dashed.active > a:only-child:after { + background: transparent; +} +.ant-btn-dashed.disabled, +.ant-btn-dashed[disabled], +.ant-btn-dashed.disabled:hover, +.ant-btn-dashed[disabled]:hover, +.ant-btn-dashed.disabled:focus, +.ant-btn-dashed[disabled]:focus, +.ant-btn-dashed.disabled:active, +.ant-btn-dashed[disabled]:active, +.ant-btn-dashed.disabled.active, +.ant-btn-dashed[disabled].active { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-btn-dashed.disabled > a:only-child, +.ant-btn-dashed[disabled] > a:only-child, +.ant-btn-dashed.disabled:hover > a:only-child, +.ant-btn-dashed[disabled]:hover > a:only-child, +.ant-btn-dashed.disabled:focus > a:only-child, +.ant-btn-dashed[disabled]:focus > a:only-child, +.ant-btn-dashed.disabled:active > a:only-child, +.ant-btn-dashed[disabled]:active > a:only-child, +.ant-btn-dashed.disabled.active > a:only-child, +.ant-btn-dashed[disabled].active > a:only-child { + color: currentColor; +} +.ant-btn-dashed.disabled > a:only-child:after, +.ant-btn-dashed[disabled] > a:only-child:after, +.ant-btn-dashed.disabled:hover > a:only-child:after, +.ant-btn-dashed[disabled]:hover > a:only-child:after, +.ant-btn-dashed.disabled:focus > a:only-child:after, +.ant-btn-dashed[disabled]:focus > a:only-child:after, +.ant-btn-dashed.disabled:active > a:only-child:after, +.ant-btn-dashed[disabled]:active > a:only-child:after, +.ant-btn-dashed.disabled.active > a:only-child:after, +.ant-btn-dashed[disabled].active > a:only-child:after { + background: transparent; +} +.ant-btn-danger { + color: #f5222d; + background-color: #f5f5f5; + border-color: #d9d9d9; +} +.ant-btn-danger > a:only-child { + color: currentColor; +} +.ant-btn-danger > a:only-child:after { + background: transparent; +} +.ant-btn-danger:hover { + color: #fff; + background-color: #ff4d4f; + border-color: #ff4d4f; +} +.ant-btn-danger:hover > a:only-child { + color: currentColor; +} +.ant-btn-danger:hover > a:only-child:after { + background: transparent; +} +.ant-btn-danger:focus { + color: #ff4d4f; + background-color: #fff; + border-color: #ff4d4f; +} +.ant-btn-danger:focus > a:only-child { + color: currentColor; +} +.ant-btn-danger:focus > a:only-child:after { + background: transparent; +} +.ant-btn-danger:active, +.ant-btn-danger.active { + color: #fff; + background-color: #cf1322; + border-color: #cf1322; +} +.ant-btn-danger:active > a:only-child, +.ant-btn-danger.active > a:only-child { + color: currentColor; +} +.ant-btn-danger:active > a:only-child:after, +.ant-btn-danger.active > a:only-child:after { + background: transparent; +} +.ant-btn-danger.disabled, +.ant-btn-danger[disabled], +.ant-btn-danger.disabled:hover, +.ant-btn-danger[disabled]:hover, +.ant-btn-danger.disabled:focus, +.ant-btn-danger[disabled]:focus, +.ant-btn-danger.disabled:active, +.ant-btn-danger[disabled]:active, +.ant-btn-danger.disabled.active, +.ant-btn-danger[disabled].active { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-btn-danger.disabled > a:only-child, +.ant-btn-danger[disabled] > a:only-child, +.ant-btn-danger.disabled:hover > a:only-child, +.ant-btn-danger[disabled]:hover > a:only-child, +.ant-btn-danger.disabled:focus > a:only-child, +.ant-btn-danger[disabled]:focus > a:only-child, +.ant-btn-danger.disabled:active > a:only-child, +.ant-btn-danger[disabled]:active > a:only-child, +.ant-btn-danger.disabled.active > a:only-child, +.ant-btn-danger[disabled].active > a:only-child { + color: currentColor; +} +.ant-btn-danger.disabled > a:only-child:after, +.ant-btn-danger[disabled] > a:only-child:after, +.ant-btn-danger.disabled:hover > a:only-child:after, +.ant-btn-danger[disabled]:hover > a:only-child:after, +.ant-btn-danger.disabled:focus > a:only-child:after, +.ant-btn-danger[disabled]:focus > a:only-child:after, +.ant-btn-danger.disabled:active > a:only-child:after, +.ant-btn-danger[disabled]:active > a:only-child:after, +.ant-btn-danger.disabled.active > a:only-child:after, +.ant-btn-danger[disabled].active > a:only-child:after { + background: transparent; +} +.ant-btn-circle, +.ant-btn-circle-outline { + border-radius: 50%; +} +.ant-btn-circle.ant-btn-lg, +.ant-btn-circle-outline.ant-btn-lg { + border-radius: 50%; +} +.ant-btn-circle.ant-btn-sm, +.ant-btn-circle-outline.ant-btn-sm { + border-radius: 50%; +} +.ant-btn:before { + background: #fff; + border-radius: inherit; +} +.ant-btn-group-lg > .ant-btn, +.ant-btn-group-lg > span > .ant-btn { + border-radius: 0; +} +.ant-btn-group-sm > .ant-btn, +.ant-btn-group-sm > span > .ant-btn { + border-radius: 0; +} +.ant-btn-group .ant-btn-primary + .ant-btn:not(.ant-btn-primary):not([disabled]) { + border-left-color: transparent; +} +.ant-btn-group .ant-btn { + border-radius: 0; +} +.ant-btn-group > .ant-btn:only-child { + border-radius: 4px; +} +.ant-btn-group > span:only-child > .ant-btn { + border-radius: 4px; +} +.ant-btn-group > .ant-btn:first-child:not(:last-child), +.ant-btn-group > span:first-child:not(:last-child) > .ant-btn { + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.ant-btn-group > .ant-btn:last-child:not(:first-child), +.ant-btn-group > span:last-child:not(:first-child) > .ant-btn { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.ant-btn-group-sm > .ant-btn:only-child { + border-radius: 4px; +} +.ant-btn-group-sm > span:only-child > .ant-btn { + border-radius: 4px; +} +.ant-btn-group-sm > .ant-btn:first-child:not(:last-child), +.ant-btn-group-sm > span:first-child:not(:last-child) > .ant-btn { + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.ant-btn-group-sm > .ant-btn:last-child:not(:first-child), +.ant-btn-group-sm > span:last-child:not(:first-child) > .ant-btn { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.ant-btn-group > .ant-btn-group:not(:first-child):not(:last-child) > .ant-btn { + border-radius: 0; +} +.ant-btn-group > .ant-btn-group:first-child:not(:last-child) > .ant-btn:last-child { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.ant-btn-group > .ant-btn-group:last-child:not(:first-child) > .ant-btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.ant-btn-background-ghost { + background: transparent !important; + border-color: #fff; + color: #fff; +} +.ant-btn-background-ghost.ant-btn-primary { + color: @primary-color; + background-color: transparent; + border-color: @primary-color; +} +.ant-btn-background-ghost.ant-btn-primary > a:only-child { + color: currentColor; +} +.ant-btn-background-ghost.ant-btn-primary > a:only-child:after { + background: transparent; +} +.ant-btn-background-ghost.ant-btn-primary:hover, +.ant-btn-background-ghost.ant-btn-primary:focus { + color: color(~`colorPalette("@{primary-color}", 5)`); + background-color: transparent; + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child, +.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child { + color: currentColor; +} +.ant-btn-background-ghost.ant-btn-primary:hover > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary:focus > a:only-child:after { + background: transparent; +} +.ant-btn-background-ghost.ant-btn-primary:active, +.ant-btn-background-ghost.ant-btn-primary.active { + color: color(~`colorPalette("@{primary-color}", 7)`); + background-color: transparent; + border-color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-btn-background-ghost.ant-btn-primary:active > a:only-child, +.ant-btn-background-ghost.ant-btn-primary.active > a:only-child { + color: currentColor; +} +.ant-btn-background-ghost.ant-btn-primary:active > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary.active > a:only-child:after { + background: transparent; +} +.ant-btn-background-ghost.ant-btn-primary.disabled, +.ant-btn-background-ghost.ant-btn-primary[disabled], +.ant-btn-background-ghost.ant-btn-primary.disabled:hover, +.ant-btn-background-ghost.ant-btn-primary[disabled]:hover, +.ant-btn-background-ghost.ant-btn-primary.disabled:focus, +.ant-btn-background-ghost.ant-btn-primary[disabled]:focus, +.ant-btn-background-ghost.ant-btn-primary.disabled:active, +.ant-btn-background-ghost.ant-btn-primary[disabled]:active, +.ant-btn-background-ghost.ant-btn-primary.disabled.active, +.ant-btn-background-ghost.ant-btn-primary[disabled].active { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-btn-background-ghost.ant-btn-primary.disabled > a:only-child, +.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child, +.ant-btn-background-ghost.ant-btn-primary.disabled:hover > a:only-child, +.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child, +.ant-btn-background-ghost.ant-btn-primary.disabled:focus > a:only-child, +.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child, +.ant-btn-background-ghost.ant-btn-primary.disabled:active > a:only-child, +.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child, +.ant-btn-background-ghost.ant-btn-primary.disabled.active > a:only-child, +.ant-btn-background-ghost.ant-btn-primary[disabled].active > a:only-child { + color: currentColor; +} +.ant-btn-background-ghost.ant-btn-primary.disabled > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary[disabled] > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary.disabled:hover > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary[disabled]:hover > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary.disabled:focus > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary[disabled]:focus > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary.disabled:active > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary[disabled]:active > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary.disabled.active > a:only-child:after, +.ant-btn-background-ghost.ant-btn-primary[disabled].active > a:only-child:after { + background: transparent; +} +.ant-btn-background-ghost.ant-btn-danger { + color: #f5222d; + background-color: transparent; + border-color: #f5222d; +} +.ant-btn-background-ghost.ant-btn-danger > a:only-child { + color: currentColor; +} +.ant-btn-background-ghost.ant-btn-danger > a:only-child:after { + background: transparent; +} +.ant-btn-background-ghost.ant-btn-danger:hover, +.ant-btn-background-ghost.ant-btn-danger:focus { + color: #ff4d4f; + background-color: transparent; + border-color: #ff4d4f; +} +.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child, +.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child { + color: currentColor; +} +.ant-btn-background-ghost.ant-btn-danger:hover > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger:focus > a:only-child:after { + background: transparent; +} +.ant-btn-background-ghost.ant-btn-danger:active, +.ant-btn-background-ghost.ant-btn-danger.active { + color: #cf1322; + background-color: transparent; + border-color: #cf1322; +} +.ant-btn-background-ghost.ant-btn-danger:active > a:only-child, +.ant-btn-background-ghost.ant-btn-danger.active > a:only-child { + color: currentColor; +} +.ant-btn-background-ghost.ant-btn-danger:active > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger.active > a:only-child:after { + background: transparent; +} +.ant-btn-background-ghost.ant-btn-danger.disabled, +.ant-btn-background-ghost.ant-btn-danger[disabled], +.ant-btn-background-ghost.ant-btn-danger.disabled:hover, +.ant-btn-background-ghost.ant-btn-danger[disabled]:hover, +.ant-btn-background-ghost.ant-btn-danger.disabled:focus, +.ant-btn-background-ghost.ant-btn-danger[disabled]:focus, +.ant-btn-background-ghost.ant-btn-danger.disabled:active, +.ant-btn-background-ghost.ant-btn-danger[disabled]:active, +.ant-btn-background-ghost.ant-btn-danger.disabled.active, +.ant-btn-background-ghost.ant-btn-danger[disabled].active { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-btn-background-ghost.ant-btn-danger.disabled > a:only-child, +.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child, +.ant-btn-background-ghost.ant-btn-danger.disabled:hover > a:only-child, +.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child, +.ant-btn-background-ghost.ant-btn-danger.disabled:focus > a:only-child, +.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child, +.ant-btn-background-ghost.ant-btn-danger.disabled:active > a:only-child, +.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child, +.ant-btn-background-ghost.ant-btn-danger.disabled.active > a:only-child, +.ant-btn-background-ghost.ant-btn-danger[disabled].active > a:only-child { + color: currentColor; +} +.ant-btn-background-ghost.ant-btn-danger.disabled > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger[disabled] > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger.disabled:hover > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger[disabled]:hover > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger.disabled:focus > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger[disabled]:focus > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger.disabled:active > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger[disabled]:active > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger.disabled.active > a:only-child:after, +.ant-btn-background-ghost.ant-btn-danger[disabled].active > a:only-child:after { + background: transparent; +} +.christmas.ant-btn-primary:before { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE0AAAAXCAYAAABOHMIhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABiZJREFUeNrsWMtPlFcUvzPMwIDysLyRR4uATDHWCiVgSmRlios2DeiiXUFs0nRBd6arxqQhJDapkYXhP4BqDKTQhZaFNQSCaBEVJjwdHsNr5DUMDDPDzPT3u7nTDEgRKrKgc5KT+z3uufec33de99P4fD4RpL2RNgjB3kn35MkTeRERESFiYmLkGBoaKnQ6nWSNRvPPZFxr+vv7k6KioiIdDsfa8vLyQkFBgcP3Bnel3MDAQArWI0eFhISE87nb7bZ7PJ4VvLYuLi5O5+fnu9+kMNfq6+tLjIyMzMY6KeBEbK/XarXReI3lPDZMWcc4v7GxYV1dXR3Jy8ub2E5HPvJ6vRSSDH0ku1wuAfsEZOV1IEFHoeNFdHS0yMrK2knR0Lm5uR+hxLdQMjbwHTZbB41h8RGwCdc9MzMzneHh4bGJiYlf4SN8ijkfwqiIncCAAR7Iz2GPSShudjqdfeCeqampvwBQfFxc3JdYqwTv8gB8/F48A8BgKecE14V+L7ju2tpae05OzkuCCZvkPOj8mizmC6vVKtmPu+bx48cC3qI1mUyFUOyywWD4SHlELBaLJmCHNcwAghuAOujtuF4FqHO4nsX4EsAS3I4TJ04ME1h8PDE9PS09TYZoY2Pj1729vd6lpSVfkDYTPG0UkfNDRUWFgQ5Gb2Mh0N29e9eG/GQfHh4W8/PzwUy/ObQ/gMfVVlZW1iAiZdQxp3nv3LljRoL/5erVq1UIxzSiiVD9X4EDYATynCwAzGO858hCQRoaGmJFZNJz8YIcBc4BF966dau6sLAwBxVSJCUlCSThQwuU3W6XkYUok1Vzm5znQx5bbm9v77p+/frPeNSNRzZ/ISBwrG4ZR48eLamtrf2+uLjYSEG9Xi/wTISFhQlWGXohyzO/CJlVl23KQRLbABoaHx+/Z1lUZ/Hq1SsJFj3JT3hmHx8fnydPTEzMj46OziHPW2w22wxeD4Kfgadh/4YEzU8Az4DhffAn5eXlX1y6dKkEoCTspAQ9Mjs7+0BBo8Fms1lkZGTsOo0QLLRNkvnR+fEJzIMHD0xtbW39CL8JTFtSbAOvBIyLHIGVm9VzE2gKuDAMSSpcT6KXyT137lx2cnLyMXhcGDb3wq3XuWF3d/fCzZs3P0c4v5eSknJQbYLo7Ox0gC2lpaVZ3Be67Th/dnZWoAJKsJC3XA8fPhxoamp6hMb+BaaMgWcUMGtszZjiFDNmvcDI91pzG0iY4ARwkwrxkcHBwUdgNrRMbnrqoRbkVzDcvn3bl5qaWsmcgFH4G8XdEGUWFhak51AuISFBnkoCTyFbyWKxCJwIxlC0fq2rq7tcVFRkRKskjh8/Lr0+kBjCCDV/knfdv3//WX19/R8IRRNemxlu4AXwKqM+EJwdj1HbPYSwh3sCPAJDABm2LLchCjS+5/kirKGhwWk0GrMuXrxYQuX9hm/XXTMXMY+srKwI5ApZrbYmZh7deEJhAUKjLe/pLTzSsCuHrK+1tbUJVe3P6upq87Vr174rKysrYHVj/uW+OH3IfEuw4F3ee/fuPQfAvwOs5yyE4CnlFOu7BWrTCWlreO6FACpBZGwUw4BvkANLobReHb3kGZYGsGzTq/zlO8AT1ru6uoZbWlqeA6gINJAfnz59OlVLoX8Jtebm5raampqfcMvQYgTknz9//sKVK1c+y83NTdIEuCnaKMuNGzd+6+np6cCtSTkAw9D9X8Dyh+dbgaaAC1XAnUlPTy+qqqq6cPbs2UzkmWjNljiDJzpwHFnCkW2yo6NjCKW8H54wjlezKvRT09LSTsJrz5w6dSoN+Yp51ADAPUj8VoDbDq9pxrwuJcNIYQllJTIi/xopBw/VA7DJp0+f9hA78CgL5F5C8J2CpoCj8sfA6WCe/FPRhsRlZmbGIs8Y4FFO5CJgtrSsvrRVGW1V93b1myoGnKAKEcHgnwsWpg1lNI0fphwrmdqbckeU18WrnlOjqp5/j7W3BWvfQVPKa5SBkcrYCNVB65TRTlWZ1lXiXVU5xbtlDb2SPaLWYwrgHIcqPg6Vc7fbX69Yoyqfa7/AeiegbWOEVhmsVcWDwPn224iDJgla8Hd38Hd3ELQgaIeI/hZgAIPEp0vmQJdoAAAAAElFTkSuQmCC) no-repeat 50% 0; + background-size: 64px; +} +.christmas.ant-btn-primary.ant-btn-lg:before { + background-size: 72px; +} +.christmas.ant-btn-primary.ant-btn-sm:before { + background-size: 56px; +} +.ant-fullcalendar { + color: rgba(0, 0, 0, 0.65); + border-top: 1px solid #d9d9d9; +} +.ant-fullcalendar table { + border-collapse: collapse; + background-color: transparent; +} +.ant-fullcalendar table, +.ant-fullcalendar th, +.ant-fullcalendar td { + border: 0; +} +.ant-fullcalendar-calendar-table { + border-spacing: 0; +} +.ant-fullcalendar-value { + color: rgba(0, 0, 0, 0.65); + border-radius: 2px; + background: transparent; +} +.ant-fullcalendar-value:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-fullcalendar-value:active { + background: @primary-color; + color: #fff; +} +.ant-fullcalendar-today .ant-fullcalendar-value, +.ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value { + box-shadow: 0 0 0 1px @primary-color inset; +} +.ant-fullcalendar-selected-day .ant-fullcalendar-value, +.ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value { + background: @primary-color; + color: #fff; +} +.ant-fullcalendar-disabled-cell-first-of-row .ant-fullcalendar-value { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.ant-fullcalendar-disabled-cell-last-of-row .ant-fullcalendar-value { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.ant-fullcalendar-last-month-cell .ant-fullcalendar-value, +.ant-fullcalendar-next-month-btn-day .ant-fullcalendar-value { + color: rgba(0, 0, 0, 0.25); +} +.ant-fullcalendar-month-panel-table { + border-collapse: separate; +} +.ant-fullcalendar-fullscreen { + border-top: 0; +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-month, +.ant-fullcalendar-fullscreen .ant-fullcalendar-date { + color: rgba(0, 0, 0, 0.65); + border-top: 2px solid #e8e8e8; +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-month:hover, +.ant-fullcalendar-fullscreen .ant-fullcalendar-date:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-month:active, +.ant-fullcalendar-fullscreen .ant-fullcalendar-date:active { + background: color(~`colorPalette("@{primary-color}", 2)`); +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-value { + background: transparent; +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value { + color: rgba(0, 0, 0, 0.65); +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-month, +.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-date { + border-top-color: @primary-color; + background: transparent; +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-value, +.ant-fullcalendar-fullscreen .ant-fullcalendar-today .ant-fullcalendar-value { + box-shadow: none; +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-month, +.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-date { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value, +.ant-fullcalendar-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-value { + color: @primary-color; +} +.ant-fullcalendar-fullscreen .ant-fullcalendar-last-month-cell .ant-fullcalendar-date, +.ant-fullcalendar-fullscreen .ant-fullcalendar-next-month-btn-day .ant-fullcalendar-date { + color: rgba(0, 0, 0, 0.25); +} +.ant-fullcalendar-disabled-cell:not(.ant-fullcalendar-today) .ant-fullcalendar-date, +.ant-fullcalendar-disabled-cell:not(.ant-fullcalendar-today) .ant-fullcalendar-date:hover { + background: transparent; +} +.ant-fullcalendar-disabled-cell .ant-fullcalendar-value { + color: rgba(0, 0, 0, 0.25); + border-radius: 0; +} +.ant-card { + color: rgba(0, 0, 0, 0.65); + background: #fff; + border-radius: 2px; +} +.ant-card-hoverable:hover { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09); + border-color: rgba(0, 0, 0, 0.09); +} +.ant-card-bordered { + border: 1px solid #e8e8e8; +} +.ant-card-head { + background: transparent; + border-bottom: 1px solid #e8e8e8; + border-radius: 2px 2px 0 0; + color: rgba(0, 0, 0, 0.85); +} +.ant-card-head .ant-tabs { + color: rgba(0, 0, 0, 0.65); +} +.ant-card-head .ant-tabs-bar { + border-bottom: 1px solid #e8e8e8; +} +.ant-card-extra { + color: rgba(0, 0, 0, 0.65); +} +.ant-card-grid { + border-radius: 0; + border: 0; + box-shadow: 1px 0 0 0 #e8e8e8, 0 1px 0 0 #e8e8e8, 1px 1px 0 0 #e8e8e8, 1px 0 0 0 #e8e8e8 inset, 0 1px 0 0 #e8e8e8 inset; +} +.ant-card-grid:hover { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); +} +.ant-card-cover img { + border-radius: 2px 2px 0 0; +} +.ant-card-actions { + border-top: 1px solid #e8e8e8; + background: #fafafa; +} +.ant-card-actions > li { + color: rgba(0, 0, 0, 0.45); +} +.ant-card-actions > li > span:hover { + color: @primary-color; +} +.ant-card-actions > li > span a { + color: rgba(0, 0, 0, 0.45); +} +.ant-card-actions > li > span a:hover { + color: @primary-color; +} +.ant-card-actions > li:not(:last-child) { + border-right: 1px solid #e8e8e8; +} +.ant-card-type-inner .ant-card-head { + background: #fafafa; +} +.ant-card-meta-title { + color: rgba(0, 0, 0, 0.85); +} +.ant-card-meta-description { + color: rgba(0, 0, 0, 0.45); +} +.ant-card-loading-block { + border-radius: 2px; + background: linear-gradient(90deg, rgba(207, 216, 220, 0.2), rgba(207, 216, 220, 0.4), rgba(207, 216, 220, 0.2)); + background-size: 600% 600%; +} +.ant-carousel { + color: rgba(0, 0, 0, 0.65); +} +.ant-carousel .slick-slider { + -webkit-tap-highlight-color: transparent; +} +.ant-carousel .slick-vertical .slick-slide { + border: 1px solid transparent; +} +.ant-carousel .slick-prev, +.ant-carousel .slick-next { + background: transparent; + color: transparent; + border: 0; +} +.ant-carousel .slick-prev:hover, +.ant-carousel .slick-next:hover, +.ant-carousel .slick-prev:focus, +.ant-carousel .slick-next:focus { + background: transparent; + color: transparent; +} +.ant-carousel .slick-dots li button { + border: 0; + background: #fff; + border-radius: 1px; + color: transparent; +} +.ant-carousel .slick-dots li.slick-active button { + background: #fff; +} +.ant-cascader { + color: rgba(0, 0, 0, 0.65); +} +.ant-cascader-input.ant-input { + background-color: transparent !important; +} +.ant-cascader-picker { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + border-radius: 4px; +} +.ant-cascader-picker-with-value .ant-cascader-picker-label { + color: transparent; +} +.ant-cascader-picker-disabled { + background: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-cascader-picker:focus .ant-cascader-input { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-cascader-picker-show-search.ant-cascader-picker-focused { + color: rgba(0, 0, 0, 0.25); +} +.ant-cascader-picker-clear { + background: #fff; + color: rgba(0, 0, 0, 0.25); +} +.ant-cascader-picker-clear:hover { + color: rgba(0, 0, 0, 0.45); +} +.ant-cascader-picker-arrow { + color: rgba(0, 0, 0, 0.25); +} +.ant-cascader-menus { + background: #fff; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); +} +.ant-cascader-menu { + border-right: 1px solid #e8e8e8; +} +.ant-cascader-menu:first-child { + border-radius: 4px 0 0 4px; +} +.ant-cascader-menu:last-child { + border-right-color: transparent; + border-radius: 0 4px 4px 0; +} +.ant-cascader-menu:only-child { + border-radius: 4px; +} +.ant-cascader-menu-item:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-cascader-menu-item-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-cascader-menu-item-disabled:hover { + background: transparent; +} +.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled), +.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover { + background: #f5f5f5; +} +.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon, +.ant-cascader-menu-item-expand .ant-cascader-menu-item-loading-icon { + color: rgba(0, 0, 0, 0.45); +} +.ant-cascader-menu-item .ant-cascader-menu-item-keyword { + color: #f5222d; +} +.ant-checkbox { + color: rgba(0, 0, 0, 0.65); +} +.ant-checkbox-wrapper:hover .ant-checkbox-inner, +.ant-checkbox:hover .ant-checkbox-inner, +.ant-checkbox-input:focus + .ant-checkbox-inner { + border-color: @primary-color; +} +.ant-checkbox-checked:after { + border-radius: 2px; + border: 1px solid @primary-color; +} +.ant-checkbox-inner { + border: 1px solid #d9d9d9; + border-radius: 2px; + background-color: #fff; +} +.ant-checkbox-inner:after { + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.ant-checkbox-indeterminate .ant-checkbox-inner:after { + border: 0; + background-color: @primary-color; +} +.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after { + border-color: rgba(0, 0, 0, 0.25); +} +.ant-checkbox-checked .ant-checkbox-inner:after { + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.ant-checkbox-checked .ant-checkbox-inner { + background-color: @primary-color; + border-color: @primary-color; +} +.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after { + border-color: rgba(0, 0, 0, 0.25); +} +.ant-checkbox-disabled .ant-checkbox-inner { + border-color: #d9d9d9 !important; + background-color: #f5f5f5; +} +.ant-checkbox-disabled .ant-checkbox-inner:after { + border-color: #f5f5f5; +} +.ant-checkbox-disabled + span { + color: rgba(0, 0, 0, 0.25); +} +.ant-checkbox-wrapper { + color: rgba(0, 0, 0, 0.65); +} +.ant-checkbox-group { + color: rgba(0, 0, 0, 0.65); +} +.ant-collapse { + color: rgba(0, 0, 0, 0.65); + background-color: #fafafa; + border-radius: 4px; + border: 1px solid #d9d9d9; + border-bottom: 0; +} +.ant-collapse > .ant-collapse-item { + border-bottom: 1px solid #d9d9d9; +} +.ant-collapse > .ant-collapse-item:last-child, +.ant-collapse > .ant-collapse-item:last-child > .ant-collapse-header { + border-radius: 0 0 4px 4px; +} +.ant-collapse > .ant-collapse-item > .ant-collapse-header { + color: rgba(0, 0, 0, 0.85); +} +.ant-collapse-content { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + border-top: 1px solid #d9d9d9; +} +.ant-collapse-item:last-child > .ant-collapse-content { + border-radius: 0 0 4px 4px; +} +.ant-collapse-borderless { + background-color: #fff; + border: 0; +} +.ant-collapse-borderless > .ant-collapse-item { + border-bottom: 1px solid #d9d9d9; +} +.ant-collapse-borderless > .ant-collapse-item:last-child, +.ant-collapse-borderless > .ant-collapse-item:last-child .ant-collapse-header { + border-radius: 0; +} +.ant-collapse-borderless > .ant-collapse-item > .ant-collapse-content { + background-color: transparent; + border-top: 0; +} +.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header, +.ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow { + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar-picker-container { + color: rgba(0, 0, 0, 0.65); +} +.ant-calendar-picker { + color: rgba(0, 0, 0, 0.65); +} +.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled) { + border-color: @primary-color; +} +.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled) { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-calendar-picker-clear { + color: rgba(0, 0, 0, 0.25); + background: #fff; +} +.ant-calendar-picker-clear:hover { + color: rgba(0, 0, 0, 0.45); +} +.ant-calendar-picker-icon { + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar { + border: 1px solid #fff; + background-color: #fff; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + background-clip: padding-box; +} +.ant-calendar-input-wrap { + border-bottom: 1px solid #e8e8e8; +} +.ant-calendar-input { + border: 0; + color: rgba(0, 0, 0, 0.65); + background: #fff; +} +.ant-calendar-input::-moz-placeholder { + color: #bfbfbf; +} +.ant-calendar-input:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-calendar-input::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-calendar-header { + border-bottom: 1px solid #e8e8e8; +} +.ant-calendar-header a:hover { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-calendar-header .ant-calendar-century-select, +.ant-calendar-header .ant-calendar-decade-select, +.ant-calendar-header .ant-calendar-year-select, +.ant-calendar-header .ant-calendar-month-select { + color: rgba(0, 0, 0, 0.85); +} +.ant-calendar-header .ant-calendar-prev-century-btn, +.ant-calendar-header .ant-calendar-next-century-btn, +.ant-calendar-header .ant-calendar-prev-decade-btn, +.ant-calendar-header .ant-calendar-next-decade-btn, +.ant-calendar-header .ant-calendar-prev-month-btn, +.ant-calendar-header .ant-calendar-next-month-btn, +.ant-calendar-header .ant-calendar-prev-year-btn, +.ant-calendar-header .ant-calendar-next-year-btn { + color: rgba(0, 0, 0, 0.45); +} +.ant-calendar table { + border-collapse: collapse; + background-color: transparent; +} +.ant-calendar table, +.ant-calendar th, +.ant-calendar td { + border: 0; +} +.ant-calendar-calendar-table { + border-spacing: 0; +} +.ant-calendar-date { + color: rgba(0, 0, 0, 0.65); + border-radius: 2px; + border: 1px solid transparent; + background: transparent; +} +.ant-calendar-date:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-calendar-date:active { + color: #fff; + background: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-calendar-today .ant-calendar-date { + border-color: @primary-color; + color: @primary-color; +} +.ant-calendar-last-month-cell .ant-calendar-date, +.ant-calendar-next-month-btn-day .ant-calendar-date { + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar-selected-day .ant-calendar-date { + background: #d1e9ff; +} +.ant-calendar-selected-date .ant-calendar-date, +.ant-calendar-selected-start-date .ant-calendar-date, +.ant-calendar-selected-end-date .ant-calendar-date { + background: @primary-color; + color: #fff; + border: 1px solid transparent; +} +.ant-calendar-selected-date .ant-calendar-date:hover, +.ant-calendar-selected-start-date .ant-calendar-date:hover, +.ant-calendar-selected-end-date .ant-calendar-date:hover { + background: @primary-color; +} +.ant-calendar-disabled-cell .ant-calendar-date { + color: #bcbcbc; + background: #f5f5f5; + border-radius: 0; + border: 1px solid transparent; +} +.ant-calendar-disabled-cell .ant-calendar-date:hover { + background: #f5f5f5; +} +.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date:before { + border: 1px solid #bcbcbc; + border-radius: 2px; +} +.ant-calendar-disabled-cell-first-of-row .ant-calendar-date { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.ant-calendar-disabled-cell-last-of-row .ant-calendar-date { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.ant-calendar-footer { + border-top: 1px solid #e8e8e8; +} +.ant-calendar-footer:empty { + border-top: 0; +} +.ant-calendar .ant-calendar-today-btn-disabled, +.ant-calendar .ant-calendar-clear-btn-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar .ant-calendar-clear-btn:after { + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar .ant-calendar-clear-btn:hover:after { + color: rgba(0, 0, 0, 0.45); +} +.ant-calendar .ant-calendar-ok-btn { + background-image: none; + border: 1px solid transparent; + box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015); + color: #fff; + background-color: @primary-color; + border-color: @primary-color; + box-shadow: 0 2px 0 rgba(0, 0, 0, 0.035); + border-radius: 4px; +} +.ant-calendar .ant-calendar-ok-btn:not([disabled]):active { + box-shadow: none; +} +.ant-calendar .ant-calendar-ok-btn-lg { + border-radius: 4px; +} +.ant-calendar .ant-calendar-ok-btn-sm { + border-radius: 4px; +} +.ant-calendar .ant-calendar-ok-btn > a:only-child { + color: currentColor; +} +.ant-calendar .ant-calendar-ok-btn > a:only-child:after { + background: transparent; +} +.ant-calendar .ant-calendar-ok-btn:hover, +.ant-calendar .ant-calendar-ok-btn:focus { + color: #fff; + background-color: color(~`colorPalette("@{primary-color}", 5)`); + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-calendar .ant-calendar-ok-btn:hover > a:only-child, +.ant-calendar .ant-calendar-ok-btn:focus > a:only-child { + color: currentColor; +} +.ant-calendar .ant-calendar-ok-btn:hover > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn:focus > a:only-child:after { + background: transparent; +} +.ant-calendar .ant-calendar-ok-btn:active, +.ant-calendar .ant-calendar-ok-btn.active { + color: #fff; + background-color: color(~`colorPalette("@{primary-color}", 7)`); + border-color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-calendar .ant-calendar-ok-btn:active > a:only-child, +.ant-calendar .ant-calendar-ok-btn.active > a:only-child { + color: currentColor; +} +.ant-calendar .ant-calendar-ok-btn:active > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn.active > a:only-child:after { + background: transparent; +} +.ant-calendar .ant-calendar-ok-btn.disabled, +.ant-calendar .ant-calendar-ok-btn[disabled], +.ant-calendar .ant-calendar-ok-btn.disabled:hover, +.ant-calendar .ant-calendar-ok-btn[disabled]:hover, +.ant-calendar .ant-calendar-ok-btn.disabled:focus, +.ant-calendar .ant-calendar-ok-btn[disabled]:focus, +.ant-calendar .ant-calendar-ok-btn.disabled:active, +.ant-calendar .ant-calendar-ok-btn[disabled]:active, +.ant-calendar .ant-calendar-ok-btn.disabled.active, +.ant-calendar .ant-calendar-ok-btn[disabled].active { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-calendar .ant-calendar-ok-btn.disabled > a:only-child, +.ant-calendar .ant-calendar-ok-btn[disabled] > a:only-child, +.ant-calendar .ant-calendar-ok-btn.disabled:hover > a:only-child, +.ant-calendar .ant-calendar-ok-btn[disabled]:hover > a:only-child, +.ant-calendar .ant-calendar-ok-btn.disabled:focus > a:only-child, +.ant-calendar .ant-calendar-ok-btn[disabled]:focus > a:only-child, +.ant-calendar .ant-calendar-ok-btn.disabled:active > a:only-child, +.ant-calendar .ant-calendar-ok-btn[disabled]:active > a:only-child, +.ant-calendar .ant-calendar-ok-btn.disabled.active > a:only-child, +.ant-calendar .ant-calendar-ok-btn[disabled].active > a:only-child { + color: currentColor; +} +.ant-calendar .ant-calendar-ok-btn.disabled > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn[disabled] > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn.disabled:hover > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn[disabled]:hover > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn.disabled:focus > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn[disabled]:focus > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn.disabled:active > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn[disabled]:active > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn.disabled.active > a:only-child:after, +.ant-calendar .ant-calendar-ok-btn[disabled].active > a:only-child:after { + background: transparent; +} +.ant-calendar .ant-calendar-ok-btn-disabled { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; +} +.ant-calendar .ant-calendar-ok-btn-disabled > a:only-child { + color: currentColor; +} +.ant-calendar .ant-calendar-ok-btn-disabled > a:only-child:after { + background: transparent; +} +.ant-calendar .ant-calendar-ok-btn-disabled:hover { + color: rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + border-color: #d9d9d9; +} +.ant-calendar .ant-calendar-ok-btn-disabled:hover > a:only-child { + color: currentColor; +} +.ant-calendar .ant-calendar-ok-btn-disabled:hover > a:only-child:after { + background: transparent; +} +.ant-calendar-range-picker-input { + background-color: transparent; + border: 0; +} +.ant-calendar-range-picker-input::-moz-placeholder { + color: #bfbfbf; +} +.ant-calendar-range-picker-input:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-calendar-range-picker-input::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-calendar-range-picker-separator { + color: rgba(0, 0, 0, 0.45); +} +.ant-calendar-range-left .ant-calendar-time-picker-inner { + border-right: 1px solid #e8e8e8; +} +.ant-calendar-range-right .ant-calendar-time-picker-inner { + border-left: 1px solid #e8e8e8; +} +.ant-calendar-range-middle { + color: rgba(0, 0, 0, 0.45); +} +.ant-calendar-range .ant-calendar-input, +.ant-calendar-range .ant-calendar-time-picker-input { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 4px; + border: 0; + box-shadow: none; +} +.ant-calendar-range .ant-calendar-input::-moz-placeholder, +.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder { + color: #bfbfbf; +} +.ant-calendar-range .ant-calendar-input:-ms-input-placeholder, +.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder, +.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-calendar-range .ant-calendar-input:hover, +.ant-calendar-range .ant-calendar-time-picker-input:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-calendar-range .ant-calendar-input:focus, +.ant-calendar-range .ant-calendar-time-picker-input:focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-calendar-range .ant-calendar-input-disabled, +.ant-calendar-range .ant-calendar-time-picker-input-disabled { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar-range .ant-calendar-input-disabled:hover, +.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-calendar-range .ant-calendar-input:focus, +.ant-calendar-range .ant-calendar-time-picker-input:focus { + box-shadow: none; +} +.ant-calendar-range .ant-calendar-in-range-cell { + border-radius: 0; +} +.ant-calendar-range .ant-calendar-in-range-cell:before { + background: color(~`colorPalette("@{primary-color}", 1)`); + border-radius: 0; + border: 0; +} +.ant-calendar-range .ant-calendar-header, +.ant-calendar-range .ant-calendar-month-panel-header, +.ant-calendar-range .ant-calendar-year-panel-header { + border-bottom: 0; +} +.ant-calendar-range .ant-calendar-body, +.ant-calendar-range .ant-calendar-month-panel-body, +.ant-calendar-range .ant-calendar-year-panel-body { + border-top: 1px solid #e8e8e8; +} +.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-inner { + background: none; +} +.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox { + background-color: #fff; + border-top: 1px solid #e8e8e8; +} +.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body { + border-top-color: transparent; +} +.ant-calendar-time-picker { + background-color: #fff; +} +.ant-calendar-time-picker-inner { + background-color: #fff; + background-clip: padding-box; +} +.ant-calendar-time-picker-select { + border-right: 1px solid #e8e8e8; +} +.ant-calendar-time-picker-select:first-child { + border-left: 0; +} +.ant-calendar-time-picker-select:last-child { + border-right: 0; +} +.ant-calendar-time-picker-select li:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +li.ant-calendar-time-picker-select-option-selected { + background: #f5f5f5; +} +li.ant-calendar-time-picker-select-option-disabled { + color: rgba(0, 0, 0, 0.25); +} +li.ant-calendar-time-picker-select-option-disabled:hover { + background: transparent; +} +.ant-calendar-time .ant-calendar-day-select { + color: rgba(0, 0, 0, 0.85); +} +.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar-month-panel { + border-radius: 4px; + background: #fff; +} +.ant-calendar-month-panel-header { + border-bottom: 1px solid #e8e8e8; +} +.ant-calendar-month-panel-header a:hover { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select, +.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select, +.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select, +.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select { + color: rgba(0, 0, 0, 0.85); +} +.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn, +.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn, +.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn, +.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn, +.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn, +.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn, +.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn, +.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn { + color: rgba(0, 0, 0, 0.45); +} +.ant-calendar-month-panel-table { + border-collapse: separate; +} +.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month { + background: @primary-color; + color: #fff; +} +.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover { + background: @primary-color; + color: #fff; +} +.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month, +.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover { + color: #bcbcbc; + background: #f5f5f5; +} +.ant-calendar-month-panel-month { + color: rgba(0, 0, 0, 0.65); + background: transparent; + border-radius: 2px; +} +.ant-calendar-month-panel-month:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-calendar-year-panel { + border-radius: 4px; + background: #fff; +} +.ant-calendar-year-panel-header { + border-bottom: 1px solid #e8e8e8; +} +.ant-calendar-year-panel-header a:hover { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select, +.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select, +.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select, +.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select { + color: rgba(0, 0, 0, 0.85); +} +.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn, +.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn, +.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn, +.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn, +.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn, +.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn, +.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn, +.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn { + color: rgba(0, 0, 0, 0.45); +} +.ant-calendar-year-panel-table { + border-collapse: separate; +} +.ant-calendar-year-panel-year { + color: rgba(0, 0, 0, 0.65); + background: transparent; + border-radius: 2px; +} +.ant-calendar-year-panel-year:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year { + background: @primary-color; + color: #fff; +} +.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover { + background: @primary-color; + color: #fff; +} +.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year, +.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year { + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar-decade-panel { + background: #fff; + border-radius: 4px; +} +.ant-calendar-decade-panel-header { + border-bottom: 1px solid #e8e8e8; +} +.ant-calendar-decade-panel-header a:hover { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select { + color: rgba(0, 0, 0, 0.85); +} +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn, +.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn { + color: rgba(0, 0, 0, 0.45); +} +.ant-calendar-decade-panel-table { + border-collapse: separate; +} +.ant-calendar-decade-panel-decade { + color: rgba(0, 0, 0, 0.65); + background: transparent; + border-radius: 2px; +} +.ant-calendar-decade-panel-decade:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade { + background: @primary-color; + color: #fff; +} +.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover { + background: @primary-color; + color: #fff; +} +.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade, +.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade { + color: rgba(0, 0, 0, 0.25); +} +.ant-calendar-week-number .ant-calendar-body tr:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week { + background: color(~`colorPalette("@{primary-color}", 2)`); +} +.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date, +.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date { + background: transparent; + color: rgba(0, 0, 0, 0.65); +} +.ant-divider { + color: rgba(0, 0, 0, 0.65); + background: #e8e8e8; +} +.ant-divider-horizontal.ant-divider-with-text, +.ant-divider-horizontal.ant-divider-with-text-left, +.ant-divider-horizontal.ant-divider-with-text-right { + background: transparent; + color: rgba(0, 0, 0, 0.85); +} +.ant-divider-horizontal.ant-divider-with-text:before, +.ant-divider-horizontal.ant-divider-with-text-left:before, +.ant-divider-horizontal.ant-divider-with-text-right:before, +.ant-divider-horizontal.ant-divider-with-text:after, +.ant-divider-horizontal.ant-divider-with-text-left:after, +.ant-divider-horizontal.ant-divider-with-text-right:after { + border-top: 1px solid #e8e8e8; +} +.ant-divider-dashed { + background: none; + border-top: 1px dashed #e8e8e8; +} +.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed, +.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed, +.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed { + border-top: 0; +} +.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:before, +.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed:before, +.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed:before, +.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:after, +.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-dashed:after, +.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-dashed:after { + border-style: dashed none none; +} +.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper { + box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15); +} +.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper { + box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15); +} +.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); +} +.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper { + box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15); +} +.ant-drawer-title { + color: rgba(0, 0, 0, 0.85); +} +.ant-drawer-content { + background-color: #fff; + border: 0; + background-clip: padding-box; +} +.ant-drawer-close { + border: 0; + background: transparent; + color: rgba(0, 0, 0, 0.45); +} +.ant-drawer-close:focus, +.ant-drawer-close:hover { + color: #444; +} +.ant-drawer-header { + border-radius: 4px 4px 0 0; + background: #fff; + color: rgba(0, 0, 0, 0.65); + border-bottom: 1px solid #e8e8e8; +} +.ant-drawer-mask { + background-color: rgba(0, 0, 0, 0.65); +} +.ant-drawer-open-content { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); +} +.ant-dropdown { + color: rgba(0, 0, 0, 0.65); +} +.ant-dropdown-menu { + background-color: #fff; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + background-clip: padding-box; +} +.ant-dropdown-menu-item-group-title { + color: rgba(0, 0, 0, 0.45); +} +.ant-dropdown-menu-item, +.ant-dropdown-menu-submenu-title { + color: rgba(0, 0, 0, 0.65); +} +.ant-dropdown-menu-item > a, +.ant-dropdown-menu-submenu-title > a { + color: rgba(0, 0, 0, 0.65); +} +.ant-dropdown-menu-item-selected, +.ant-dropdown-menu-submenu-title-selected, +.ant-dropdown-menu-item-selected > a, +.ant-dropdown-menu-submenu-title-selected > a { + color: @primary-color; + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-dropdown-menu-item:hover, +.ant-dropdown-menu-submenu-title:hover { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-dropdown-menu-item-disabled, +.ant-dropdown-menu-submenu-title-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-dropdown-menu-item-disabled:hover, +.ant-dropdown-menu-submenu-title-disabled:hover { + color: rgba(0, 0, 0, 0.25); + background-color: #fff; +} +.ant-dropdown-menu-item-divider, +.ant-dropdown-menu-submenu-title-divider { + background-color: #e8e8e8; +} +.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon, +.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon { + color: rgba(0, 0, 0, 0.45); +} +.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title, +.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon { + color: rgba(0, 0, 0, 0.25); +} +.ant-dropdown-menu-dark, +.ant-dropdown-menu-dark .ant-dropdown-menu { + background: #001529; +} +.ant-dropdown-menu-dark .ant-dropdown-menu-item, +.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title, +.ant-dropdown-menu-dark .ant-dropdown-menu-item > a { + color: rgba(255, 255, 255, 0.65); +} +.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after, +.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after, +.ant-dropdown-menu-dark .ant-dropdown-menu-item > a .ant-dropdown-menu-submenu-arrow:after { + color: rgba(255, 255, 255, 0.65); +} +.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover, +.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover, +.ant-dropdown-menu-dark .ant-dropdown-menu-item > a:hover { + color: #fff; + background: transparent; +} +.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected, +.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover, +.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected > a { + background: @primary-color; + color: #fff; +} +.ant-form { + color: rgba(0, 0, 0, 0.65); +} +.ant-form legend { + color: rgba(0, 0, 0, 0.45); + border: 0; + border-bottom: 1px solid #d9d9d9; +} +.ant-form output { + color: rgba(0, 0, 0, 0.65); +} +.ant-form-item-required:before { + color: #f5222d; +} +.ant-form-item { + color: rgba(0, 0, 0, 0.65); +} +.ant-form-item-label label { + color: rgba(0, 0, 0, 0.85); +} +.ant-form-explain, +.ant-form-extra { + color: rgba(0, 0, 0, 0.45); +} +form .ant-upload { + background: transparent; +} +.ant-input-group-wrap .ant-select-selection { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.ant-input-group-wrap .ant-select-selection:hover { + border-color: #d9d9d9; +} +.ant-input-group-wrap .ant-select-selection--single { + background-color: #eee; +} +.ant-input-group-wrap .ant-select-open .ant-select-selection { + border-color: #d9d9d9; + box-shadow: none; +} +.has-success.has-feedback .ant-form-item-children-icon { + color: #52c41a; +} +.has-warning .ant-form-explain, +.has-warning .ant-form-split { + color: #faad14; +} +.has-warning .ant-input, +.has-warning .ant-input:hover { + border-color: #faad14; +} +.has-warning .ant-input:focus { + border-color: #ffc53d; + box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); + border-right-width: 1px !important; +} +.has-warning .ant-input:not([disabled]):hover { + border-color: #faad14; +} +.has-warning .ant-calendar-picker-open .ant-calendar-picker-input { + border-color: #ffc53d; + box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); + border-right-width: 1px !important; +} +.has-warning .ant-input-prefix { + color: #faad14; +} +.has-warning .ant-input-group-addon { + color: #faad14; + border-color: #faad14; + background-color: #fff; +} +.has-warning .has-feedback { + color: #faad14; +} +.has-warning.has-feedback .ant-form-item-children-icon { + color: #faad14; +} +.has-warning .ant-select-selection { + border-color: #faad14; +} +.has-warning .ant-select-open .ant-select-selection, +.has-warning .ant-select-focused .ant-select-selection { + border-color: #ffc53d; + box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); + border-right-width: 1px !important; +} +.has-warning .ant-calendar-picker-icon:after, +.has-warning .ant-time-picker-icon:after, +.has-warning .ant-picker-icon:after, +.has-warning .ant-select-arrow, +.has-warning .ant-cascader-picker-arrow { + color: #faad14; +} +.has-warning .ant-input-number, +.has-warning .ant-time-picker-input { + border-color: #faad14; +} +.has-warning .ant-input-number-focused, +.has-warning .ant-time-picker-input-focused, +.has-warning .ant-input-number:focus, +.has-warning .ant-time-picker-input:focus { + border-color: #ffc53d; + box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); + border-right-width: 1px !important; +} +.has-warning .ant-input-number:not([disabled]):hover, +.has-warning .ant-time-picker-input:not([disabled]):hover { + border-color: #faad14; +} +.has-warning .ant-cascader-picker:focus .ant-cascader-input { + border-color: #ffc53d; + box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2); + border-right-width: 1px !important; +} +.has-error .ant-form-explain, +.has-error .ant-form-split { + color: #f5222d; +} +.has-error .ant-input, +.has-error .ant-input:hover { + border-color: #f5222d; +} +.has-error .ant-input:focus { + border-color: #ff4d4f; + box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); + border-right-width: 1px !important; +} +.has-error .ant-input:not([disabled]):hover { + border-color: #f5222d; +} +.has-error .ant-calendar-picker-open .ant-calendar-picker-input { + border-color: #ff4d4f; + box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); + border-right-width: 1px !important; +} +.has-error .ant-input-prefix { + color: #f5222d; +} +.has-error .ant-input-group-addon { + color: #f5222d; + border-color: #f5222d; + background-color: #fff; +} +.has-error .has-feedback { + color: #f5222d; +} +.has-error.has-feedback .ant-form-item-children-icon { + color: #f5222d; +} +.has-error .ant-select-selection { + border-color: #f5222d; +} +.has-error .ant-select-open .ant-select-selection, +.has-error .ant-select-focused .ant-select-selection { + border-color: #ff4d4f; + box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); + border-right-width: 1px !important; +} +.has-error .ant-select.ant-select-auto-complete .ant-input:focus { + border-color: #f5222d; +} +.has-error .ant-input-group-addon .ant-select-selection { + border-color: transparent; + box-shadow: none; +} +.has-error .ant-calendar-picker-icon:after, +.has-error .ant-time-picker-icon:after, +.has-error .ant-picker-icon:after, +.has-error .ant-select-arrow, +.has-error .ant-cascader-picker-arrow { + color: #f5222d; +} +.has-error .ant-input-number, +.has-error .ant-time-picker-input { + border-color: #f5222d; +} +.has-error .ant-input-number-focused, +.has-error .ant-time-picker-input-focused, +.has-error .ant-input-number:focus, +.has-error .ant-time-picker-input:focus { + border-color: #ff4d4f; + box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); + border-right-width: 1px !important; +} +.has-error .ant-input-number:not([disabled]):hover, +.has-error .ant-time-picker-input:not([disabled]):hover { + border-color: #f5222d; +} +.has-error .ant-mention-wrapper .ant-mention-editor, +.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover { + border-color: #f5222d; +} +.has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor, +.has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus { + border-color: #ff4d4f; + box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); + border-right-width: 1px !important; +} +.has-error .ant-cascader-picker:focus .ant-cascader-input { + border-color: #ff4d4f; + box-shadow: 0 0 0 2px rgba(245, 34, 45, 0.2); + border-right-width: 1px !important; +} +.is-validating.has-feedback .ant-form-item-children-icon { + color: @primary-color; +} +.ant-input-number { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 4px; +} +.ant-input-number::-moz-placeholder { + color: #bfbfbf; +} +.ant-input-number:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-input-number::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-input-number:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-input-number:focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-input-number-disabled { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-input-number-disabled:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-input-number-handler { + color: rgba(0, 0, 0, 0.45); +} +.ant-input-number-handler:active { + background: #f4f4f4; +} +.ant-input-number-handler:hover .ant-input-number-handler-up-inner, +.ant-input-number-handler:hover .ant-input-number-handler-down-inner { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-input-number-handler-up-inner, +.ant-input-number-handler-down-inner { + color: rgba(0, 0, 0, 0.45); +} +.ant-input-number:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-input-number-focused { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-input-number-disabled { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-input-number-disabled:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-input-number-input { + background-color: transparent; + border: 0; + border-radius: 4px; +} +.ant-input-number-input::-moz-placeholder { + color: #bfbfbf; +} +.ant-input-number-input:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-input-number-input::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-input-number-handler-wrap { + border-left: 1px solid #d9d9d9; + background: #fff; + border-radius: 0 4px 4px 0; +} +.ant-input-number-handler-down { + border-top: 1px solid #d9d9d9; +} +.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner, +.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner { + color: rgba(0, 0, 0, 0.25); +} +.ant-input { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 4px; +} +.ant-input::-moz-placeholder { + color: #bfbfbf; +} +.ant-input:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-input::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-input:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-input:focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-input-disabled { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-input-disabled:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-input-group { + color: rgba(0, 0, 0, 0.65); + border-collapse: separate; + border-spacing: 0; +} +.ant-input-group-addon:not(:first-child):not(:last-child), +.ant-input-group-wrap:not(:first-child):not(:last-child), +.ant-input-group > .ant-input:not(:first-child):not(:last-child) { + border-radius: 0; +} +.ant-input-group .ant-input:focus { + border-right-width: 1px; +} +.ant-input-group .ant-input:hover { + border-right-width: 1px; +} +.ant-input-group-addon { + color: rgba(0, 0, 0, 0.65); + background-color: #fafafa; + border: 1px solid #d9d9d9; + border-radius: 4px; +} +.ant-input-group-addon .ant-select .ant-select-selection { + background-color: inherit; + border: 1px solid transparent; + box-shadow: none; +} +.ant-input-group-addon .ant-select-open .ant-select-selection, +.ant-input-group-addon .ant-select-focused .ant-select-selection { + color: @primary-color; +} +.ant-input-group > .ant-input:first-child, +.ant-input-group-addon:first-child { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.ant-input-group > .ant-input:first-child .ant-select .ant-select-selection, +.ant-input-group-addon:first-child .ant-select .ant-select-selection { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.ant-input-group > .ant-input-affix-wrapper:not(:first-child) .ant-input { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.ant-input-group > .ant-input-affix-wrapper:not(:last-child) .ant-input { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.ant-input-group-addon:first-child { + border-right: 0; +} +.ant-input-group-addon:last-child { + border-left: 0; +} +.ant-input-group > .ant-input:last-child, +.ant-input-group-addon:last-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.ant-input-group > .ant-input:last-child .ant-select .ant-select-selection, +.ant-input-group-addon:last-child .ant-select .ant-select-selection { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child), +.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child), +.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child) { + border-right-width: 1px; + border-right-color: transparent; +} +.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover, +.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover, +.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus, +.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus, +.ant-input-group.ant-input-group-compact > .ant-input:not(:first-child):not(:last-child):focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-input-group.ant-input-group-compact > * { + border-radius: 0; + border-right-width: 0; +} +.ant-input-group.ant-input-group-compact > span:not(:last-child) > .ant-input { + border-right-width: 0; +} +.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection, +.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input, +.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input, +.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor, +.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input { + border-radius: 0; + border-right-width: 1px; + border-right-color: transparent; +} +.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:hover, +.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input:hover, +.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:hover, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:hover, +.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:hover, +.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-input-group.ant-input-group-compact > .ant-select > .ant-select-selection:focus, +.ant-input-group.ant-input-group-compact > .ant-calendar-picker .ant-input:focus, +.ant-input-group.ant-input-group-compact > .ant-select-auto-complete .ant-input:focus, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker .ant-input:focus, +.ant-input-group.ant-input-group-compact > .ant-mention-wrapper .ant-mention-editor:focus, +.ant-input-group.ant-input-group-compact > .ant-time-picker .ant-time-picker-input:focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-input-group.ant-input-group-compact > *:first-child, +.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selection, +.ant-input-group.ant-input-group-compact > .ant-calendar-picker:first-child .ant-input, +.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input, +.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:first-child .ant-mention-editor, +.ant-input-group.ant-input-group-compact > .ant-time-picker:first-child .ant-time-picker-input { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.ant-input-group.ant-input-group-compact > *:last-child, +.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection, +.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input, +.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input, +.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor, +.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-right-width: 1px; + border-right-color: #d9d9d9; +} +.ant-input-group.ant-input-group-compact > *:last-child:hover, +.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection:hover, +.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input:hover, +.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input:hover, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input:hover, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input:hover, +.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor:hover, +.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-input-group.ant-input-group-compact > *:last-child:focus, +.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection:focus, +.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input:focus, +.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input:focus, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input:focus, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input:focus, +.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor:focus, +.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input:focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-input-group.ant-input-group-compact > *:last-child:focus .ant-cascader-input, +.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selection:focus .ant-cascader-input, +.ant-input-group.ant-input-group-compact > .ant-calendar-picker:last-child .ant-input:focus .ant-cascader-input, +.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input:focus .ant-cascader-input, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input:focus .ant-cascader-input, +.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input:focus .ant-cascader-input, +.ant-input-group.ant-input-group-compact > .ant-mention-wrapper:last-child .ant-mention-editor:focus .ant-cascader-input, +.ant-input-group.ant-input-group-compact > .ant-time-picker:last-child .ant-time-picker-input:focus .ant-cascader-input { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-input-affix-wrapper { + color: rgba(0, 0, 0, 0.65); +} +.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled) { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-input-affix-wrapper .ant-input-prefix, +.ant-input-affix-wrapper .ant-input-suffix { + color: rgba(0, 0, 0, 0.65); +} +.ant-input-search-icon { + color: rgba(0, 0, 0, 0.45); +} +.ant-input-search-icon:hover { + color: #333; +} +.ant-input-search > .ant-input-suffix > .ant-input-search-button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.ant-layout { + background: #f0f2f5; +} +.ant-layout-header { + background: #001529; +} +.ant-layout-footer { + background: #f0f2f5; + color: rgba(0, 0, 0, 0.65); +} +.ant-layout-sider { + background: #001529; +} +.ant-layout-sider-trigger { + color: #fff; + background: #002140; +} +.ant-layout-sider-zero-width-trigger { + background: #001529; + color: #fff; + border-radius: 0 4px 4px 0; +} +.ant-layout-sider-zero-width-trigger:hover { + background: #192c3e; +} +.ant-layout-sider-light { + background: #fff; +} +.ant-layout-sider-light .ant-layout-sider-trigger { + color: rgba(0, 0, 0, 0.65); + background: #fff; +} +.ant-layout-sider-light .ant-layout-sider-zero-width-trigger { + color: rgba(0, 0, 0, 0.65); + background: #fff; +} +.ant-list { + color: rgba(0, 0, 0, 0.65); +} +.ant-list-empty-text { + color: rgba(0, 0, 0, 0.45); +} +.ant-list-item-meta-title { + color: rgba(0, 0, 0, 0.65); +} +.ant-list-item-meta-title > a { + color: rgba(0, 0, 0, 0.65); +} +.ant-list-item-meta-title > a:hover { + color: @primary-color; +} +.ant-list-item-meta-description { + color: rgba(0, 0, 0, 0.45); +} +.ant-list-item-action > li { + color: rgba(0, 0, 0, 0.45); +} +.ant-list-item-action-split { + background-color: #e8e8e8; +} +.ant-list-empty { + color: rgba(0, 0, 0, 0.45); +} +.ant-list-split .ant-list-item { + border-bottom: 1px solid #e8e8e8; +} +.ant-list-split .ant-list-item:last-child { + border-bottom: none; +} +.ant-list-split .ant-list-header { + border-bottom: 1px solid #e8e8e8; +} +.ant-list-something-after-last-item .ant-spin-container > .ant-list-item:last-child { + border-bottom: 1px solid #e8e8e8; +} +.ant-list-vertical .ant-list-item-meta-title { + color: rgba(0, 0, 0, 0.85); +} +.ant-list-vertical .ant-list-item-content { + color: rgba(0, 0, 0, 0.65); +} +.ant-list-grid .ant-list-item { + border-bottom: none; +} +.ant-list-bordered { + border-radius: 4px; + border: 1px solid #d9d9d9; +} +.ant-list-bordered .ant-list-item { + border-bottom: 1px solid #e8e8e8; +} +.ant-mention-wrapper { + color: rgba(0, 0, 0, 0.65); +} +.ant-mention-wrapper .ant-mention-editor { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 4px; +} +.ant-mention-wrapper .ant-mention-editor::-moz-placeholder { + color: #bfbfbf; +} +.ant-mention-wrapper .ant-mention-editor:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-mention-wrapper .ant-mention-editor::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-mention-wrapper .ant-mention-editor:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-mention-wrapper .ant-mention-editor:focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-mention-wrapper .ant-mention-editor-disabled { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-mention-wrapper .ant-mention-editor-disabled:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-mention-wrapper.disabled .ant-mention-editor { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-mention-wrapper.disabled .ant-mention-editor:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-mention-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner { + color: #bfbfbf; +} +.ant-mention-dropdown { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + border-radius: 4px; +} +.ant-mention-dropdown-notfound.ant-mention-dropdown-item { + color: rgba(0, 0, 0, 0.25); +} +.ant-mention-dropdown-notfound.ant-mention-dropdown-item .anticon-loading { + color: @primary-color; +} +.ant-mention-dropdown-item { + color: rgba(0, 0, 0, 0.65); +} +.ant-mention-dropdown-item:hover { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-mention-dropdown-item.focus, +.ant-mention-dropdown-item-active { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-mention-dropdown-item-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-mention-dropdown-item-disabled:hover { + color: rgba(0, 0, 0, 0.25); + background-color: #fff; +} +.ant-mention-dropdown-item-selected, +.ant-mention-dropdown-item-selected:hover { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.65); +} +.ant-mention-dropdown-item-divider { + background-color: #e8e8e8; +} +.ant-menu { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + color: rgba(0, 0, 0, 0.65); + background: #fff; +} +.ant-menu-item-group-title { + color: rgba(0, 0, 0, 0.45); +} +.ant-menu-item:active, +.ant-menu-submenu-title:active { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-menu-item > a { + color: rgba(0, 0, 0, 0.65); +} +.ant-menu-item > a:hover { + color: @primary-color; +} +.ant-menu-item > a:before { + background-color: transparent; +} +.ant-menu-item-divider { + background-color: #e8e8e8; +} +.ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + color: @primary-color; +} +.ant-menu-horizontal > .ant-menu-item:hover, +.ant-menu-horizontal > .ant-menu-item-active, +.ant-menu-horizontal > .ant-menu-submenu .ant-menu-submenu-title:hover { + background-color: transparent; +} +.ant-menu-item-selected { + color: @primary-color; +} +.ant-menu-item-selected > a, +.ant-menu-item-selected > a:hover { + color: @primary-color; +} +.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-menu-inline, +.ant-menu-vertical, +.ant-menu-vertical-left { + border-right: 1px solid #e8e8e8; +} +.ant-menu-vertical-right { + border-left: 1px solid #e8e8e8; +} +.ant-menu-vertical.ant-menu-sub, +.ant-menu-vertical-left.ant-menu-sub, +.ant-menu-vertical-right.ant-menu-sub { + border-right: 0; +} +.ant-menu-vertical.ant-menu-sub .ant-menu-item, +.ant-menu-vertical-left.ant-menu-sub .ant-menu-item, +.ant-menu-vertical-right.ant-menu-sub .ant-menu-item { + border-right: 0; +} +.ant-menu-vertical.ant-menu-sub .ant-menu-item:after, +.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after, +.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after { + border-right: 0; +} +.ant-menu > .ant-menu-item-divider { + background-color: #e8e8e8; +} +.ant-menu-submenu-popup { + border-radius: 4px; +} +.ant-menu-submenu > .ant-menu { + background-color: #fff; + border-radius: 4px; +} +.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, +.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, +.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, +.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow:before, +.ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow:after, +.ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow:after, +.ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow:after, +.ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow:after { + background: #fff; + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65)); + border-radius: 2px; +} +.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after, +.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after, +.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after, +.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after, +.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before, +.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before, +.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before, +.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before { + background: linear-gradient(to right, @primary-color, @primary-color); +} +.ant-menu-vertical .ant-menu-submenu-selected, +.ant-menu-vertical-left .ant-menu-submenu-selected, +.ant-menu-vertical-right .ant-menu-submenu-selected { + color: @primary-color; +} +.ant-menu-vertical .ant-menu-submenu-selected > a, +.ant-menu-vertical-left .ant-menu-submenu-selected > a, +.ant-menu-vertical-right .ant-menu-submenu-selected > a { + color: @primary-color; +} +.ant-menu-horizontal { + border: 0; + border-bottom: 1px solid #e8e8e8; + box-shadow: none; +} +.ant-menu-horizontal > .ant-menu-item, +.ant-menu-horizontal > .ant-menu-submenu { + border-bottom: 2px solid transparent; +} +.ant-menu-horizontal > .ant-menu-item:hover, +.ant-menu-horizontal > .ant-menu-submenu:hover, +.ant-menu-horizontal > .ant-menu-item-active, +.ant-menu-horizontal > .ant-menu-submenu-active, +.ant-menu-horizontal > .ant-menu-item-open, +.ant-menu-horizontal > .ant-menu-submenu-open, +.ant-menu-horizontal > .ant-menu-item-selected, +.ant-menu-horizontal > .ant-menu-submenu-selected { + border-bottom: 2px solid @primary-color; + color: @primary-color; +} +.ant-menu-horizontal > .ant-menu-item > a { + color: rgba(0, 0, 0, 0.65); +} +.ant-menu-horizontal > .ant-menu-item > a:hover { + color: @primary-color; +} +.ant-menu-horizontal > .ant-menu-item-selected > a { + color: @primary-color; +} +.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 3px solid @primary-color; +} +.ant-menu-inline-collapsed-tooltip a { + color: rgba(255, 255, 255, 0.85); +} +.ant-menu-root.ant-menu-vertical, +.ant-menu-root.ant-menu-vertical-left, +.ant-menu-root.ant-menu-vertical-right, +.ant-menu-root.ant-menu-inline { + box-shadow: none; +} +.ant-menu-sub.ant-menu-inline { + border: 0; + box-shadow: none; + border-radius: 0; +} +.ant-menu-item-disabled, +.ant-menu-submenu-disabled { + color: rgba(0, 0, 0, 0.25) !important; + background: none; + border-color: transparent !important; +} +.ant-menu-item-disabled > a, +.ant-menu-submenu-disabled > a { + color: rgba(0, 0, 0, 0.25) !important; +} +.ant-menu-item-disabled > .ant-menu-submenu-title, +.ant-menu-submenu-disabled > .ant-menu-submenu-title { + color: rgba(0, 0, 0, 0.25) !important; +} +.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, +.ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after { + background: rgba(0, 0, 0, 0.25) !important; +} +.ant-menu-dark, +.ant-menu-dark .ant-menu-sub { + color: rgba(255, 255, 255, 0.65); + background: #001529; +} +.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before { + background: #fff; +} +.ant-menu-dark.ant-menu-submenu-popup { + background: transparent; +} +.ant-menu-dark .ant-menu-inline.ant-menu-sub { + background: #000c17; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45) inset; +} +.ant-menu-dark.ant-menu-horizontal { + border-bottom: 0; +} +.ant-menu-dark.ant-menu-horizontal > .ant-menu-item, +.ant-menu-dark.ant-menu-horizontal > .ant-menu-submenu { + border-color: #001529; + border-bottom: 0; +} +.ant-menu-dark .ant-menu-item, +.ant-menu-dark .ant-menu-item-group-title, +.ant-menu-dark .ant-menu-item > a { + color: rgba(255, 255, 255, 0.65); +} +.ant-menu-dark.ant-menu-inline, +.ant-menu-dark.ant-menu-vertical, +.ant-menu-dark.ant-menu-vertical-left, +.ant-menu-dark.ant-menu-vertical-right { + border-right: 0; +} +.ant-menu-dark.ant-menu-inline .ant-menu-item, +.ant-menu-dark.ant-menu-vertical .ant-menu-item, +.ant-menu-dark.ant-menu-vertical-left .ant-menu-item, +.ant-menu-dark.ant-menu-vertical-right .ant-menu-item { + border-right: 0; +} +.ant-menu-dark.ant-menu-inline .ant-menu-item:after, +.ant-menu-dark.ant-menu-vertical .ant-menu-item:after, +.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after { + border-right: 0; +} +.ant-menu-dark .ant-menu-item:hover, +.ant-menu-dark .ant-menu-item-active, +.ant-menu-dark .ant-menu-submenu-active, +.ant-menu-dark .ant-menu-submenu-open, +.ant-menu-dark .ant-menu-submenu-selected, +.ant-menu-dark .ant-menu-submenu-title:hover { + background-color: transparent; + color: #fff; +} +.ant-menu-dark .ant-menu-item:hover > a, +.ant-menu-dark .ant-menu-item-active > a, +.ant-menu-dark .ant-menu-submenu-active > a, +.ant-menu-dark .ant-menu-submenu-open > a, +.ant-menu-dark .ant-menu-submenu-selected > a, +.ant-menu-dark .ant-menu-submenu-title:hover > a { + color: #fff; +} +.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-item:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-item-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-active > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-selected > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-title:hover > .ant-menu-submenu-title:hover > .ant-menu-submenu-arrow:before { + background: #fff; +} +.ant-menu-dark .ant-menu-item-selected { + border-right: 0; + color: #fff; +} +.ant-menu-dark .ant-menu-item-selected:after { + border-right: 0; +} +.ant-menu-dark .ant-menu-item-selected > a, +.ant-menu-dark .ant-menu-item-selected > a:hover { + color: #fff; +} +.ant-menu.ant-menu-dark .ant-menu-item-selected, +.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected { + background-color: @primary-color; +} +.ant-menu-dark .ant-menu-item-disabled, +.ant-menu-dark .ant-menu-submenu-disabled, +.ant-menu-dark .ant-menu-item-disabled > a, +.ant-menu-dark .ant-menu-submenu-disabled > a { + color: rgba(255, 255, 255, 0.35) !important; +} +.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title, +.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title { + color: rgba(255, 255, 255, 0.35) !important; +} +.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:before, +.ant-menu-dark .ant-menu-item-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after, +.ant-menu-dark .ant-menu-submenu-disabled > .ant-menu-submenu-title > .ant-menu-submenu-arrow:after { + background: rgba(255, 255, 255, 0.35) !important; +} +.ant-message { + color: rgba(0, 0, 0, 0.65); +} +.ant-message-notice-content { + border-radius: 4px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + background: #fff; +} +.ant-message-success .anticon { + color: #52c41a; +} +.ant-message-error .anticon { + color: #f5222d; +} +.ant-message-warning .anticon { + color: #faad14; +} +.ant-message-info .anticon, +.ant-message-loading .anticon { + color: @primary-color; +} +.ant-modal { + color: rgba(0, 0, 0, 0.65); +} +.ant-modal-title { + color: rgba(0, 0, 0, 0.85); +} +.ant-modal-content { + background-color: #fff; + border: 0; + border-radius: 4px; + background-clip: padding-box; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); +} +.ant-modal-close { + border: 0; + background: transparent; + color: rgba(0, 0, 0, 0.45); +} +.ant-modal-close:focus, +.ant-modal-close:hover { + color: #444; +} +.ant-modal-header { + border-radius: 4px 4px 0 0; + background: #fff; + color: rgba(0, 0, 0, 0.65); + border-bottom: 1px solid #e8e8e8; +} +.ant-modal-footer { + border-top: 1px solid #e8e8e8; + border-radius: 0 0 4px 4px; +} +.ant-modal-mask { + background-color: rgba(0, 0, 0, 0.1) !important; +} +.ant-confirm-body .ant-confirm-title { + color: rgba(0, 0, 0, 0.85); +} +.ant-confirm-body .ant-confirm-content { + color: rgba(0, 0, 0, 0.65); +} +.ant-confirm-error .ant-confirm-body > .anticon { + color: #f5222d; +} +.ant-confirm-warning .ant-confirm-body > .anticon, +.ant-confirm-confirm .ant-confirm-body > .anticon { + color: #faad14; +} +.ant-confirm-info .ant-confirm-body > .anticon { + color: @primary-color; +} +.ant-confirm-success .ant-confirm-body > .anticon { + color: #52c41a; +} +.ant-notification { + color: rgba(0, 0, 0, 0.65); +} +.ant-notification-notice { + border-radius: 4px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + background: #fff; +} +.ant-notification-notice-message { + color: rgba(0, 0, 0, 0.85); +} +.ant-notification-notice-message-single-line-auto-margin { + background-color: transparent; +} +.ant-notification-notice-icon-success { + color: #52c41a; +} +.ant-notification-notice-icon-info { + color: @primary-color; +} +.ant-notification-notice-icon-warning { + color: #faad14; +} +.ant-notification-notice-icon-error { + color: #f5222d; +} +.ant-notification-notice-close { + color: rgba(0, 0, 0, 0.45); +} +.ant-notification-notice-close:hover { + color: rgba(0, 0, 0, 0.67); +} +.ant-pagination { + color: rgba(0, 0, 0, 0.65); +} +.ant-pagination-item { + border-radius: 4px; + border: 1px solid #d9d9d9; + background-color: #fff; +} +.ant-pagination-item a { + color: rgba(0, 0, 0, 0.65); +} +.ant-pagination-item:focus, +.ant-pagination-item:hover { + border-color: @primary-color; +} +.ant-pagination-item:focus a, +.ant-pagination-item:hover a { + color: @primary-color; +} +.ant-pagination-item-active { + border-color: @primary-color; +} +.ant-pagination-item-active a { + color: @primary-color; +} +.ant-pagination-item-active:focus, +.ant-pagination-item-active:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-pagination-item-active:focus a, +.ant-pagination-item-active:hover a { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon, +.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon { + color: @primary-color; +} +.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis, +.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis { + color: rgba(0, 0, 0, 0.25); +} +.ant-pagination-prev, +.ant-pagination-next, +.ant-pagination-jump-prev, +.ant-pagination-jump-next { + color: rgba(0, 0, 0, 0.65); + border-radius: 4px; +} +.ant-pagination-prev a, +.ant-pagination-next a { + color: rgba(0, 0, 0, 0.65); +} +.ant-pagination-prev:hover a, +.ant-pagination-next:hover a { + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-pagination-prev .ant-pagination-item-link, +.ant-pagination-next .ant-pagination-item-link { + border: 1px solid #d9d9d9; + background-color: #fff; + border-radius: 4px; +} +.ant-pagination-prev:focus .ant-pagination-item-link, +.ant-pagination-next:focus .ant-pagination-item-link, +.ant-pagination-prev:hover .ant-pagination-item-link, +.ant-pagination-next:hover .ant-pagination-item-link { + border-color: @primary-color; + color: @primary-color; +} +.ant-pagination-disabled a, +.ant-pagination-disabled:hover a, +.ant-pagination-disabled:focus a, +.ant-pagination-disabled .ant-pagination-item-link, +.ant-pagination-disabled:hover .ant-pagination-item-link, +.ant-pagination-disabled:focus .ant-pagination-item-link { + border-color: #d9d9d9; + color: rgba(0, 0, 0, 0.25); +} +.ant-pagination-options-quick-jumper input { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 4px; +} +.ant-pagination-options-quick-jumper input::-moz-placeholder { + color: #bfbfbf; +} +.ant-pagination-options-quick-jumper input:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-pagination-options-quick-jumper input::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-pagination-options-quick-jumper input:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-pagination-options-quick-jumper input:focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-pagination-options-quick-jumper input-disabled { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-pagination-options-quick-jumper input-disabled:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link, +.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link { + border: 0; +} +.ant-pagination-simple .ant-pagination-simple-pager input { + background-color: #fff; + border-radius: 4px; + border: 1px solid #d9d9d9; +} +.ant-pagination-simple .ant-pagination-simple-pager input:hover { + border-color: @primary-color; +} +.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active) { + background: transparent; + border-color: transparent; +} +.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link, +.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link { + border-color: transparent; + background: transparent; +} +.ant-popover { + color: rgba(0, 0, 0, 0.65); +} +.ant-popover:after { + background: rgba(255, 255, 255, 0.01); +} +.ant-popover-inner { + background-color: #fff; + background-clip: padding-box; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); +} +.ant-popover-title { + border-bottom: 1px solid #e8e8e8; + color: rgba(0, 0, 0, 0.85); +} +.ant-popover-inner-content { + color: rgba(0, 0, 0, 0.65); +} +.ant-popover-message { + color: rgba(0, 0, 0, 0.65); +} +.ant-popover-message > .anticon { + color: #faad14; +} +.ant-popover-arrow { + background: #fff; + border-color: transparent; + border-style: solid; +} +.ant-popover-placement-top > .ant-popover-content > .ant-popover-arrow, +.ant-popover-placement-topLeft > .ant-popover-content > .ant-popover-arrow, +.ant-popover-placement-topRight > .ant-popover-content > .ant-popover-arrow { + box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07); +} +.ant-popover-placement-right > .ant-popover-content > .ant-popover-arrow, +.ant-popover-placement-rightTop > .ant-popover-content > .ant-popover-arrow, +.ant-popover-placement-rightBottom > .ant-popover-content > .ant-popover-arrow { + box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07); +} +.ant-popover-placement-bottom > .ant-popover-content > .ant-popover-arrow, +.ant-popover-placement-bottomLeft > .ant-popover-content > .ant-popover-arrow, +.ant-popover-placement-bottomRight > .ant-popover-content > .ant-popover-arrow { + box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.06); +} +.ant-popover-placement-left > .ant-popover-content > .ant-popover-arrow, +.ant-popover-placement-leftTop > .ant-popover-content > .ant-popover-arrow, +.ant-popover-placement-leftBottom > .ant-popover-content > .ant-popover-arrow { + box-shadow: 3px -3px 7px rgba(0, 0, 0, 0.07); +} +.ant-progress { + color: rgba(0, 0, 0, 0.65); +} +.ant-progress-inner { + background-color: #f5f5f5; + border-radius: 100px; +} +.ant-progress-success-bg, +.ant-progress-bg { + background-color: @primary-color; +} +.ant-progress-success-bg { + background-color: #52c41a; +} +.ant-progress-text { + color: rgba(0, 0, 0, 0.45); +} +.ant-progress-status-active .ant-progress-bg:before { + background: #fff; + border-radius: 10px; +} +.ant-progress-status-exception .ant-progress-bg { + background-color: #f5222d; +} +.ant-progress-status-exception .ant-progress-text { + color: #f5222d; +} +.ant-progress-status-success .ant-progress-bg { + background-color: #52c41a; +} +.ant-progress-status-success .ant-progress-text { + color: #52c41a; +} +.ant-progress-circle .ant-progress-inner { + background-color: transparent; +} +.ant-progress-circle .ant-progress-text { + color: rgba(0, 0, 0, 0.65); +} +.ant-progress-circle.ant-progress-status-exception .ant-progress-text { + color: #f5222d; +} +.ant-progress-circle.ant-progress-status-success .ant-progress-text { + color: #52c41a; +} +.ant-radio-group { + color: rgba(0, 0, 0, 0.65); +} +.ant-radio-wrapper { + color: rgba(0, 0, 0, 0.65); +} +.ant-radio { + color: rgba(0, 0, 0, 0.65); +} +.ant-radio-wrapper:hover .ant-radio .ant-radio-inner, +.ant-radio:hover .ant-radio-inner, +.ant-radio-focused .ant-radio-inner { + border-color: @primary-color; +} +.ant-radio-checked:after { + border-radius: 50%; + border: 1px solid @primary-color; +} +.ant-radio-inner { + border-width: 1px; + border-style: solid; + border-radius: 100px; + border-color: #d9d9d9; + background-color: #fff; +} +.ant-radio-inner:after { + border-radius: 8px; + border-top: 0; + border-left: 0; + background-color: @primary-color; +} +.ant-radio-checked .ant-radio-inner { + border-color: @primary-color; +} +.ant-radio-disabled .ant-radio-inner { + border-color: #d9d9d9 !important; + background-color: #f5f5f5; +} +.ant-radio-disabled .ant-radio-inner:after { + background-color: #ccc; +} +.ant-radio-disabled + span { + color: rgba(0, 0, 0, 0.25); +} +.ant-radio-button-wrapper { + color: rgba(0, 0, 0, 0.65); + border: 1px solid #d9d9d9; + border-left: 0; + border-top-width: 1.02px; + background: #fff; +} +.ant-radio-button-wrapper a { + color: rgba(0, 0, 0, 0.65); +} +.ant-radio-button-wrapper:not(:first-child)::before { + background-color: #d9d9d9; +} +.ant-radio-button-wrapper:first-child { + border-radius: 4px 0 0 4px; + border-left: 1px solid #d9d9d9; +} +.ant-radio-button-wrapper:last-child { + border-radius: 0 4px 4px 0; +} +.ant-radio-button-wrapper:first-child:last-child { + border-radius: 4px; +} +.ant-radio-button-wrapper:hover, +.ant-radio-button-wrapper-focused { + color: @primary-color; +} +.ant-radio-button-wrapper-checked { + background: #fff; + border-color: @primary-color; + color: @primary-color; + box-shadow: -1px 0 0 0 @primary-color; +} +.ant-radio-button-wrapper-checked::before { + background-color: @primary-color !important; +} +.ant-radio-button-wrapper-checked:first-child { + border-color: @primary-color; + box-shadow: none !important; +} +.ant-radio-button-wrapper-checked:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: -1px 0 0 0 color(~`colorPalette("@{primary-color}", 5)`); + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-radio-button-wrapper-checked:active { + border-color: color(~`colorPalette("@{primary-color}", 7)`); + box-shadow: -1px 0 0 0 color(~`colorPalette("@{primary-color}", 7)`); + color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) { + background: @primary-color; + border-color: @primary-color; + color: #fff; +} +.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + background: color(~`colorPalette("@{primary-color}", 5)`); + color: #fff; +} +.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active { + border-color: color(~`colorPalette("@{primary-color}", 7)`); + background: color(~`colorPalette("@{primary-color}", 7)`); + color: #fff; +} +.ant-radio-button-wrapper-disabled { + border-color: #d9d9d9; + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-radio-button-wrapper-disabled:first-child, +.ant-radio-button-wrapper-disabled:hover { + border-color: #d9d9d9; + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-radio-button-wrapper-disabled:first-child { + border-left-color: #d9d9d9; +} +.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked { + color: #fff; + background-color: #e6e6e6; + border-color: #d9d9d9; + box-shadow: none; +} +.ant-rate { + color: rgba(0, 0, 0, 0.65); + color: #fadb14; +} +.ant-rate-star { + color: inherit; +} +.ant-rate-star-first, +.ant-rate-star-second { + color: #e8e8e8; +} +.ant-rate-star-half .ant-rate-star-first, +.ant-rate-star-full .ant-rate-star-second { + color: inherit; +} +.ant-select { + color: rgba(0, 0, 0, 0.65); +} +.ant-select > ul > li > a { + background-color: #fff; +} +.ant-select-arrow { + color: rgba(0, 0, 0, 0.25); +} +.ant-select-selection { + background-color: #fff; + border-radius: 4px; + border: 1px solid #d9d9d9; + border-top-width: 1.02px; +} +.ant-select-selection:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-select-focused .ant-select-selection, +.ant-select-selection:focus, +.ant-select-selection:active { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-select-selection__clear { + background: #fff; + color: rgba(0, 0, 0, 0.25); +} +.ant-select-selection__clear:hover { + color: rgba(0, 0, 0, 0.45); +} +.ant-select-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-select-disabled .ant-select-selection { + background: #f5f5f5; +} +.ant-select-disabled .ant-select-selection:hover, +.ant-select-disabled .ant-select-selection:focus, +.ant-select-disabled .ant-select-selection:active { + border-color: #d9d9d9; + box-shadow: none; +} +.ant-select-disabled .ant-select-selection--multiple .ant-select-selection__choice { + background: #f5f5f5; + color: #aaa; +} +.ant-select-disabled .ant-select-selection__choice__remove { + color: rgba(0, 0, 0, 0.25); +} +.ant-select-disabled .ant-select-selection__choice__remove:hover { + color: rgba(0, 0, 0, 0.25); +} +.ant-select-selection__placeholder, +.ant-select-search__field__placeholder { + color: #bfbfbf; +} +.ant-select-search--inline .ant-select-search__field { + border-width: 0; + background: transparent; + border-radius: 4px; +} +.ant-select-selection--multiple .ant-select-selection__choice { + color: rgba(0, 0, 0, 0.65); + background-color: #fafafa; + border: 1px solid #e8e8e8; + border-radius: 2px; +} +.ant-select-selection--multiple .ant-select-selection__choice__remove { + color: rgba(0, 0, 0, 0.45); +} +.ant-select-selection--multiple .ant-select-selection__choice__remove:hover { + color: #404040; +} +.ant-select-open .ant-select-selection { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-select-combobox .ant-select-search__field { + box-shadow: none; +} +.ant-select-dropdown { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + border-radius: 4px; +} +.ant-select-dropdown-menu-item-group-title { + color: rgba(0, 0, 0, 0.45); +} +.ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:first-child:not(:last-child), +.ant-select-dropdown-menu-item-group:not(:last-child) .ant-select-dropdown-menu-item-group-list .ant-select-dropdown-menu-item:last-child { + border-radius: 0; +} +.ant-select-dropdown-menu-item { + color: rgba(0, 0, 0, 0.65); +} +.ant-select-dropdown-menu-item:hover { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-select-dropdown-menu-item:first-child { + border-radius: 4px 4px 0 0; +} +.ant-select-dropdown-menu-item:last-child { + border-radius: 0 0 4px 4px; +} +.ant-select-dropdown-menu-item-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-select-dropdown-menu-item-disabled:hover { + color: rgba(0, 0, 0, 0.25); + background-color: #fff; +} +.ant-select-dropdown-menu-item-selected, +.ant-select-dropdown-menu-item-selected:hover { + background-color: #fafafa; + color: rgba(0, 0, 0, 0.65); +} +.ant-select-dropdown-menu-item-active { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-select-dropdown-menu-item-divider { + background-color: #e8e8e8; +} +.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item .ant-select-selected-icon { + color: transparent; +} +.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item:hover .ant-select-selected-icon { + color: #ddd; +} +.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected .ant-select-selected-icon, +.ant-select-dropdown.ant-select-dropdown--multiple .ant-select-dropdown-menu-item-selected:hover .ant-select-selected-icon { + color: @primary-color; +} +.ant-skeleton-header .ant-skeleton-avatar { + background: #f2f2f2; +} +.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle { + border-radius: 50%; +} +.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle { + border-radius: 50%; +} +.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle { + border-radius: 50%; +} +.ant-skeleton-content .ant-skeleton-title { + background: #f2f2f2; +} +.ant-skeleton-content .ant-skeleton-paragraph > li { + background: #f2f2f2; +} +.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title, +.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph > li { + background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); + background-size: 400% 100%; +} +.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar { + background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); + background-size: 400% 100%; +} +.ant-slider { + color: rgba(0, 0, 0, 0.65); +} +.ant-slider-rail { + border-radius: 2px; + background-color: #f5f5f5; +} +.ant-slider-track { + border-radius: 4px; + background-color: color(~`colorPalette("@{primary-color}", 3)`); +} +.ant-slider-handle { + border-radius: 50%; + border: solid 2px color(~`colorPalette("@{primary-color}", 3)`); + background-color: #fff; +} +.ant-slider-handle:focus { + border-color: #46a6ff; + box-shadow: 0 0 0 5px #8cc8ff; +} +.ant-slider-handle.ant-tooltip-open { + border-color: @primary-color; +} +.ant-slider:hover .ant-slider-rail { + background-color: #e1e1e1; +} +.ant-slider:hover .ant-slider-track { + background-color: color(~`colorPalette("@{primary-color}", 4)`); +} +.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open) { + border-color: color(~`colorPalette("@{primary-color}", 4)`); +} +.ant-slider-mark-text { + color: rgba(0, 0, 0, 0.45); +} +.ant-slider-mark-text-active { + color: rgba(0, 0, 0, 0.65); +} +.ant-slider-step { + background: transparent; +} +.ant-slider-dot { + border: 2px solid #e8e8e8; + background-color: #fff; + border-radius: 50%; +} +.ant-slider-dot-active { + border-color: #8cc8ff; +} +.ant-slider-disabled .ant-slider-track { + background-color: rgba(0, 0, 0, 0.25) !important; +} +.ant-slider-disabled .ant-slider-handle, +.ant-slider-disabled .ant-slider-dot { + border-color: rgba(0, 0, 0, 0.25) !important; + background-color: #fff; + box-shadow: none; +} +.ant-spin { + color: rgba(0, 0, 0, 0.65); + color: @primary-color; +} +.ant-spin-blur:after { + background: #fff; +} +.ant-spin-tip { + color: rgba(0, 0, 0, 0.45); +} +.ant-spin-dot i { + border-radius: 100%; + background-color: @primary-color; +} +.ant-steps { + color: rgba(0, 0, 0, 0.65); +} +.ant-steps-item-icon { + border: 1px solid rgba(0, 0, 0, 0.25); + border-radius: 32px; +} +.ant-steps-item-icon > .ant-steps-icon { + color: @primary-color; +} +.ant-steps-item-tail:after { + background: #e8e8e8; + border-radius: 1px; +} +.ant-steps-item-title { + color: rgba(0, 0, 0, 0.65); +} +.ant-steps-item-title:after { + background: #e8e8e8; +} +.ant-steps-item-description { + color: rgba(0, 0, 0, 0.45); +} +.ant-steps-item-wait .ant-steps-item-icon { + border-color: rgba(0, 0, 0, 0.25); + background-color: #fff; +} +.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon { + color: rgba(0, 0, 0, 0.25); +} +.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { + background: rgba(0, 0, 0, 0.25); +} +.ant-steps-item-wait > .ant-steps-item-content > .ant-steps-item-title { + color: rgba(0, 0, 0, 0.45); +} +.ant-steps-item-wait > .ant-steps-item-content > .ant-steps-item-title:after { + background-color: #e8e8e8; +} +.ant-steps-item-wait > .ant-steps-item-content > .ant-steps-item-description { + color: rgba(0, 0, 0, 0.45); +} +.ant-steps-item-wait > .ant-steps-item-tail:after { + background-color: #e8e8e8; +} +.ant-steps-item-process .ant-steps-item-icon { + border-color: @primary-color; + background-color: #fff; +} +.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon { + color: @primary-color; +} +.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { + background: @primary-color; +} +.ant-steps-item-process > .ant-steps-item-content > .ant-steps-item-title { + color: rgba(0, 0, 0, 0.85); +} +.ant-steps-item-process > .ant-steps-item-content > .ant-steps-item-title:after { + background-color: #e8e8e8; +} +.ant-steps-item-process > .ant-steps-item-content > .ant-steps-item-description { + color: rgba(0, 0, 0, 0.65); +} +.ant-steps-item-process > .ant-steps-item-tail:after { + background-color: #e8e8e8; +} +.ant-steps-item-process .ant-steps-item-icon { + background: @primary-color; +} +.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon { + color: #fff; +} +.ant-steps-item-finish .ant-steps-item-icon { + border-color: @primary-color; + background-color: #fff; +} +.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon { + color: @primary-color; +} +.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { + background: @primary-color; +} +.ant-steps-item-finish > .ant-steps-item-content > .ant-steps-item-title { + color: rgba(0, 0, 0, 0.65); +} +.ant-steps-item-finish > .ant-steps-item-content > .ant-steps-item-title:after { + background-color: @primary-color; +} +.ant-steps-item-finish > .ant-steps-item-content > .ant-steps-item-description { + color: rgba(0, 0, 0, 0.45); +} +.ant-steps-item-finish > .ant-steps-item-tail:after { + background-color: @primary-color; +} +.ant-steps-item-error .ant-steps-item-icon { + border-color: #f5222d; + background-color: #fff; +} +.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon { + color: #f5222d; +} +.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { + background: #f5222d; +} +.ant-steps-item-error > .ant-steps-item-content > .ant-steps-item-title { + color: #f5222d; +} +.ant-steps-item-error > .ant-steps-item-content > .ant-steps-item-title:after { + background-color: #e8e8e8; +} +.ant-steps-item-error > .ant-steps-item-content > .ant-steps-item-description { + color: #f5222d; +} +.ant-steps-item-error > .ant-steps-item-tail:after { + background-color: #e8e8e8; +} +.ant-steps-item.ant-steps-next-error .ant-steps-item-title:after { + background: #f5222d; +} +.ant-steps-item-custom .ant-steps-item-icon { + background: none; + border: 0; +} +.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon { + color: @primary-color; +} +.ant-steps-small .ant-steps-item-icon { + border-radius: 24px; +} +.ant-steps-small .ant-steps-item-description { + color: rgba(0, 0, 0, 0.45); +} +.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon { + border-radius: 0; + border: 0; + background: none; +} +.ant-steps-dot .ant-steps-item-icon { + border: 0; + background: transparent; +} +.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot { + border-radius: 100px; +} +.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after { + background: rgba(0, 0, 0, 0.001); +} +.ant-switch { + color: rgba(0, 0, 0, 0.65); + border-radius: 100px; + border: 1px solid transparent; + background-color: rgba(0, 0, 0, 0.25); +} +.ant-switch-inner { + color: #fff; +} +.ant-switch-loading-icon, +.ant-switch:after { + border-radius: 18px; + background-color: #fff; +} +.ant-switch:after { + box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2); +} +.ant-switch-loading-icon { + background: transparent; +} +.ant-switch-loading .ant-switch-loading-icon { + color: rgba(0, 0, 0, 0.65); +} +.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon { + color: @primary-color; +} +.ant-switch:focus { + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); +} +.ant-switch:focus:hover { + box-shadow: none; +} +.ant-switch-checked { + background-color: @primary-color; +} +.ant-table { + color: rgba(0, 0, 0, 0.65); +} +.ant-table table { + border-collapse: collapse; + border-radius: 4px 4px 0 0; +} +.ant-table-thead > tr > th { + background: #fafafa; + color: rgba(0, 0, 0, 0.85); + border-bottom: 1px solid #e8e8e8; +} +.ant-table-thead > tr > th .anticon-filter, +.ant-table-thead > tr > th .ant-table-filter-icon { + color: #bfbfbf; +} +.ant-table-thead > tr > th .ant-table-filter-selected.anticon-filter { + color: @primary-color; +} +.ant-table-thead > tr > th .ant-table-column-sorter { + color: #bfbfbf; +} +.ant-table-thead > tr > th .ant-table-column-sorter-up.on, +.ant-table-thead > tr > th .ant-table-column-sorter-down.on { + color: @primary-color; +} +.ant-table-thead > tr > th.ant-table-column-has-actions:hover { + background: #f5f5f5; +} +.ant-table-thead > tr > th.ant-table-column-has-actions:hover .anticon-filter, +.ant-table-thead > tr > th.ant-table-column-has-actions:hover .ant-table-filter-icon { + background: #f5f5f5; +} +.ant-table-thead > tr > th.ant-table-column-has-actions:hover .anticon-filter:hover, +.ant-table-thead > tr > th.ant-table-column-has-actions:hover .ant-table-filter-icon:hover { + color: rgba(0, 0, 0, 0.45); + background: #ebebeb; +} +.ant-table-thead > tr > th.ant-table-column-has-actions:hover .anticon-filter:active, +.ant-table-thead > tr > th.ant-table-column-has-actions:hover .ant-table-filter-icon:active { + color: rgba(0, 0, 0, 0.65); +} +.ant-table-thead > tr > th.ant-table-column-has-actions .anticon-filter.ant-table-filter-open, +.ant-table-thead > tr > th.ant-table-column-has-actions .ant-table-filter-icon.ant-table-filter-open { + color: rgba(0, 0, 0, 0.45); + background: #ebebeb; +} +.ant-table-thead > tr > th.ant-table-column-has-actions:active .ant-table-column-sorter-up:not(.on), +.ant-table-thead > tr > th.ant-table-column-has-actions:active .ant-table-column-sorter-down:not(.on) { + color: rgba(0, 0, 0, 0.45); +} +.ant-table-thead > tr > th .ant-table-column-sorters:before { + background: transparent; +} +.ant-table-thead > tr > th .ant-table-column-sorters:hover:before { + background: rgba(0, 0, 0, 0.04); +} +.ant-table-thead > tr:first-child > th:first-child { + border-top-left-radius: 4px; +} +.ant-table-thead > tr:first-child > th:last-child { + border-top-right-radius: 4px; +} +.ant-table-thead > tr:not(:last-child) > th[colspan] { + border-bottom: 0; +} +.ant-table-tbody > tr > td { + border-bottom: 1px solid #e8e8e8; +} +.ant-table-thead > tr.ant-table-row-hover > td, +.ant-table-tbody > tr.ant-table-row-hover > td, +.ant-table-thead > tr:hover > td, +.ant-table-tbody > tr:hover > td { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-table-thead > tr:hover { + background: none; +} +.ant-table-footer { + background: #fafafa; + border-radius: 0 0 4px 4px; + border-top: 1px solid #e8e8e8; +} +.ant-table-footer:before { + background: #fafafa; +} +.ant-table.ant-table-bordered .ant-table-footer { + border: 1px solid #e8e8e8; +} +.ant-table-title { + border-radius: 4px 4px 0 0; +} +.ant-table.ant-table-bordered .ant-table-title { + border: 1px solid #e8e8e8; +} +.ant-table-title + .ant-table-content { + border-radius: 4px 4px 0 0; +} +.ant-table-bordered .ant-table-title + .ant-table-content, +.ant-table-bordered .ant-table-title + .ant-table-content table, +.ant-table-bordered .ant-table-title + .ant-table-content .ant-table-thead > tr:first-child > th { + border-radius: 0; +} +.ant-table-without-column-header .ant-table-title + .ant-table-content, +.ant-table-without-column-header table { + border-radius: 0; +} +.ant-table-tbody > tr.ant-table-row-selected td { + background: #fafafa; +} +.ant-table-thead > tr > th.ant-table-column-sort { + background: #f5f5f5; +} +.ant-table-tbody > tr > td.ant-table-column-sort { + background: rgba(0, 0, 0, 0.01); +} +.ant-table-header { + background: #fafafa; +} +.ant-table-header table { + border-radius: 4px 4px 0 0; +} +.ant-table-loading .ant-table-body { + background: #fff; +} +.ant-table-bordered .ant-table-header > table, +.ant-table-bordered .ant-table-body > table, +.ant-table-bordered .ant-table-fixed-left table, +.ant-table-bordered .ant-table-fixed-right table { + border: 1px solid #e8e8e8; + border-right: 0; + border-bottom: 0; +} +.ant-table-bordered.ant-table-empty .ant-table-placeholder { + border-left: 1px solid #e8e8e8; + border-right: 1px solid #e8e8e8; +} +.ant-table-bordered.ant-table-fixed-header .ant-table-header > table { + border-bottom: 0; +} +.ant-table-bordered.ant-table-fixed-header .ant-table-body > table { + border-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.ant-table-bordered.ant-table-fixed-header .ant-table-body-inner > table { + border-top: 0; +} +.ant-table-bordered.ant-table-fixed-header .ant-table-placeholder { + border: 0; +} +.ant-table-bordered .ant-table-thead > tr:not(:last-child) > th { + border-bottom: 1px solid #e8e8e8; +} +.ant-table-bordered .ant-table-thead > tr > th, +.ant-table-bordered .ant-table-tbody > tr > td { + border-right: 1px solid #e8e8e8; +} +.ant-table-placeholder { + background: #fff; + border-bottom: 1px solid #e8e8e8; + color: rgba(0, 0, 0, 0.45); +} +.ant-table-filter-dropdown { + background: #fff; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); +} +.ant-table-filter-dropdown .ant-dropdown-menu { + border: 0; + box-shadow: none; + border-radius: 4px 4px 0 0; +} +.ant-table-filter-dropdown .ant-dropdown-menu-sub { + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); +} +.ant-table-filter-dropdown .ant-dropdown-menu .ant-dropdown-submenu-contain-selected .ant-dropdown-menu-submenu-title:after { + color: @primary-color; +} +.ant-table-filter-dropdown > .ant-dropdown-menu > .ant-dropdown-menu-item:last-child, +.ant-table-filter-dropdown > .ant-dropdown-menu > .ant-dropdown-menu-submenu:last-child .ant-dropdown-menu-submenu-title { + border-radius: 0; +} +.ant-table-filter-dropdown-btns { + border-top: 1px solid #e8e8e8; +} +.ant-table-filter-dropdown-link { + color: @primary-color; +} +.ant-table-filter-dropdown-link:hover { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-table-filter-dropdown-link:active { + color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-table-selection .anticon-down { + color: #bfbfbf; +} +.ant-table-selection-menu { + background: #fff; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); +} +.ant-table-selection-menu .ant-action-down { + color: #bfbfbf; +} +.ant-table-selection-down:hover .anticon-down { + color: #666; +} +.ant-table-row-expand-icon { + border: 1px solid #e8e8e8; + background: #fff; +} +tr.ant-table-expanded-row, +tr.ant-table-expanded-row:hover { + background: #fbfbfb; +} +.ant-table-fixed-header > .ant-table-content > .ant-table-scroll > .ant-table-body { + background: #fff; +} +.ant-table-fixed-left, +.ant-table-fixed-right { + border-radius: 0; +} +.ant-table-fixed-left table, +.ant-table-fixed-right table { + background: #fff; +} +.ant-table-fixed-header .ant-table-fixed-left .ant-table-body-outer .ant-table-fixed, +.ant-table-fixed-header .ant-table-fixed-right .ant-table-body-outer .ant-table-fixed { + border-radius: 0; +} +.ant-table-fixed-left { + box-shadow: 6px 0 6px -4px rgba(0, 0, 0, 0.15); +} +.ant-table-fixed-left, +.ant-table-fixed-left table { + border-radius: 4px 0 0 0; +} +.ant-table-fixed-left .ant-table-thead > tr > th:last-child { + border-top-right-radius: 0; +} +.ant-table-fixed-right { + box-shadow: -6px 0 6px -4px rgba(0, 0, 0, 0.15); +} +.ant-table-fixed-right, +.ant-table-fixed-right table { + border-radius: 0 4px 0 0; +} +.ant-table-fixed-right .ant-table-expanded-row { + color: transparent; +} +.ant-table-fixed-right .ant-table-thead > tr > th:first-child { + border-top-left-radius: 0; +} +.ant-table.ant-table-scroll-position-left .ant-table-fixed-left { + box-shadow: none; +} +.ant-table.ant-table-scroll-position-right .ant-table-fixed-right { + box-shadow: none; +} +.ant-table-small { + border: 1px solid #e8e8e8; + border-radius: 4px; +} +.ant-table-small > .ant-table-title { + border-bottom: 1px solid #e8e8e8; +} +.ant-table-small > .ant-table-content > .ant-table-header > table, +.ant-table-small > .ant-table-content > .ant-table-body > table, +.ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-header > table, +.ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-body > table, +.ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table, +.ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table, +.ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table, +.ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table { + border: 0; +} +.ant-table-small > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-small > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, +.ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th, +.ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-thead > tr > th, +.ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, +.ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th { + background: #fff; + border-bottom: 1px solid #e8e8e8; +} +.ant-table-small > .ant-table-content .ant-table-header { + background: #fff; +} +.ant-table-small > .ant-table-content .ant-table-placeholder, +.ant-table-small > .ant-table-content .ant-table-row:last-child td { + border-bottom: 0; +} +.ant-table-small.ant-table-bordered { + border-right: 0; +} +.ant-table-small.ant-table-bordered .ant-table-title { + border: 0; + border-bottom: 1px solid #e8e8e8; + border-right: 1px solid #e8e8e8; +} +.ant-table-small.ant-table-bordered .ant-table-content { + border-right: 1px solid #e8e8e8; +} +.ant-table-small.ant-table-bordered .ant-table-footer { + border: 0; + border-top: 1px solid #e8e8e8; + border-right: 1px solid #e8e8e8; +} +.ant-table-small.ant-table-bordered .ant-table-placeholder { + border-left: 0; + border-bottom: 0; +} +.ant-table-small.ant-table-bordered .ant-table-thead > tr > th:last-child, +.ant-table-small.ant-table-bordered .ant-table-tbody > tr > td:last-child { + border-right: none; +} +.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-thead > tr > th:last-child, +.ant-table-small.ant-table-bordered .ant-table-fixed-left .ant-table-tbody > tr > td:last-child { + border-right: 1px solid #e8e8e8; +} +.ant-table-small.ant-table-bordered .ant-table-fixed-right { + border-right: 1px solid #e8e8e8; +} +.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab { + border: 1px solid #e8e8e8; + border-bottom: 0; + border-radius: 4px 4px 0 0; + background: #fafafa; +} +.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab-active { + background: #fff; + border-color: @primary-color !important; + color: @primary-color; +} +.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab .ant-tabs-close-x { + color: rgba(0, 0, 0, 0.45); +} +.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab .ant-tabs-close-x:hover { + color: rgba(0, 0, 0, 0.85); +} +.ant-tabs-extra-content .ant-tabs-new-tab { + border-radius: 2px; + border: 1px solid #e8e8e8; + color: rgba(0, 0, 0, 0.65); +} +.ant-tabs-extra-content .ant-tabs-new-tab:hover { + color: @primary-color; + border-color: @primary-color; +} +.ant-tabs-vertical.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab { + border-bottom: 1px solid #e8e8e8; +} +.ant-tabs-vertical.ant-tabs-card.ant-tabs-left > .ant-tabs-bar .ant-tabs-tab { + border-right: 0; + border-radius: 4px 0 0 4px; +} +.ant-tabs-vertical.ant-tabs-card.ant-tabs-right > .ant-tabs-bar .ant-tabs-tab { + border-left: 0; + border-radius: 0 4px 4px 0; +} +.ant-tabs.ant-tabs-card.ant-tabs-bottom > .ant-tabs-bar .ant-tabs-tab { + border-bottom: 1px solid #e8e8e8; + border-top: 0; + border-radius: 0 0 4px 4px; +} +.ant-tabs.ant-tabs-card.ant-tabs-bottom > .ant-tabs-bar .ant-tabs-tab-active { + color: @primary-color; +} +.ant-tabs { + color: rgba(0, 0, 0, 0.65); +} +.ant-tabs-ink-bar { + background-color: @primary-color; +} +.ant-tabs-bar { + border-bottom: 1px solid #e8e8e8; +} +.ant-tabs-bottom .ant-tabs-bar { + border-bottom: none; + border-top: 1px solid #e8e8e8; +} +.ant-tabs-tab-prev, +.ant-tabs-tab-next { + border: 0; + background-color: transparent; + color: rgba(0, 0, 0, 0.45); +} +.ant-tabs-tab-prev:hover, +.ant-tabs-tab-next:hover { + color: rgba(0, 0, 0, 0.65); +} +.ant-tabs-tab-btn-disabled, +.ant-tabs-tab-btn-disabled:hover { + color: rgba(0, 0, 0, 0.25); +} +.ant-tabs-nav .ant-tabs-tab-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-tabs-nav .ant-tabs-tab:hover { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-tabs-nav .ant-tabs-tab:active { + color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-tabs-nav .ant-tabs-tab-active { + color: @primary-color; +} +.ant-tabs-vertical > .ant-tabs-bar { + border-bottom: 0; +} +.ant-tabs-vertical.ant-tabs-left > .ant-tabs-bar { + border-right: 1px solid #e8e8e8; +} +.ant-tabs-vertical.ant-tabs-left > .ant-tabs-content { + border-left: 1px solid #e8e8e8; +} +.ant-tabs-vertical.ant-tabs-right > .ant-tabs-bar { + border-left: 1px solid #e8e8e8; +} +.ant-tabs-vertical.ant-tabs-right > .ant-tabs-content { + border-right: 1px solid #e8e8e8; +} +.ant-tag { + color: rgba(0, 0, 0, 0.65); + border-radius: 4px; + border: 1px solid #d9d9d9; + background: #fafafa; +} +.ant-tag, +.ant-tag a, +.ant-tag a:hover { + color: rgba(0, 0, 0, 0.65); +} +.ant-tag .anticon-close { + color: rgba(0, 0, 0, 0.45); +} +.ant-tag .anticon-close:hover { + color: rgba(0, 0, 0, 0.85); +} +.ant-tag-has-color { + border-color: transparent; +} +.ant-tag-has-color, +.ant-tag-has-color a, +.ant-tag-has-color a:hover, +.ant-tag-has-color .anticon-close, +.ant-tag-has-color .anticon-close:hover { + color: #fff; +} +.ant-tag-checkable { + background-color: transparent; + border-color: transparent; +} +.ant-tag-checkable:not(.ant-tag-checkable-checked):hover { + color: @primary-color; +} +.ant-tag-checkable:active, +.ant-tag-checkable-checked { + color: #fff; +} +.ant-tag-checkable-checked { + background-color: @primary-color; +} +.ant-tag-checkable:active { + background-color: color(~`colorPalette("@{primary-color}", 7)`); +} +.ant-tag-pink { + color: #eb2f96; + background: #fff0f6; + border-color: #ffadd2; +} +.ant-tag-pink-inverse { + background: #eb2f96; + border-color: #eb2f96; + color: #fff; +} +.ant-tag-magenta { + color: #eb2f96; + background: #fff0f6; + border-color: #ffadd2; +} +.ant-tag-magenta-inverse { + background: #eb2f96; + border-color: #eb2f96; + color: #fff; +} +.ant-tag-red { + color: #f5222d; + background: #fff1f0; + border-color: #ffa39e; +} +.ant-tag-red-inverse { + background: #f5222d; + border-color: #f5222d; + color: #fff; +} +.ant-tag-volcano { + color: #fa541c; + background: #fff2e8; + border-color: #ffbb96; +} +.ant-tag-volcano-inverse { + background: #fa541c; + border-color: #fa541c; + color: #fff; +} +.ant-tag-orange { + color: #fa8c16; + background: #fff7e6; + border-color: #ffd591; +} +.ant-tag-orange-inverse { + background: #fa8c16; + border-color: #fa8c16; + color: #fff; +} +.ant-tag-yellow { + color: #fadb14; + background: #feffe6; + border-color: #fffb8f; +} +.ant-tag-yellow-inverse { + background: #fadb14; + border-color: #fadb14; + color: #fff; +} +.ant-tag-gold { + color: #faad14; + background: #fffbe6; + border-color: #ffe58f; +} +.ant-tag-gold-inverse { + background: #faad14; + border-color: #faad14; + color: #fff; +} +.ant-tag-cyan { + color: #13c2c2; + background: #e6fffb; + border-color: #87e8de; +} +.ant-tag-cyan-inverse { + background: #13c2c2; + border-color: #13c2c2; + color: #fff; +} +.ant-tag-lime { + color: #a0d911; + background: #fcffe6; + border-color: #eaff8f; +} +.ant-tag-lime-inverse { + background: #a0d911; + border-color: #a0d911; + color: #fff; +} +.ant-tag-green { + color: #52c41a; + background: #f6ffed; + border-color: #b7eb8f; +} +.ant-tag-green-inverse { + background: #52c41a; + border-color: #52c41a; + color: #fff; +} +.ant-tag-blue { + color: @primary-color; + background: color(~`colorPalette("@{primary-color}", 1)`); + border-color: color(~`colorPalette("@{primary-color}", 3)`); +} +.ant-tag-blue-inverse { + background: @primary-color; + border-color: @primary-color; + color: #fff; +} +.ant-tag-geekblue { + color: #2f54eb; + background: #f0f5ff; + border-color: #adc6ff; +} +.ant-tag-geekblue-inverse { + background: #2f54eb; + border-color: #2f54eb; + color: #fff; +} +.ant-tag-purple { + color: #722ed1; + background: #f9f0ff; + border-color: #d3adf7; +} +.ant-tag-purple-inverse { + background: #722ed1; + border-color: #722ed1; + color: #fff; +} +.ant-time-picker-panel { + color: rgba(0, 0, 0, 0.65); +} +.ant-time-picker-panel-inner { + background-color: #fff; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + background-clip: padding-box; +} +.ant-time-picker-panel-input { + border: 0; +} +.ant-time-picker-panel-input::-moz-placeholder { + color: #bfbfbf; +} +.ant-time-picker-panel-input:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-time-picker-panel-input::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-time-picker-panel-input-wrap { + border-bottom: 1px solid #e8e8e8; +} +.ant-time-picker-panel-input-invalid { + border-color: red; +} +.ant-time-picker-panel-clear-btn-icon svg { + color: rgba(0, 0, 0, 0.25); +} +.ant-time-picker-panel-clear-btn-icon svg:hover { + color: rgba(0, 0, 0, 0.45); +} +.ant-time-picker-panel-select { + border-left: 1px solid #e8e8e8; +} +.ant-time-picker-panel-select:first-child { + border-left: 0; +} +.ant-time-picker-panel-select:last-child { + border-right: 0; +} +.ant-time-picker-panel-select li:hover { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +li.ant-time-picker-panel-select-option-selected { + background: #f5f5f5; +} +li.ant-time-picker-panel-select-option-selected:hover { + background: #f5f5f5; +} +li.ant-time-picker-panel-select-option-disabled { + color: rgba(0, 0, 0, 0.25); +} +li.ant-time-picker-panel-select-option-disabled:hover { + background: transparent; +} +.ant-time-picker-panel-addon { + border-top: 1px solid #e8e8e8; +} +.ant-time-picker { + color: rgba(0, 0, 0, 0.65); +} +.ant-time-picker-input { + color: rgba(0, 0, 0, 0.65); + background-color: #fff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 4px; +} +.ant-time-picker-input::-moz-placeholder { + color: #bfbfbf; +} +.ant-time-picker-input:-ms-input-placeholder { + color: #bfbfbf; +} +.ant-time-picker-input::-webkit-input-placeholder { + color: #bfbfbf; +} +.ant-time-picker-input:hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + border-right-width: 1px !important; +} +.ant-time-picker-input:focus { + border-color: color(~`colorPalette("@{primary-color}", 5)`); + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); + border-right-width: 1px !important; +} +.ant-time-picker-input-disabled { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-time-picker-input-disabled:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-time-picker-input[disabled] { + background-color: #f5f5f5; + color: rgba(0, 0, 0, 0.25); +} +.ant-time-picker-input[disabled]:hover { + border-color: #e6d8d8; + border-right-width: 1px !important; +} +.ant-time-picker-icon { + color: rgba(0, 0, 0, 0.25); +} +.ant-time-picker-icon .ant-time-picker-clock-icon { + color: rgba(0, 0, 0, 0.25); +} +.ant-timeline { + color: rgba(0, 0, 0, 0.65); +} +.ant-timeline-item-tail { + border-left: 2px solid #e8e8e8; +} +.ant-timeline-item-head { + background-color: #fff; + border-radius: 100px; + border: 2px solid transparent; +} +.ant-timeline-item-head-blue { + border-color: @primary-color; + color: @primary-color; +} +.ant-timeline-item-head-red { + border-color: #f5222d; + color: #f5222d; +} +.ant-timeline-item-head-green { + border-color: #52c41a; + color: #52c41a; +} +.ant-timeline-item-head-custom { + border: 0; + border-radius: 0; +} +.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail { + border-left: 2px dotted #e8e8e8; +} +.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail { + border-left: 2px dotted #e8e8e8; +} +.ant-tooltip { + color: rgba(0, 0, 0, 0.65); +} +.ant-tooltip-inner { + color: #fff; + background-color: rgba(0, 0, 0, 0.75); + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); +} +.ant-tooltip-arrow { + border-color: transparent; + border-style: solid; +} +.ant-tooltip-placement-top .ant-tooltip-arrow, +.ant-tooltip-placement-topLeft .ant-tooltip-arrow, +.ant-tooltip-placement-topRight .ant-tooltip-arrow { + border-width: 5px 5px 0; + border-top-color: rgba(0, 0, 0, 0.75); +} +.ant-tooltip-placement-right .ant-tooltip-arrow, +.ant-tooltip-placement-rightTop .ant-tooltip-arrow, +.ant-tooltip-placement-rightBottom .ant-tooltip-arrow { + border-width: 5px 5px 5px 0; + border-right-color: rgba(0, 0, 0, 0.75); +} +.ant-tooltip-placement-left .ant-tooltip-arrow, +.ant-tooltip-placement-leftTop .ant-tooltip-arrow, +.ant-tooltip-placement-leftBottom .ant-tooltip-arrow { + border-width: 5px 0 5px 5px; + border-left-color: rgba(0, 0, 0, 0.75); +} +.ant-tooltip-placement-bottom .ant-tooltip-arrow, +.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow, +.ant-tooltip-placement-bottomRight .ant-tooltip-arrow { + border-width: 0 5px 5px; + border-bottom-color: rgba(0, 0, 0, 0.75); +} +.ant-transfer { + color: rgba(0, 0, 0, 0.65); +} +.ant-transfer-disabled .ant-transfer-list { + background: #f5f5f5; +} +.ant-transfer-list { + border: 1px solid #d9d9d9; + border-radius: 4px; +} +.ant-transfer-list-search-action { + color: rgba(0, 0, 0, 0.25); +} +.ant-transfer-list-search-action .anticon { + color: rgba(0, 0, 0, 0.25); +} +.ant-transfer-list-search-action .anticon:hover { + color: rgba(0, 0, 0, 0.45); +} +.ant-transfer-list-header { + border-radius: 4px 4px 0 0; + background: #fff; + color: rgba(0, 0, 0, 0.65); + border-bottom: 1px solid #e8e8e8; +} +.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-transfer-list-content-item-disabled { + color: rgba(0, 0, 0, 0.25); +} +.ant-transfer-list-body-not-found { + color: rgba(0, 0, 0, 0.25); +} +.ant-transfer-list-footer { + border-top: 1px solid #e8e8e8; + border-radius: 0 0 4px 4px; +} +.ant-select-tree-checkbox { + color: rgba(0, 0, 0, 0.65); +} +.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner, +.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner, +.ant-select-tree-checkbox-input:focus + .ant-select-tree-checkbox-inner { + border-color: @primary-color; +} +.ant-select-tree-checkbox-checked:after { + border-radius: 2px; + border: 1px solid @primary-color; +} +.ant-select-tree-checkbox-inner { + border: 1px solid #d9d9d9; + border-radius: 2px; + background-color: #fff; +} +.ant-select-tree-checkbox-inner:after { + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner:after { + border: 0; + background-color: @primary-color; +} +.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after { + border-color: rgba(0, 0, 0, 0.25); +} +.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after { + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner { + background-color: @primary-color; + border-color: @primary-color; +} +.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after { + border-color: rgba(0, 0, 0, 0.25); +} +.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner { + border-color: #d9d9d9 !important; + background-color: #f5f5f5; +} +.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after { + border-color: #f5f5f5; +} +.ant-select-tree-checkbox-disabled + span { + color: rgba(0, 0, 0, 0.25); +} +.ant-select-tree-checkbox-wrapper { + color: rgba(0, 0, 0, 0.65); +} +.ant-select-tree-checkbox-group { + color: rgba(0, 0, 0, 0.65); +} +.ant-select-tree { + color: rgba(0, 0, 0, 0.65); +} +.ant-select-tree li .ant-select-tree-node-content-wrapper { + border-radius: 2px; + color: rgba(0, 0, 0, 0.65); +} +.ant-select-tree li .ant-select-tree-node-content-wrapper:hover { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-select-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected { + background-color: color(~`colorPalette("@{primary-color}", 2)`); +} +.ant-select-tree li span.ant-select-tree-switcher, +.ant-select-tree li span.ant-select-tree-iconEle { + border: 0 none; +} +.ant-select-tree li span.ant-select-icon_loading .ant-select-switcher-loading-icon { + color: @primary-color; +} +.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_open .ant-select-switcher-loading-icon, +.ant-select-tree li span.ant-select-tree-switcher.ant-select-tree-switcher_close .ant-select-switcher-loading-icon { + color: @primary-color; +} +li.ant-select-tree-treenode-disabled > span:not(.ant-select-tree-switcher), +li.ant-select-tree-treenode-disabled > .ant-select-tree-node-content-wrapper, +li.ant-select-tree-treenode-disabled > .ant-select-tree-node-content-wrapper span { + color: rgba(0, 0, 0, 0.25); +} +li.ant-select-tree-treenode-disabled > .ant-select-tree-node-content-wrapper:hover { + background: transparent; +} +.ant-select-tree-dropdown { + color: rgba(0, 0, 0, 0.65); +} +.ant-select-tree-dropdown .ant-select-dropdown-search .ant-select-search__field { + border: 1px solid #d9d9d9; + border-radius: 4px; +} +.ant-select-tree-dropdown .ant-select-not-found { + color: rgba(0, 0, 0, 0.25); +} +.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper { + border-radius: 0; +} +.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper:hover, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper:hover { + background: transparent; +} +.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper:hover:before, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper:hover:before { + background: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper.ant-tree-node-selected, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper.ant-tree-node-selected { + color: #fff; + background: transparent; +} +.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-switcher, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-switcher { + color: #fff; +} +.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-checkbox .ant-tree-checkbox-inner, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-checkbox .ant-tree-checkbox-inner { + border-color: @primary-color; +} +.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked:after, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked:after { + border-color: #fff; +} +.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner { + background: #fff; +} +.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-checkbox.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after { + border-color: @primary-color; +} +.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-node-content-wrapper:before, +.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-node-content-wrapper:before { + background: @primary-color; +} +.ant-tree-checkbox { + color: rgba(0, 0, 0, 0.65); +} +.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner, +.ant-tree-checkbox:hover .ant-tree-checkbox-inner, +.ant-tree-checkbox-input:focus + .ant-tree-checkbox-inner { + border-color: @primary-color; +} +.ant-tree-checkbox-checked:after { + border-radius: 2px; + border: 1px solid @primary-color; +} +.ant-tree-checkbox-inner { + border: 1px solid #d9d9d9; + border-radius: 2px; + background-color: #fff; +} +.ant-tree-checkbox-inner:after { + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner:after { + border: 0; + background-color: @primary-color; +} +.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after { + border-color: rgba(0, 0, 0, 0.25); +} +.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after { + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.ant-tree-checkbox-checked .ant-tree-checkbox-inner { + background-color: @primary-color; + border-color: @primary-color; +} +.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after { + border-color: rgba(0, 0, 0, 0.25); +} +.ant-tree-checkbox-disabled .ant-tree-checkbox-inner { + border-color: #d9d9d9 !important; + background-color: #f5f5f5; +} +.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after { + border-color: #f5f5f5; +} +.ant-tree-checkbox-disabled + span { + color: rgba(0, 0, 0, 0.25); +} +.ant-tree-checkbox-wrapper { + color: rgba(0, 0, 0, 0.65); +} +.ant-tree-checkbox-group { + color: rgba(0, 0, 0, 0.65); +} +.ant-tree { + color: rgba(0, 0, 0, 0.65); +} +.ant-tree li span[draggable], +.ant-tree li span[draggable="true"] { + border-top: 2px transparent solid; + border-bottom: 2px transparent solid; +} +.ant-tree li.drag-over > span[draggable] { + background-color: @primary-color; + color: white; +} +.ant-tree li.drag-over-gap-top > span[draggable] { + border-top-color: @primary-color; +} +.ant-tree li.drag-over-gap-bottom > span[draggable] { + border-bottom-color: @primary-color; +} +.ant-tree li.filter-node > span { + color: #f5222d !important; +} +.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_open .ant-tree-switcher-loading-icon, +.ant-tree li.ant-tree-treenode-loading span.ant-tree-switcher.ant-tree-switcher_close .ant-tree-switcher-loading-icon { + color: @primary-color; +} +.ant-tree li .ant-tree-node-content-wrapper { + border-radius: 2px; + color: rgba(0, 0, 0, 0.65); +} +.ant-tree li .ant-tree-node-content-wrapper:hover { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected { + background-color: color(~`colorPalette("@{primary-color}", 2)`); +} +.ant-tree li span.ant-tree-switcher, +.ant-tree li span.ant-tree-iconEle { + border: 0 none; +} +li.ant-tree-treenode-disabled > span:not(.ant-tree-switcher), +li.ant-tree-treenode-disabled > .ant-tree-node-content-wrapper, +li.ant-tree-treenode-disabled > .ant-tree-node-content-wrapper span { + color: rgba(0, 0, 0, 0.25); +} +li.ant-tree-treenode-disabled > .ant-tree-node-content-wrapper:hover { + background: transparent; +} +.ant-tree.ant-tree-show-line li span.ant-tree-switcher { + background: #fff; + color: rgba(0, 0, 0, 0.45); +} +.ant-tree.ant-tree-show-line li:not(:last-child):before { + border-left: 1px solid #d9d9d9; +} +.ant-upload { + color: rgba(0, 0, 0, 0.65); +} +.ant-upload.ant-upload-select-picture-card { + border: 1px dashed #d9d9d9; + border-radius: 4px; + background-color: #fafafa; +} +.ant-upload.ant-upload-select-picture-card:hover { + border-color: @primary-color; +} +.ant-upload.ant-upload-drag { + border: 1px dashed #d9d9d9; + border-radius: 4px; + background: #fafafa; +} +.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled) { + border: 2px dashed color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover { + border-color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon { + color: color(~`colorPalette("@{primary-color}", 5)`); +} +.ant-upload.ant-upload-drag p.ant-upload-text { + color: rgba(0, 0, 0, 0.85); +} +.ant-upload.ant-upload-drag p.ant-upload-hint { + color: rgba(0, 0, 0, 0.45); +} +.ant-upload.ant-upload-drag .anticon-plus { + color: rgba(0, 0, 0, 0.25); +} +.ant-upload.ant-upload-drag .anticon-plus:hover { + color: rgba(0, 0, 0, 0.45); +} +.ant-upload.ant-upload-drag:hover .anticon-plus { + color: rgba(0, 0, 0, 0.45); +} +.ant-upload-list { + color: rgba(0, 0, 0, 0.65); +} +.ant-upload-list-item-info .anticon-loading, +.ant-upload-list-item-info .anticon-paper-clip { + color: rgba(0, 0, 0, 0.45); +} +.ant-upload-list-item .anticon-close { + color: rgba(0, 0, 0, 0.45); +} +.ant-upload-list-item .anticon-close:hover { + color: rgba(0, 0, 0, 0.65); +} +.ant-upload-list-item:hover .ant-upload-list-item-info { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} +.ant-upload-list-item-error, +.ant-upload-list-item-error .anticon-paper-clip, +.ant-upload-list-item-error .ant-upload-list-item-name { + color: #f5222d; +} +.ant-upload-list-item-error .anticon-close { + color: #f5222d !important; +} +.ant-upload-list-picture .ant-upload-list-item, +.ant-upload-list-picture-card .ant-upload-list-item { + border-radius: 4px; + border: 1px solid #d9d9d9; +} +.ant-upload-list-picture .ant-upload-list-item:hover, +.ant-upload-list-picture-card .ant-upload-list-item:hover { + background: transparent; +} +.ant-upload-list-picture .ant-upload-list-item-error, +.ant-upload-list-picture-card .ant-upload-list-item-error { + border-color: #f5222d; +} +.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, +.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info { + background: transparent; +} +.ant-upload-list-picture .ant-upload-list-item-uploading, +.ant-upload-list-picture-card .ant-upload-list-item-uploading { + border-style: dashed; +} +.ant-upload-list-picture .ant-upload-list-item-icon, +.ant-upload-list-picture-card .ant-upload-list-item-icon { + color: rgba(0, 0, 0, 0.25); +} +.ant-upload-list-picture .ant-upload-list-item-thumbnail.anticon:before, +.ant-upload-list-picture-card .ant-upload-list-item-thumbnail.anticon:before { + color: rgba(0, 0, 0, 0.45); +} +.ant-upload-list-picture-card .ant-upload-list-item-info:before { + background-color: rgba(0, 0, 0, 0.5); +} +.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o, +.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete { + color: rgba(255, 255, 255, 0.85); +} +.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover, +.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover { + color: #fff; +} +.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item { + background-color: #fafafa; +} +.ant-upload-list-picture-card .ant-upload-list-item-uploading-text { + color: rgba(0, 0, 0, 0.45); +} +.ant-upload-list .ant-upload-success-icon { + color: #52c41a; +} + +.drawer .drawer-content { + background: #001529; +} + +.ant-list-item-meta .taobao { + color: #ff4000; + border-radius: 4px; +} +.ant-list-item-meta .dingding { + background-color: #2eabff; + color: #fff; + border-radius: 4px; +} +.ant-list-item-meta .alipay { + color: #2eabff; + border-radius: 4px; +} +font.strong { + color: #52c41a; +} +font.medium { + color: #faad14; +} +font.weak { + color: #f5222d; +} + + +// begin -------- JAreaLinkage 三级联动样式 -------------- +.cascader-menu-list .cascader-menu-option.hover, +.cascader-menu-list .cascader-menu-option:hover { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} + +.area-selectable-list .area-select-option.hover { + background-color: color(~`colorPalette("@{primary-color}", 1)`); +} + +.area-select:hover { + border-color: @primary-color; +} + +.area-select:active { + box-shadow: 0 0 0 2px color(~`colorPalette("@{primary-color}", 1)`); +} +// end -------- JAreaLinkage 三级联动样式 -------------- \ No newline at end of file diff --git a/smtERP-web/public/static/favicon.ico b/smtERP-web/public/static/favicon.ico new file mode 100644 index 0000000..baaa545 Binary files /dev/null and b/smtERP-web/public/static/favicon.ico differ diff --git a/smtERP-web/public/static/iPhone.png b/smtERP-web/public/static/iPhone.png new file mode 100644 index 0000000..9b81d5b Binary files /dev/null and b/smtERP-web/public/static/iPhone.png differ diff --git a/smtERP-web/public/static/iphone-code.png b/smtERP-web/public/static/iphone-code.png new file mode 100644 index 0000000..f83fc35 Binary files /dev/null and b/smtERP-web/public/static/iphone-code.png differ diff --git a/smtERP-web/public/static/less.min.js b/smtERP-web/public/static/less.min.js new file mode 100644 index 0000000..295eaec --- /dev/null +++ b/smtERP-web/public/static/less.min.js @@ -0,0 +1,18 @@ +/*! + * Less - Leaner CSS v3.8.1 + * http://lesscss.org + * + * Copyright (c) 2009-2018, Alexis Sellier + * Licensed under the Apache-2.0 License. + * + */ + + /** * @license Apache-2.0 + */ + +!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.less=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g0||b.isFileProtocol?"development":"production");var c=/!dumpLineNumbers:(comments|mediaquery|all)/.exec(a.location.hash);c&&(b.dumpLineNumbers=c[1]),void 0===b.useFileCache&&(b.useFileCache=!0),void 0===b.onReady&&(b.onReady=!0),b.relativeUrls&&(b.rewriteUrls="all")}},{"./browser":3,"./utils":11}],2:[function(a,b,c){function d(a){a.filename&&console.warn(a),e.async||h.removeChild(i)}a("promise/polyfill");var e=a("../less/default-options")();if(window.less)for(key in window.less)window.less.hasOwnProperty(key)&&(e[key]=window.less[key]);a("./add-default-options")(window,e),e.plugins=e.plugins||[],window.LESS_PLUGINS&&(e.plugins=e.plugins.concat(window.LESS_PLUGINS));var f=b.exports=a("./index")(window,e);window.less=f;var g,h,i;e.onReady&&(/!watch/.test(window.location.hash)&&f.watch(),e.async||(g="body { display: none !important }",h=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style"),i.type="text/css",i.styleSheet?i.styleSheet.cssText=g:i.appendChild(document.createTextNode(g)),h.appendChild(i)),f.registerStylesheetsImmediately(),f.pageLoadFinished=f.refresh("development"===f.env).then(d,d))},{"../less/default-options":17,"./add-default-options":1,"./index":8,"promise/polyfill":107}],3:[function(a,b,c){var d=a("./utils");b.exports={createCSS:function(a,b,c){var e=c.href||"",f="less:"+(c.title||d.extractId(e)),g=a.getElementById(f),h=!1,i=a.createElement("style");i.setAttribute("type","text/css"),c.media&&i.setAttribute("media",c.media),i.id=f,i.styleSheet||(i.appendChild(a.createTextNode(b)),h=null!==g&&g.childNodes.length>0&&i.childNodes.length>0&&g.firstChild.nodeValue===i.firstChild.nodeValue);var j=a.getElementsByTagName("head")[0];if(null===g||h===!1){var k=c&&c.nextSibling||null;k?k.parentNode.insertBefore(i,k):j.appendChild(i)}if(g&&h===!1&&g.parentNode.removeChild(g),i.styleSheet)try{i.styleSheet.cssText=b}catch(l){throw new Error("Couldn't reassign styleSheet.cssText.")}},currentScript:function(a){var b=a.document;return b.currentScript||function(){var a=b.getElementsByTagName("script");return a[a.length-1]}()}}},{"./utils":11}],4:[function(a,b,c){b.exports=function(a,b,c){var d=null;if("development"!==b.env)try{d="undefined"==typeof a.localStorage?null:a.localStorage}catch(e){}return{setCSS:function(a,b,e,f){if(d){c.info("saving "+a+" to cache.");try{d.setItem(a,f),d.setItem(a+":timestamp",b),e&&d.setItem(a+":vars",JSON.stringify(e))}catch(g){c.error('failed to save "'+a+'" to local storage for caching.')}}},getCSS:function(a,b,c){var e=d&&d.getItem(a),f=d&&d.getItem(a+":timestamp"),g=d&&d.getItem(a+":vars");if(c=c||{},g=g||"{}",f&&b.lastModified&&new Date(b.lastModified).valueOf()===new Date(f).valueOf()&&JSON.stringify(c)===g)return e}}}},{}],5:[function(a,b,c){var d=a("./utils"),e=a("./browser");b.exports=function(a,b,c){function f(b,f){var g,h,i="less-error-message:"+d.extractId(f||""),j='
  • {content}
  • ',k=a.document.createElement("div"),l=[],m=b.filename||f,n=m.match(/([^\/]+(\?.*)?)$/)[1];k.id=i,k.className="less-error-message",h="

    "+(b.type||"Syntax")+"Error: "+(b.message||"There is an error in your .less file")+'

    in '+n+" ";var o=function(a,b,c){void 0!==a.extract[b]&&l.push(j.replace(/\{line\}/,(parseInt(a.line,10)||0)+(b-1)).replace(/\{class\}/,c).replace(/\{content\}/,a.extract[b]))};b.line&&(o(b,0,""),o(b,1,"line"),o(b,2,""),h+="on line "+b.line+", column "+(b.column+1)+":

      "+l.join("")+"
    "),b.stack&&(b.extract||c.logLevel>=4)&&(h+="
    Stack Trace
    "+b.stack.split("\n").slice(1).join("
    ")),k.innerHTML=h,e.createCSS(a.document,[".less-error-message ul, .less-error-message li {","list-style-type: none;","margin-right: 15px;","padding: 4px 0;","margin: 0;","}",".less-error-message label {","font-size: 12px;","margin-right: 15px;","padding: 4px 0;","color: #cc7777;","}",".less-error-message pre {","color: #dd6666;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.line {","color: #ff0000;","}",".less-error-message h3 {","font-size: 20px;","font-weight: bold;","padding: 15px 0 5px 0;","margin: 0;","}",".less-error-message a {","color: #10a","}",".less-error-message .error {","color: red;","font-weight: bold;","padding-bottom: 2px;","border-bottom: 1px dashed red;","}"].join("\n"),{title:"error-message"}),k.style.cssText=["font-family: Arial, sans-serif","border: 1px solid #e00","background-color: #eee","border-radius: 5px","-webkit-border-radius: 5px","-moz-border-radius: 5px","color: #e00","padding: 15px","margin-bottom: 15px"].join(";"),"development"===c.env&&(g=setInterval(function(){var b=a.document,c=b.body;c&&(b.getElementById(i)?c.replaceChild(k,b.getElementById(i)):c.insertBefore(k,c.firstChild),clearInterval(g))},10))}function g(b){var c=a.document.getElementById("less-error-message:"+d.extractId(b));c&&c.parentNode.removeChild(c)}function h(a){}function i(a){c.errorReporting&&"html"!==c.errorReporting?"console"===c.errorReporting?h(a):"function"==typeof c.errorReporting&&c.errorReporting("remove",a):g(a)}function j(a,d){var e="{line} {content}",f=a.filename||d,g=[],h=(a.type||"Syntax")+"Error: "+(a.message||"There is an error in your .less file")+" in "+f,i=function(a,b,c){void 0!==a.extract[b]&&g.push(e.replace(/\{line\}/,(parseInt(a.line,10)||0)+(b-1)).replace(/\{class\}/,c).replace(/\{content\}/,a.extract[b]))};a.line&&(i(a,0,""),i(a,1,"line"),i(a,2,""),h+=" on line "+a.line+", column "+(a.column+1)+":\n"+g.join("\n")),a.stack&&(a.extract||c.logLevel>=4)&&(h+="\nStack Trace\n"+a.stack),b.logger.error(h)}function k(a,b){c.errorReporting&&"html"!==c.errorReporting?"console"===c.errorReporting?j(a,b):"function"==typeof c.errorReporting&&c.errorReporting("add",a,b):f(a,b)}return{add:k,remove:i}}},{"./browser":3,"./utils":11}],6:[function(a,b,c){b.exports=function(b,c){var d=a("../less/environment/abstract-file-manager.js"),e={},f=function(){};return f.prototype=new d,f.prototype.alwaysMakePathsAbsolute=function(){return!0},f.prototype.join=function(a,b){return a?this.extractUrlParts(b,a).path:b},f.prototype.doXHR=function(a,d,e,f){function g(b,c,d){b.status>=200&&b.status<300?c(b.responseText,b.getResponseHeader("Last-Modified")):"function"==typeof d&&d(b.status,a)}var h=new XMLHttpRequest,i=!b.isFileProtocol||b.fileAsync;"function"==typeof h.overrideMimeType&&h.overrideMimeType("text/css"),c.debug("XHR: Getting '"+a+"'"),h.open("GET",a,i),h.setRequestHeader("Accept",d||"text/x-less, text/css; q=0.9, */*; q=0.5"),h.send(null),b.isFileProtocol&&!b.fileAsync?0===h.status||h.status>=200&&h.status<300?e(h.responseText):f(h.status,a):i?h.onreadystatechange=function(){4==h.readyState&&g(h,e,f)}:g(h,e,f)},f.prototype.supports=function(a,b,c,d){return!0},f.prototype.clearFileCache=function(){e={}},f.prototype.loadFile=function(a,b,c,d){b&&!this.isPathAbsolute(a)&&(a=b+a),a=c.ext?this.tryAppendExtension(a,c.ext):a,c=c||{};var f=this.extractUrlParts(a,window.location.href),g=f.url,h=this;return new Promise(function(a,b){if(c.useFileCache&&e[g])try{var d=e[g];return a({contents:d,filename:g,webInfo:{lastModified:new Date}})}catch(f){return b({filename:g,message:"Error loading file "+g+" error was "+f.message})}h.doXHR(g,c.mime,function(b,c){e[g]=b,a({contents:b,filename:g,webInfo:{lastModified:c}})},function(a,c){b({type:"File",message:"'"+c+"' wasn't found ("+a+")",href:g})})})},f}},{"../less/environment/abstract-file-manager.js":18}],7:[function(a,b,c){b.exports=function(){function b(){throw{type:"Runtime",message:"Image size functions are not supported in browser version of less"}}var c=a("./../less/functions/function-registry"),d={"image-size":function(a){return b(this,a),-1},"image-width":function(a){return b(this,a),-1},"image-height":function(a){return b(this,a),-1}};c.addMultiple(d)}},{"./../less/functions/function-registry":27}],8:[function(a,b,c){var d=a("./utils").addDataAttr,e=a("./browser");b.exports=function(b,c){function f(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function g(a,b){var c=Array.prototype.slice.call(arguments,2);return function(){var d=c.concat(Array.prototype.slice.call(arguments,0));return a.apply(b,d)}}function h(a){for(var b,d=l.getElementsByTagName("style"),e=0;e=c&&console.log(a)},info:function(a){b.logLevel>=d&&console.log(a)},warn:function(a){b.logLevel>=e&&console.warn(a)},error:function(a){b.logLevel>=f&&console.error(a)}}]);for(var g=0;gg.Math.PARENS_DIVISION)||this.parensStack&&this.parensStack.length))},f.Eval.prototype.pathRequiresRewrite=function(a){var b=this.rewriteUrls===g.RewriteUrls.LOCAL?e:d;return b(a)},f.Eval.prototype.rewritePath=function(a,b){var c;return b=b||"",c=this.normalizePath(b+a),e(a)&&d(b)&&e(c)===!1&&(c="./"+c),c},f.Eval.prototype.normalizePath=function(a){var b,c=a.split("/").reverse();for(a=[];0!==c.length;)switch(b=c.pop()){case".":break;case"..":0===a.length||".."===a[a.length-1]?a.push(b):a.pop();break;default:a.push(b)}return a.join("/")}},{"./constants":12}],14:[function(a,b,c){b.exports={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{}],15:[function(a,b,c){b.exports={colors:a("./colors"),unitConversions:a("./unit-conversions")}},{"./colors":14,"./unit-conversions":16}],16:[function(a,b,c){b.exports={length:{m:1,cm:.01,mm:.001,"in":.0254,px:.0254/96,pt:.0254/72,pc:.0254/72*12},duration:{s:1,ms:.001},angle:{rad:1/(2*Math.PI),deg:1/360,grad:.0025,turn:1}}},{}],17:[function(a,b,c){b.exports=function(){return{javascriptEnabled:!1,depends:!1,compress:!1,lint:!1,paths:[],color:!0,strictImports:!1,insecure:!1,rootpath:"",rewriteUrls:!1,ieCompat:!1,math:0,strictUnits:!1,globalVars:null,modifyVars:null,urlArgs:""}}},{}],18:[function(a,b,c){var d=function(){};d.prototype.getPath=function(a){var b=a.lastIndexOf("?");return b>0&&(a=a.slice(0,b)),b=a.lastIndexOf("/"),b<0&&(b=a.lastIndexOf("\\")),b<0?"":a.slice(0,b+1)},d.prototype.tryAppendExtension=function(a,b){return/(\.[a-z]*$)|([\?;].*)$/.test(a)?a:a+b},d.prototype.tryAppendLessExtension=function(a){return this.tryAppendExtension(a,".less")},d.prototype.supportsSync=function(){return!1},d.prototype.alwaysMakePathsAbsolute=function(){return!1},d.prototype.isPathAbsolute=function(a){return/^(?:[a-z-]+:|\/|\\|#)/i.test(a)},d.prototype.join=function(a,b){return a?a+b:b},d.prototype.pathDiff=function(a,b){var c,d,e,f,g=this.extractUrlParts(a),h=this.extractUrlParts(b),i="";if(g.hostPart!==h.hostPart)return"";for(d=Math.max(h.directories.length,g.directories.length),c=0;cparseInt(b[c])?-1:1;return 0},f.prototype.versionToString=function(a){for(var b="",c=0;c=0;h--){var i=g[h];if(i[f?"supportsSync":"supports"](a,b,c,e))return i}return null},e.prototype.addFileManager=function(a){this.fileManagers.push(a)},e.prototype.clearFileManagers=function(){this.fileManagers=[]},b.exports=e},{"../logger":39}],21:[function(a,b,c){var d=a("./function-registry"),e=a("../tree/anonymous"),f=a("../tree/keyword");d.addMultiple({"boolean":function(a){return a?f.True:f.False},"if":function(a,b,c){return a?b:c||new e}})},{"../tree/anonymous":50,"../tree/keyword":70,"./function-registry":27}],22:[function(a,b,c){function d(a,b,c){var d,f,g,h,i=b.alpha,j=c.alpha,k=[];g=j+i*(1-j);for(var l=0;l<3;l++)d=b.rgb[l]/255,f=c.rgb[l]/255,h=a(d,f),g&&(h=(j*f+i*(d-j*(d+f-h)))/g),k[l]=255*h;return new e(k,g)}var e=a("../tree/color"),f=a("./function-registry"),g={multiply:function(a,b){return a*b},screen:function(a,b){return a+b-a*b},overlay:function(a,b){return a*=2,a<=1?g.multiply(a,b):g.screen(a-1,b)},softlight:function(a,b){var c=1,d=a;return b>.5&&(d=1,c=a>.25?Math.sqrt(a):((16*a-12)*a+4)*a),a-(1-2*b)*d*(c-a)},hardlight:function(a,b){return g.overlay(b,a)},difference:function(a,b){return Math.abs(a-b)},exclusion:function(a,b){return a+b-2*a*b},average:function(a,b){return(a+b)/2},negation:function(a,b){return 1-Math.abs(a+b-1)}};for(var h in g)g.hasOwnProperty(h)&&(d[h]=d.bind(null,g[h]));f.addMultiple(d)},{"../tree/color":55,"./function-registry":27}],23:[function(a,b,c){function d(a){return Math.min(1,Math.max(0,a))}function e(a,b){var c=h.hsla(b.h,b.s,b.l,b.a);if(c)return c.value=a.value&&/^(rgb|hsl)/.test(a.value)?a.value:"rgb",c}function f(a){if(a instanceof i)return parseFloat(a.unit.is("%")?a.value/100:a.value);if("number"==typeof a)return a;throw{type:"Argument",message:"color functions take numbers as parameters"}}function g(a,b){return a instanceof i&&a.unit.is("%")?parseFloat(a.value*b/100):f(a)}var h,i=a("../tree/dimension"),j=a("../tree/color"),k=a("../tree/quoted"),l=a("../tree/anonymous"),m=a("./function-registry");h={rgb:function(a,b,c){var d=h.rgba(a,b,c,1);if(d)return d.value="rgb",d},rgba:function(a,b,c,d){try{if(a instanceof j)return d=b?f(b):a.alpha,new j(a.rgb,d,"rgba");var e=[a,b,c].map(function(a){return g(a,255)});return d=f(d),new j(e,d,"rgba")}catch(h){}},hsl:function(a,b,c){var d=h.hsla(a,b,c,1);if(d)return d.value="hsl",d},hsla:function(a,b,c,e){function g(a){return a=a<0?a+1:a>1?a-1:a,6*a<1?h+(i-h)*a*6:2*a<1?i:3*a<2?h+(i-h)*(2/3-a)*6:h}try{if(a instanceof j)return e=b?f(b):a.alpha,new j(a.rgb,e,"hsla");var h,i;a=f(a)%360/360,b=d(f(b)),c=d(f(c)),e=d(f(e)),i=c<=.5?c*(b+1):c+b-c*b,h=2*c-i;var k=[255*g(a+1/3),255*g(a),255*g(a-1/3)];return e=f(e),new j(k,e,"hsla")}catch(l){}},hsv:function(a,b,c){return h.hsva(a,b,c,1)},hsva:function(a,b,c,d){a=f(a)%360/360*360,b=f(b),c=f(c),d=f(d);var e,g;e=Math.floor(a/60%6),g=a/60-e;var i=[c,c*(1-b),c*(1-g*b),c*(1-(1-g)*b)],j=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return h.rgba(255*i[j[e][0]],255*i[j[e][1]],255*i[j[e][2]],d)},hue:function(a){return new i(a.toHSL().h)},saturation:function(a){return new i(100*a.toHSL().s,"%")},lightness:function(a){return new i(100*a.toHSL().l,"%")},hsvhue:function(a){return new i(a.toHSV().h)},hsvsaturation:function(a){return new i(100*a.toHSV().s,"%")},hsvvalue:function(a){return new i(100*a.toHSV().v,"%")},red:function(a){return new i(a.rgb[0])},green:function(a){return new i(a.rgb[1])},blue:function(a){return new i(a.rgb[2])},alpha:function(a){return new i(a.toHSL().a)},luma:function(a){return new i(a.luma()*a.alpha*100,"%")},luminance:function(a){var b=.2126*a.rgb[0]/255+.7152*a.rgb[1]/255+.0722*a.rgb[2]/255;return new i(b*a.alpha*100,"%")},saturate:function(a,b,c){if(!a.rgb)return null;var f=a.toHSL();return f.s+="undefined"!=typeof c&&"relative"===c.value?f.s*b.value/100:b.value/100,f.s=d(f.s),e(a,f)},desaturate:function(a,b,c){var f=a.toHSL();return f.s-="undefined"!=typeof c&&"relative"===c.value?f.s*b.value/100:b.value/100,f.s=d(f.s),e(a,f)},lighten:function(a,b,c){var f=a.toHSL();return f.l+="undefined"!=typeof c&&"relative"===c.value?f.l*b.value/100:b.value/100,f.l=d(f.l),e(a,f)},darken:function(a,b,c){var f=a.toHSL();return f.l-="undefined"!=typeof c&&"relative"===c.value?f.l*b.value/100:b.value/100,f.l=d(f.l),e(a,f)},fadein:function(a,b,c){var f=a.toHSL();return f.a+="undefined"!=typeof c&&"relative"===c.value?f.a*b.value/100:b.value/100,f.a=d(f.a),e(a,f)},fadeout:function(a,b,c){var f=a.toHSL();return f.a-="undefined"!=typeof c&&"relative"===c.value?f.a*b.value/100:b.value/100,f.a=d(f.a),e(a,f)},fade:function(a,b){var c=a.toHSL();return c.a=b.value/100,c.a=d(c.a),e(a,c)},spin:function(a,b){var c=a.toHSL(),d=(c.h+b.value)%360;return c.h=d<0?360+d:d,e(a,c)},mix:function(a,b,c){a.toHSL&&b.toHSL||(console.log(b.type),console.dir(b)),c||(c=new i(50));var d=c.value/100,e=2*d-1,f=a.toHSL().a-b.toHSL().a,g=((e*f==-1?e:(e+f)/(1+e*f))+1)/2,h=1-g,k=[a.rgb[0]*g+b.rgb[0]*h,a.rgb[1]*g+b.rgb[1]*h,a.rgb[2]*g+b.rgb[2]*h],l=a.alpha*d+b.alpha*(1-d);return new j(k,l)},greyscale:function(a){return h.desaturate(a,new i(100))},contrast:function(a,b,c,d){if(!a.rgb)return null;if("undefined"==typeof c&&(c=h.rgba(255,255,255,1)),"undefined"==typeof b&&(b=h.rgba(0,0,0,1)),b.luma()>c.luma()){var e=c;c=b,b=e}return d="undefined"==typeof d?.43:f(d),a.luma()=v&&this.context.ieCompat!==!1?(h.warn("Skipped data-uri embedding of "+j+" because its size ("+u.length+" characters) exceeds IE8-safe "+v+" characters!"),g(this,f||a)):new d(new c('"'+u+'"',u,(!1),this.index,this.currentFileInfo),this.index,this.currentFileInfo)})}},{"../logger":39,"../tree/quoted":80,"../tree/url":85,"../utils":89,"./function-registry":27}],25:[function(a,b,c){var d=a("../tree/keyword"),e=a("./function-registry"),f={eval:function(){var a=this.value_,b=this.error_;if(b)throw b;if(null!=a)return a?d.True:d.False},value:function(a){this.value_=a},error:function(a){this.error_=a},reset:function(){this.value_=this.error_=null}};e.add("default",f.eval.bind(f)),b.exports=f},{"../tree/keyword":70,"./function-registry":27}],26:[function(a,b,c){var d=a("../tree/expression"),e=function(a,b,c,d){this.name=a.toLowerCase(),this.index=c,this.context=b,this.currentFileInfo=d,this.func=b.frames[0].functionRegistry.get(this.name)};e.prototype.isValid=function(){return Boolean(this.func)},e.prototype.call=function(a){return Array.isArray(a)&&(a=a.filter(function(a){return"Comment"!==a.type}).map(function(a){if("Expression"===a.type){ +var b=a.value.filter(function(a){return"Comment"!==a.type});return 1===b.length?b[0]:new d(b)}return a})),this.func.apply(this,a)},b.exports=e},{"../tree/expression":64}],27:[function(a,b,c){function d(a){return{_data:{},add:function(a,b){a=a.toLowerCase(),this._data.hasOwnProperty(a),this._data[a]=b},addMultiple:function(a){Object.keys(a).forEach(function(b){this.add(b,a[b])}.bind(this))},get:function(b){return this._data[b]||a&&a.get(b)},getLocalFunctions:function(){return this._data},inherit:function(){return d(this)},create:function(a){return d(a)}}}b.exports=d(null)},{}],28:[function(a,b,c){b.exports=function(b){var c={functionRegistry:a("./function-registry"),functionCaller:a("./function-caller")};return a("./boolean"),a("./default"),a("./color"),a("./color-blending"),a("./data-uri")(b),a("./list"),a("./math"),a("./number"),a("./string"),a("./svg")(b),a("./types"),c}},{"./boolean":21,"./color":23,"./color-blending":22,"./data-uri":24,"./default":25,"./function-caller":26,"./function-registry":27,"./list":29,"./math":31,"./number":32,"./string":33,"./svg":34,"./types":35}],29:[function(a,b,c){var d=a("../tree/dimension"),e=a("../tree/declaration"),f=a("../tree/ruleset"),g=a("../tree/selector"),h=a("../tree/element"),i=a("./function-registry"),j=function(a){var b=Array.isArray(a.value)?a.value:Array(a);return b};i.addMultiple({_SELF:function(a){return a},extract:function(a,b){return b=b.value-1,j(a)[b]},length:function(a){return new d(j(a).length)},each:function(a,b){var c,i,j=0,k=[];i=a.value?Array.isArray(a.value)?a.value:[a.value]:a.ruleset?a.ruleset.rules:Array.isArray(a)?a:[a];var l="@value",m="@key",n="@index";return b.params?(l=b.params[0]&&b.params[0].name,m=b.params[1]&&b.params[1].name,n=b.params[2]&&b.params[2].name,b=b.rules):b=b.ruleset,i.forEach(function(a){j+=1;var i,o;a instanceof e?(i="string"==typeof a.name?a.name:a.name[0].value,o=a.value):(i=new d(j),o=a),c=b.rules.slice(0),l&&c.push(new e(l,o,(!1),(!1),this.index,this.currentFileInfo)),n&&c.push(new e(n,new d(j),(!1),(!1),this.index,this.currentFileInfo)),m&&c.push(new e(m,i,(!1),(!1),this.index,this.currentFileInfo)),k.push(new f([new g([new h("","&")])],c,b.strictImports,b.visibilityInfo()))}),new f([new g([new h("","&")])],k,b.strictImports,b.visibilityInfo()).eval(this.context)}})},{"../tree/declaration":60,"../tree/dimension":62,"../tree/element":63,"../tree/ruleset":81,"../tree/selector":82,"./function-registry":27}],30:[function(a,b,c){var d=a("../tree/dimension"),e=function(){};e._math=function(a,b,c){if(!(c instanceof d))throw{type:"Argument",message:"argument must be a number"};return null==b?b=c.unit:c=c.unify(),new d(a(parseFloat(c.value)),b)},b.exports=e},{"../tree/dimension":62}],31:[function(a,b,c){var d=a("./function-registry"),e=a("./math-helper.js"),f={ceil:null,floor:null,sqrt:null,abs:null,tan:"",sin:"",cos:"",atan:"rad",asin:"rad",acos:"rad"};for(var g in f)f.hasOwnProperty(g)&&(f[g]=e._math.bind(null,Math[g],f[g]));f.round=function(a,b){var c="undefined"==typeof b?0:b.value;return e._math(function(a){return a.toFixed(c)},null,a)},d.addMultiple(f)},{"./function-registry":27,"./math-helper.js":30}],32:[function(a,b,c){var d=a("../tree/dimension"),e=a("../tree/anonymous"),f=a("./function-registry"),g=a("./math-helper.js"),h=function(a,b){switch(b=Array.prototype.slice.call(b),b.length){case 0:throw{type:"Argument",message:"one or more arguments required"}}var c,f,g,h,i,j,k,l,m=[],n={};for(c=0;ci.value)&&(m[f]=g);else{if(void 0!==k&&j!==k)throw{type:"Argument",message:"incompatible types"};n[j]=m.length,m.push(g)}else Array.isArray(b[c].value)&&Array.prototype.push.apply(b,Array.prototype.slice.call(b[c].value));return 1==m.length?m[0]:(b=m.map(function(a){return a.toCSS(this.context)}).join(this.context.compress?",":", "),new e((a?"min":"max")+"("+b+")"))};f.addMultiple({min:function(){return h(!0,arguments)},max:function(){return h(!1,arguments)},convert:function(a,b){return a.convertTo(b.value)},pi:function(){return new d(Math.PI)},mod:function(a,b){return new d(a.value%b.value,a.unit)},pow:function(a,b){if("number"==typeof a&&"number"==typeof b)a=new d(a),b=new d(b);else if(!(a instanceof d&&b instanceof d))throw{type:"Argument",message:"arguments must be numbers"};return new d(Math.pow(a.value,b.value),a.unit)},percentage:function(a){var b=g._math(function(a){return 100*a},"%",a);return b}})},{"../tree/anonymous":50,"../tree/dimension":62,"./function-registry":27,"./math-helper.js":30}],33:[function(a,b,c){var d=a("../tree/quoted"),e=a("../tree/anonymous"),f=a("../tree/javascript"),g=a("./function-registry");g.addMultiple({e:function(a){return new e(a instanceof f?a.evaluated:a.value)},escape:function(a){return new e(encodeURI(a.value).replace(/=/g,"%3D").replace(/:/g,"%3A").replace(/#/g,"%23").replace(/;/g,"%3B").replace(/\(/g,"%28").replace(/\)/g,"%29"))},replace:function(a,b,c,e){var f=a.value;return c="Quoted"===c.type?c.value:c.toCSS(),f=f.replace(new RegExp(b.value,e?e.value:""),c),new d(a.quote||"",f,a.escaped)},"%":function(a){for(var b=Array.prototype.slice.call(arguments,1),c=a.value,e=0;e",k=0;k";return j+="',j=encodeURIComponent(j),j="data:image/svg+xml,"+j,new g(new f("'"+j+"'",j,(!1),this.index,this.currentFileInfo),this.index,this.currentFileInfo)})}},{"../tree/color":55,"../tree/dimension":62,"../tree/expression":64,"../tree/quoted":80,"../tree/url":85,"./function-registry":27}],35:[function(a,b,c){var d=a("../tree/keyword"),e=a("../tree/detached-ruleset"),f=a("../tree/dimension"),g=a("../tree/color"),h=a("../tree/quoted"),i=a("../tree/anonymous"),j=a("../tree/url"),k=a("../tree/operation"),l=a("./function-registry"),m=function(a,b){return a instanceof b?d.True:d.False},n=function(a,b){if(void 0===b)throw{type:"Argument",message:"missing the required second argument to isunit."};if(b="string"==typeof b.value?b.value:b,"string"!=typeof b)throw{type:"Argument",message:"Second argument to isunit should be a unit or a string."};return a instanceof f&&a.unit.is(b)?d.True:d.False};l.addMultiple({isruleset:function(a){return m(a,e)},iscolor:function(a){return m(a,g)},isnumber:function(a){return m(a,f)},isstring:function(a){return m(a,h)},iskeyword:function(a){return m(a,d)},isurl:function(a){return m(a,j)},ispixel:function(a){return n(a,"px")},ispercentage:function(a){return n(a,"%")},isem:function(a){return n(a,"em")},isunit:n,unit:function(a,b){if(!(a instanceof f))throw{type:"Argument",message:"the first argument to unit must be a number"+(a instanceof k?". Have you forgotten parenthesis?":"")};return b=b?b instanceof d?b.value:b.toCSS():"",new f(a.value,b)},"get-unit":function(a){return new i(a.unit)}})},{"../tree/anonymous":50,"../tree/color":55,"../tree/detached-ruleset":61,"../tree/dimension":62,"../tree/keyword":70,"../tree/operation":77,"../tree/quoted":80,"../tree/url":85,"./function-registry":27}],36:[function(a,b,c){var d=a("./contexts"),e=a("./parser/parser"),f=a("./less-error"),g=a("./utils"),h=("undefined"==typeof Promise?a("promise"):Promise,a("./logger"));b.exports=function(a){var b=function(a,b,c){this.less=a,this.rootFilename=c.filename,this.paths=b.paths||[],this.contents={},this.contentsIgnoredChars={},this.mime=b.mime,this.error=null,this.context=b,this.queue=[],this.files={}};return b.prototype.push=function(b,c,i,j,k){var l=this,m=this.context.pluginManager.Loader;this.queue.push(b);var n=function(a,c,d){l.queue.splice(l.queue.indexOf(b),1);var e=d===l.rootFilename;j.optional&&a?(k(null,{rules:[]},!1,null),h.info("The file "+d+" was skipped because it was not found and the import was marked optional.")):(l.files[d]||j.inline||(l.files[d]={root:c,options:j}),a&&!l.error&&(l.error=a),k(a,c,e,d))},o={rewriteUrls:this.context.rewriteUrls,entryPath:i.entryPath,rootpath:i.rootpath,rootFilename:i.rootFilename},p=a.getFileManager(b,i.currentDirectory,this.context,a);if(!p)return void n({message:"Could not find a file-manager for "+b});var q,r=function(a){var b,c=a.filename,g=a.contents.replace(/^\uFEFF/,"");o.currentDirectory=p.getPath(c),o.rewriteUrls&&(o.rootpath=p.join(l.context.rootpath||"",p.pathDiff(o.currentDirectory,o.entryPath)),!p.isPathAbsolute(o.rootpath)&&p.alwaysMakePathsAbsolute()&&(o.rootpath=p.join(o.entryPath,o.rootpath))),o.filename=c;var h=new d.Parse(l.context);h.processImports=!1,l.contents[c]=g,(i.reference||j.reference)&&(o.reference=!0),j.isPlugin?(b=m.evalPlugin(g,h,l,j.pluginArgs,o),b instanceof f?n(b,null,c):n(null,b,c)):j.inline?n(null,g,c):!l.files[c]||l.files[c].options.multiple||j.multiple?new e(h,l,o).parse(g,function(a,b){n(a,b,c)}):n(null,l.files[c].root,c)},s=g.clone(this.context);c&&(s.ext=j.isPlugin?".js":".less"),q=j.isPlugin?m.loadPlugin(b,i.currentDirectory,s,a,p):p.loadFile(b,i.currentDirectory,s,a,function(a,b){a?n(a):r(b)}),q&&q.then(r,n)},b}},{"./contexts":13,"./less-error":38,"./logger":39,"./parser/parser":44,"./utils":89,promise:void 0}],37:[function(a,b,c){b.exports=function(b,c){var d,e,f,g,h,i,j={version:[3,8,1],data:a("./data"),tree:a("./tree"),Environment:h=a("./environment/environment"),AbstractFileManager:a("./environment/abstract-file-manager"),AbstractPluginLoader:a("./environment/abstract-plugin-loader"),environment:b=new h(b,c),visitors:a("./visitors"),Parser:a("./parser/parser"),functions:a("./functions")(b),contexts:a("./contexts"),SourceMapOutput:d=a("./source-map-output")(b),SourceMapBuilder:e=a("./source-map-builder")(d,b),ParseTree:f=a("./parse-tree")(e),ImportManager:g=a("./import-manager")(b),render:a("./render")(b,f,g),parse:a("./parse")(b,f,g),LessError:a("./less-error"),transformTree:a("./transform-tree"),utils:a("./utils"),PluginManager:a("./plugin-manager"),logger:a("./logger")},k=function(a){return function(){var b=Object.create(a.prototype);return a.apply(b,Array.prototype.slice.call(arguments,0)),b}},l=Object.create(j);for(var m in j.tree)if(i=j.tree[m],"function"==typeof i)l[m.toLowerCase()]=k(i);else{l[m]=Object.create(null);for(var n in i)l[m][n.toLowerCase()]=k(i[n])}return l}},{"./contexts":13,"./data":15,"./environment/abstract-file-manager":18,"./environment/abstract-plugin-loader":19,"./environment/environment":20,"./functions":28,"./import-manager":36,"./less-error":38,"./logger":39,"./parse":41,"./parse-tree":40,"./parser/parser":44,"./plugin-manager":45,"./render":46,"./source-map-builder":47,"./source-map-output":48,"./transform-tree":49,"./tree":67,"./utils":89,"./visitors":93}],38:[function(a,b,c){var d=a("./utils"),e=b.exports=function(a,b,c){Error.call(this);var e=a.filename||c;if(this.message=a.message,this.stack=a.stack,b&&e){var f=b.contents[e],g=d.getLocation(a.index,f),h=g.line,i=g.column,j=a.call&&d.getLocation(a.call,f).line,k=f?f.split("\n"):"";if(this.type=a.type||"Syntax",this.filename=e,this.index=a.index,this.line="number"==typeof h?h+1:null,this.column=i,!this.line&&this.stack){var l=this.stack.match(/(|Function):(\d+):(\d+)/);l&&(l[2]&&(this.line=parseInt(l[2])-2),l[3]&&(this.column=parseInt(l[3])))}this.callLine=j+1,this.callExtract=k[j],this.extract=[k[this.line-2],k[this.line-1],k[this.line]]}};if("undefined"==typeof Object.create){var f=function(){};f.prototype=Error.prototype,e.prototype=new f}else e.prototype=Object.create(Error.prototype);e.prototype.constructor=e,e.prototype.toString=function(a){a=a||{};var b="",c=this.extract||[],d=[],e=function(a){return a};if(a.stylize){var f=typeof a.stylize;if("function"!==f)throw Error("options.stylize should be a function, got a "+f+"!");e=a.stylize}if(null!==this.line){if("string"==typeof c[0]&&d.push(e(this.line-1+" "+c[0],"grey")),"string"==typeof c[1]){var g=this.line+" ";c[1]&&(g+=c[1].slice(0,this.column)+e(e(e(c[1].substr(this.column,1),"bold")+c[1].slice(this.column+1),"red"),"inverse")),d.push(g)}"string"==typeof c[2]&&d.push(e(this.line+1+" "+c[2],"grey")),d=d.join("\n")+e("","reset")+"\n"}return b+=e(this.type+"Error: "+this.message,"red"),this.filename&&(b+=e(" in ","red")+this.filename),this.line&&(b+=e(" on line "+this.line+", column "+(this.column+1)+":","grey")),b+="\n"+d,this.callLine&&(b+=e("from ","red")+(this.filename||"")+"/n",b+=e(this.callLine,"grey")+" "+this.callExtract+"/n"),b}},{"./utils":89}],39:[function(a,b,c){b.exports={error:function(a){this._fireEvent("error",a)},warn:function(a){this._fireEvent("warn",a)},info:function(a){this._fireEvent("info",a)},debug:function(a){this._fireEvent("debug",a)},addListener:function(a){this._listeners.push(a)},removeListener:function(a){for(var b=0;b=97&&j<=122||j<34))switch(j){case 40:o++,e=h;continue;case 41:if(--o<0)return b("missing opening `(`",h);continue;case 59:o||c();continue;case 123:n++,d=h;continue;case 125:if(--n<0)return b("missing opening `{`",h);n||o||c();continue;case 92:if(h96)){if(k==j){l=1;break}if(92==k){if(h==m-1)return b("unescaped `\\`",h);h++}}if(l)continue;return b("unmatched `"+String.fromCharCode(j)+"`",i);case 47:if(o||h==m-1)continue;if(k=a.charCodeAt(h+1),47==k)for(h+=2;hd&&g>f?b("missing closing `}` or `*/`",d):b("missing closing `}`",d):0!==o?b("missing closing `)`",e):(c(!0),p)}},{}],43:[function(a,b,c){var d=a("./chunker");b.exports=function(){function a(d){for(var e,f,j,p=k.i,q=c,s=k.i-i,t=k.i+h.length-s,u=k.i+=d,v=b;k.i=0){j={index:k.i,text:v.substr(k.i,x+2-k.i),isLineComment:!1},k.i+=j.text.length-1,k.commentStore.push(j);continue}}break}if(e!==l&&e!==n&&e!==m&&e!==o)break}if(h=h.slice(d+k.i-u+s),i=k.i,!h.length){if(ce||k.i===e&&a&&!f)&&(e=k.i,f=a);var b=j.pop();h=b.current,i=k.i=b.i,c=b.j},k.forget=function(){j.pop()},k.isWhitespace=function(a){var c=k.i+(a||0),d=b.charCodeAt(c);return d===l||d===o||d===m||d===n},k.$re=function(b){k.i>i&&(h=h.slice(k.i-i),i=k.i);var c=b.exec(h);return c?(a(c[0].length),"string"==typeof c?c:1===c.length?c[0]:c):null},k.$char=function(c){return b.charAt(k.i)!==c?null:(a(1),c)},k.$str=function(c){for(var d=c.length,e=0;el&&(p=!1)}q=r}while(p);return f?f:null},k.autoCommentAbsorb=!0,k.commentStore=[],k.finished=!1,k.peek=function(a){if("string"==typeof a){for(var c=0;cs||a=b.length;return k.i=b.length-1,furthestChar:b[k.i]}},k}},{"./chunker":42}],44:[function(a,b,c){var d=a("../less-error"),e=a("../tree"),f=a("../visitors"),g=a("./parser-input"),h=a("../utils"),i=a("../functions/function-registry"),j=function k(a,b,c){function j(a,e){throw new d({index:q.i,filename:c.filename,type:e||"Syntax",message:a},b)}function l(a,b){var c=a instanceof Function?a.call(p):q.$re(a);return c?c:void j(b||("string"==typeof a?"expected '"+a+"' got '"+q.currentChar()+"'":"unexpected token"))}function m(a,b){return q.$char(a)?a:void j(b||"expected '"+a+"' got '"+q.currentChar()+"'")}function n(a){var b=c.filename;return{lineNumber:h.getLocation(a,q.getInput()).line+1,fileName:b}}function o(a,c,e,f,g){var h,i=[],j=q;try{j.start(a,!1,function(a,b){g({message:a,index:b+e})});for(var k,l,m=0;k=c[m];m++)l=j.i,h=p[k](),h?(h._index=l+e,h._fileInfo=f,i.push(h)):i.push(null);var n=j.end();n.isFinished?g(null,i):g(!0,null)}catch(o){throw new d({index:o.index+e,message:o.message},b,f.filename)}}var p,q=g();return{parserInput:q,imports:b,fileInfo:c,parseNode:o,parse:function(g,h,j){var l,m,n,o,p=null,r="";if(m=j&&j.globalVars?k.serializeVars(j.globalVars)+"\n":"",n=j&&j.modifyVars?"\n"+k.serializeVars(j.modifyVars):"",a.pluginManager)for(var s=a.pluginManager.getPreProcessors(),t=0;t")}return a},args:function(a){var b,c,d,f,g,h,i,k=p.entities,l={args:null,variadic:!1},m=[],n=[],o=[],r=!0;for(q.save();;){if(a)h=p.detachedRuleset()||p.expression();else{if(q.commentStore.length=0,q.$str("...")){l.variadic=!0,q.$char(";")&&!b&&(b=!0),(b?n:o).push({variadic:!0});break}h=k.variable()||k.property()||k.literal()||k.keyword()||this.call(!0)}if(!h||!r)break;f=null,h.throwAwayComments&&h.throwAwayComments(),g=h;var s=null;if(a?h.value&&1==h.value.length&&(s=h.value[0]):s=h,s&&(s instanceof e.Variable||s instanceof e.Property))if(q.$char(":")){if(m.length>0&&(b&&j("Cannot mix ; and , as delimiter types"),c=!0),g=p.detachedRuleset()||p.expression(),!g){if(!a)return q.restore(),l.args=[],l;j("could not understand value for named argument")}f=d=s.name}else if(q.$str("...")){if(!a){l.variadic=!0,q.$char(";")&&!b&&(b=!0),(b?n:o).push({name:h.name,variadic:!0});break}i=!0}else a||(d=f=s.name,g=null);g&&m.push(g),o.push({name:f,value:g,expand:i}),q.$char(",")?r=!0:(r=";"===q.$char(";"),(r||b)&&(c&&j("Cannot mix ; and , as delimiter types"),b=!0,m.length>1&&(g=new e.Value(m)),n.push({name:d,value:g,expand:i}),d=null,m=[],c=!1))}return q.forget(),l.args=b?n:o,l},definition:function(){var a,b,c,d,f=[],g=!1;if(!("."!==q.currentChar()&&"#"!==q.currentChar()||q.peek(/^[^{]*\}/)))if(q.save(),b=q.$re(/^([#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)\s*\(/)){a=b[1];var h=this.args(!1);if(f=h.args,g=h.variadic,!q.$char(")"))return void q.restore("Missing closing ')'");if(q.commentStore.length=0,q.$str("when")&&(d=l(p.conditions,"expected condition")),c=p.block())return q.forget(),new e.mixin.Definition(a,f,c,d,g);q.restore()}else q.forget()},ruleLookups:function(){var a,b,c=[];if("["===q.currentChar()){for(;;){if(q.save(),b=null,a=this.lookupValue(),!a&&""!==a){q.restore();break}c.push(a),q.forget()}return c.length>0?c:void 0}},lookupValue:function(){if(q.save(),!q.$char("["))return void q.restore();var a=q.$re(/^(?:[@$]{0,2})[_a-zA-Z0-9-]*/);return q.$char("]")&&(a||""===a)?(q.forget(),a):void q.restore()}},entity:function(){var a=this.entities;return this.comment()||a.literal()||a.variable()||a.url()||a.property()||a.call()||a.keyword()||this.mixin.call(!0)||a.javascript()},end:function(){return q.$char(";")||q.peek("}")},ieAlpha:function(){var a;if(q.$re(/^opacity=/i))return a=q.$re(/^\d+/),a||(a=l(p.entities.variable,"Could not parse alpha"),a="@{"+a.name.slice(1)+"}"),m(")"),new e.Quoted("","alpha(opacity="+a+")")},element:function(){var a,b,d,f=q.i;if(b=this.combinator(),a=q.$re(/^(?:\d+\.\d+|\d+)%/)||q.$re(/^(?:[.#]?|:*)(?:[\w-]|[^\x00-\x9f]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/)||q.$char("*")||q.$char("&")||this.attribute()||q.$re(/^\([^&()@]+\)/)||q.$re(/^[\.#:](?=@)/)||this.entities.variableCurly(), +a||(q.save(),q.$char("(")?(d=this.selector(!1))&&q.$char(")")?(a=new e.Paren(d),q.forget()):q.restore("Missing closing ')'"):q.forget()),a)return new e.Element(b,a,a instanceof e.Variable,f,c)},combinator:function(){var a=q.currentChar();if("/"===a){q.save();var b=q.$re(/^\/[a-z]+\//i);if(b)return q.forget(),new e.Combinator(b);q.restore()}if(">"===a||"+"===a||"~"===a||"|"===a||"^"===a){for(q.i++,"^"===a&&"^"===q.currentChar()&&(a="^^",q.i++);q.isWhitespace();)q.i++;return new e.Combinator(a)}return new e.Combinator(q.isWhitespace(-1)?" ":null)},selector:function(a){var b,d,f,g,h,i,k,m=q.i;for(a=a!==!1;(a&&(d=this.extend())||a&&(i=q.$str("when"))||(g=this.element()))&&(i?k=l(this.conditions,"expected condition"):k?j("CSS guard can only be used at the end of selector"):d?h=h?h.concat(d):d:(h&&j("Extend can only be used at the end of selector"),f=q.currentChar(),b?b.push(g):b=[g],g=null),"{"!==f&&"}"!==f&&";"!==f&&","!==f&&")"!==f););return b?new e.Selector(b,h,k,m,c):void(h&&j("Extend must be used to extend a selector, it cannot be used on its own"))},selectors:function(){for(var a,b;;){if(a=this.selector(),!a)break;if(b?b.push(a):b=[a],q.commentStore.length=0,a.condition&&b.length>1&&j("Guards are only currently allowed on a single selector."),!q.$char(","))break;a.condition&&j("Guards are only currently allowed on a single selector."),q.commentStore.length=0}return b},attribute:function(){if(q.$char("[")){var a,b,c,d=this.entities;return(a=d.variableCurly())||(a=l(/^(?:[_A-Za-z0-9-\*]*\|)?(?:[_A-Za-z0-9-]|\\.)+/)),c=q.$re(/^[|~*$^]?=/),c&&(b=d.quoted()||q.$re(/^[0-9]+%/)||q.$re(/^[\w-]+/)||d.variableCurly()),m("]"),new e.Attribute(a,c,b)}},block:function(){var a;if(q.$char("{")&&(a=this.primary())&&q.$char("}"))return a},blockRuleset:function(){var a=this.block();return a&&(a=new e.Ruleset(null,a)),a},detachedRuleset:function(){var a,b,c;if(q.save(),q.$re(/^[.#]\(/)&&(a=this.mixin.args(!1),b=a.args,c=a.variadic,!q.$char(")")))return void q.restore();var d=this.blockRuleset();return d?(q.forget(),b?new e.mixin.Definition(null,b,d,null,c):new e.DetachedRuleset(d)):void q.restore()},ruleset:function(){var b,c,d;if(q.save(),a.dumpLineNumbers&&(d=n(q.i)),b=this.selectors(),b&&(c=this.block())){q.forget();var f=new e.Ruleset(b,c,a.strictImports);return a.dumpLineNumbers&&(f.debugInfo=d),f}q.restore()},declaration:function(){var a,b,d,f,g,h,i=q.i,j=q.currentChar();if("."!==j&&"#"!==j&&"&"!==j&&":"!==j)if(q.save(),a=this.variable()||this.ruleProperty()){if(h="string"==typeof a,h&&(b=this.detachedRuleset(),b&&(d=!0)),q.commentStore.length=0,!b){if(g=!h&&a.length>1&&a.pop().value,b=a[0].value&&"--"===a[0].value.slice(0,2)?this.permissiveValue():this.anonymousValue())return q.forget(),new e.Declaration(a,b,(!1),g,i,c);b||(b=this.value()),b?f=this.important():h&&(b=this.permissiveValue())}if(b&&(this.end()||d))return q.forget(),new e.Declaration(a,b,f,g,i,c);q.restore()}else q.restore()},anonymousValue:function(){var a=q.i,b=q.$re(/^([^.#@\$+\/'"*`(;{}-]*);/);if(b)return new e.Anonymous(b[1],a)},permissiveValue:function(a){function b(){var a=q.currentChar();return"string"==typeof i?a===i:i.test(a)}var d,f,g,h,i=a||";",k=q.i,l=[];if(!b()){h=[];do f=this.comment(),f?h.push(f):(f=this.entity(),f&&h.push(f));while(f);if(g=b(),h.length>0){if(h=new e.Expression(h),g)return h;l.push(h)," "===q.prevChar()&&l.push(new e.Anonymous(" ",k))}if(q.save(),h=q.$parseUntil(i)){if("string"==typeof h&&j("Expected '"+h+"'","Parse"),1===h.length&&" "===h[0])return q.forget(),new e.Anonymous("",k);var m;for(d=0;d0)return new e.Expression(f)},mediaFeatures:function(){var a,b=this.entities,c=[];do if(a=this.mediaFeature()){if(c.push(a),!q.$char(","))break}else if(a=b.variable()||b.mixinLookup(),a&&(c.push(a),!q.$char(",")))break;while(a);return c.length>0?c:null},media:function(){var b,d,f,g,h=q.i;return a.dumpLineNumbers&&(g=n(h)),q.save(),q.$str("@media")?(b=this.mediaFeatures(),d=this.block(),d||j("media definitions require block statements after any features"),q.forget(),f=new e.Media(d,b,h,c),a.dumpLineNumbers&&(f.debugInfo=g),f):void q.restore()},plugin:function(){var a,b,d,f=q.i,g=q.$re(/^@plugin?\s+/);if(g){if(b=this.pluginArgs(),d=b?{pluginArgs:b,isPlugin:!0}:{isPlugin:!0},a=this.entities.quoted()||this.entities.url())return q.$char(";")||(q.i=f,j("missing semi-colon on @plugin")),new e.Import(a,null,d,f,c);q.i=f,j("malformed @plugin statement")}},pluginArgs:function(){if(q.save(),!q.$char("("))return q.restore(),null;var a=q.$re(/^\s*([^\);]+)\)\s*/);return a[1]?(q.forget(),a[1].trim()):(q.restore(),null)},atrule:function(){var b,d,f,g,h,i,k,l=q.i,m=!0,o=!0;if("@"===q.currentChar()){if(d=this["import"]()||this.plugin()||this.media())return d;if(q.save(),b=q.$re(/^@[a-z-]+/)){switch(g=b,"-"==b.charAt(1)&&b.indexOf("-",2)>0&&(g="@"+b.slice(b.indexOf("-",2)+1)),g){case"@charset":h=!0,m=!1;break;case"@namespace":i=!0,m=!1;break;case"@keyframes":case"@counter-style":h=!0;break;case"@document":case"@supports":k=!0,o=!1;break;default:k=!0}return q.commentStore.length=0,h?(d=this.entity(),d||j("expected "+b+" identifier")):i?(d=this.expression(),d||j("expected "+b+" expression")):k&&(d=this.permissiveValue(/^[{;]/),m="{"===q.currentChar(),d?d.value||(d=null):m||";"===q.currentChar()||j(b+" rule is missing block or ending semi-colon")),m&&(f=this.blockRuleset()),f||!m&&d&&q.$char(";")?(q.forget(),new e.AtRule(b,d,f,l,c,a.dumpLineNumbers?n(l):null,o)):void q.restore("at-rule options not recognised")}}},value:function(){var a,b=[],c=q.i;do if(a=this.expression(),a&&(b.push(a),!q.$char(",")))break;while(a);if(b.length>0)return new e.Value(b,c)},important:function(){if("!"===q.currentChar())return q.$re(/^! *important/)},sub:function(){var a,b;return q.save(),q.$char("(")?(a=this.addition(),a&&q.$char(")")?(q.forget(),b=new e.Expression([a]),b.parens=!0,b):void q.restore("Expected ')'")):void q.restore()},multiplication:function(){var a,b,c,d,f;if(a=this.operand()){for(f=q.isWhitespace(-1);;){if(q.peek(/^\/[*\/]/))break;if(q.save(),c=q.$char("/")||q.$char("*")||q.$str("./"),!c){q.forget();break}if(b=this.operand(),!b){q.restore();break}q.forget(),a.parensInOp=!0,b.parensInOp=!0,d=new e.Operation(c,[d||a,b],f),f=q.isWhitespace(-1)}return d||a}},addition:function(){var a,b,c,d,f;if(a=this.multiplication()){for(f=q.isWhitespace(-1);;){if(c=q.$re(/^[-+]\s+/)||!f&&(q.$char("+")||q.$char("-")),!c)break;if(b=this.multiplication(),!b)break;a.parensInOp=!0,b.parensInOp=!0,d=new e.Operation(c,[d||a,b],f),f=q.isWhitespace(-1)}return d||a}},conditions:function(){var a,b,c,d=q.i;if(a=this.condition(!0)){for(;;){if(!q.peek(/^,\s*(not\s*)?\(/)||!q.$char(","))break;if(b=this.condition(!0),!b)break;c=new e.Condition("or",c||a,b,d)}return c||a}},condition:function(a){function b(){return q.$str("or")}var c,d,f;if(c=this.conditionAnd(a)){if(d=b()){if(f=this.condition(a),!f)return;c=new e.Condition(d,c,f)}return c}},conditionAnd:function(a){function b(){var b=h.negatedCondition(a)||h.parenthesisCondition(a);return b||a?b:h.atomicCondition(a)}function c(){return q.$str("and")}var d,f,g,h=this;if(d=b()){if(f=c()){if(g=this.conditionAnd(a),!g)return;d=new e.Condition(f,d,g)}return d}},negatedCondition:function(a){if(q.$str("not")){var b=this.parenthesisCondition(a);return b&&(b.negate=!b.negate),b}},parenthesisCondition:function(a){function b(b){var c;return q.save(),(c=b.condition(a))&&q.$char(")")?(q.forget(),c):void q.restore()}var c;return q.save(),q.$str("(")?(c=b(this))?(q.forget(),c):(c=this.atomicCondition(a))?q.$char(")")?(q.forget(),c):void q.restore("expected ')' got '"+q.currentChar()+"'"):void q.restore():void q.restore()},atomicCondition:function(a){function b(){return this.addition()||h.keyword()||h.quoted()||h.mixinLookup()}var c,d,f,g,h=this.entities,i=q.i;if(b=b.bind(this),c=b())return q.$char(">")?g=q.$char("=")?">=":">":q.$char("<")?g=q.$char("=")?"<=":"<":q.$char("=")&&(g=q.$char(">")?"=>":q.$char("<")?"=<":"="),g?(d=b(),d?f=new e.Condition(g,c,d,i,(!1)):j("expected expression")):f=new e.Condition("=",c,new e.Keyword("true"),i,(!1)),f},operand:function(){var a,b=this.entities;q.peek(/^-[@\$\(]/)&&(a=q.$char("-"));var c=this.sub()||b.dimension()||b.color()||b.variable()||b.property()||b.call()||b.quoted(!0)||b.colorKeyword()||b.mixinLookup();return a&&(c.parensInOp=!0,c=new e.Negative(c)),c},expression:function(){var a,b,c=[],d=q.i;do a=this.comment(),a?c.push(a):(a=this.addition()||this.entity(),a&&(c.push(a),q.peek(/^\/[\/*]/)||(b=q.$char("/"),b&&c.push(new e.Anonymous(b,d)))));while(a);if(c.length>0)return new e.Expression(c)},property:function(){var a=q.$re(/^(\*?-?[_a-zA-Z0-9-]+)\s*:/);if(a)return a[1]},ruleProperty:function(){function a(a){var b=q.i,c=q.$re(a);if(c)return g.push(b),f.push(c[1])}var b,d,f=[],g=[];q.save();var h=q.$re(/^([_a-zA-Z0-9-]+)\s*:/);if(h)return f=[new e.Keyword(h[1])],q.forget(),f;for(a(/^(\*?)/);;)if(!a(/^((?:[\w-]+)|(?:[@\$]\{[\w-]+\}))/))break;if(f.length>1&&a(/^((?:\+_|\+)?)\s*:/)){for(q.forget(),""===f[0]&&(f.shift(),g.shift()),d=0;d=b);c++);this.preProcessors.splice(c,0,{preProcessor:a,priority:b})},e.prototype.addPostProcessor=function(a,b){var c;for(c=0;c=b);c++);this.postProcessors.splice(c,0,{postProcessor:a,priority:b})},e.prototype.addFileManager=function(a){this.fileManagers.push(a)},e.prototype.getPreProcessors=function(){for(var a=[],b=0;b0){var d,e=JSON.stringify(this._sourceMapGenerator.toJSON());this.sourceMapURL?d=this.sourceMapURL:this._sourceMapFilename&&(d=this._sourceMapFilename),this.sourceMapURL=d,this.sourceMap=e}return this._css.join("")},b}},{}],49:[function(a,b,c){var d=a("./contexts"),e=a("./visitors"),f=a("./tree");b.exports=function(a,b){b=b||{};var c,g=b.variables,h=new d.Eval(b);"object"!=typeof g||Array.isArray(g)||(g=Object.keys(g).map(function(a){var b=g[a];return b instanceof f.Value||(b instanceof f.Expression||(b=new f.Expression([b])),b=new f.Value([b])),new f.Declaration("@"+a,b,(!1),null,0)}),h.frames=[new f.Ruleset(null,g)]);var i,j,k=[new e.JoinSelectorVisitor,new e.MarkVisibleSelectorsVisitor((!0)),new e.ExtendVisitor,new e.ToCSSVisitor({compress:Boolean(b.compress)})],l=[];if(b.pluginManager){j=b.pluginManager.visitor();for(var m=0;m<2;m++)for(j.first();i=j.get();)i.isPreEvalVisitor?0!==m&&l.indexOf(i)!==-1||(l.push(i),i.run(a)):0!==m&&k.indexOf(i)!==-1||(i.isPreVisitor?k.unshift(i):k.push(i))}c=a.eval(h);for(var m=0;m=6?(this.rgb=[],a.match(/.{2}/g).map(function(a,b){b<3?d.rgb.push(parseInt(a,16)):d.alpha=parseInt(a,16)/255})):(this.rgb=[],a.split("").map(function(a,b){b<3?d.rgb.push(parseInt(a+a,16)):d.alpha=parseInt(a+a,16)/255})),this.alpha=this.alpha||("number"==typeof b?b:1),"undefined"!=typeof c&&(this.value=c)};h.prototype=new f,h.prototype.type="Color",h.prototype.luma=function(){var a=this.rgb[0]/255,b=this.rgb[1]/255,c=this.rgb[2]/255;return a=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4),b=b<=.03928?b/12.92:Math.pow((b+.055)/1.055,2.4),c=c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4),.2126*a+.7152*b+.0722*c},h.prototype.genCSS=function(a,b){b.add(this.toCSS(a))},h.prototype.toCSS=function(a,b){var c,e,f,g=a&&a.compress&&!b,h=[];if(e=this.fround(a,this.alpha),this.value)if(0===this.value.indexOf("rgb"))e<1&&(f="rgba");else{if(0!==this.value.indexOf("hsl"))return this.value;f=e<1?"hsla":"hsl"}else e<1&&(f="rgba");switch(f){case"rgba":h=this.rgb.map(function(a){return d(Math.round(a),255)}).concat(d(e,1));break;case"hsla":h.push(d(e,1));case"hsl":c=this.toHSL(),h=[this.fround(a,c.h),this.fround(a,100*c.s)+"%",this.fround(a,100*c.l)+"%"].concat(h)}if(f)return f+"("+h.join(","+(g?"":" "))+")";if(c=this.toRGB(),g){var i=c.split("");i[1]===i[2]&&i[3]===i[4]&&i[5]===i[6]&&(c="#"+i[1]+i[3]+i[5])}return c},h.prototype.operate=function(a,b,c){for(var d=new Array(3),e=this.alpha*(1-c.alpha)+c.alpha,f=0;f<3;f++)d[f]=this._operate(a,b,this.rgb[f],c.rgb[f]);return new h(d,e)},h.prototype.toRGB=function(){return e(this.rgb)},h.prototype.toHSL=function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=(g+h)/2,j=g-h;if(g===h)a=b=0;else{switch(b=i>.5?j/(2-g-h):j/(g+h),g){case c:a=(d-e)/j+(d="===a||"=<"===a||"<="===a;case 1:return">"===a||">="===a;default:return!1}}}(this.op,this.lvalue.eval(a),this.rvalue.eval(a));return this.negate?!b:b},b.exports=e},{"./node":76}],59:[function(a,b,c){var d=function(a,b,c){var e="";if(a.dumpLineNumbers&&!a.compress)switch(a.dumpLineNumbers){case"comments":e=d.asComment(b);break;case"mediaquery":e=d.asMediaQuery(b);break;case"all":e=d.asComment(b)+(c||"")+d.asMediaQuery(b)}return e};d.asComment=function(a){return"/* line "+a.debugInfo.lineNumber+", "+a.debugInfo.fileName+" */\n"},d.asMediaQuery=function(a){var b=a.debugInfo.fileName;return/^[a-z]+:\/\//i.test(b)||(b="file://"+b),"@media -sass-debug-info{filename{font-family:"+b.replace(/([.:\/\\])/g,function(a){return"\\"==a&&(a="/"),"\\"+a})+"}line{font-family:\\00003"+a.debugInfo.lineNumber+"}}\n"},b.exports=d},{}],60:[function(a,b,c){function d(a,b){var c,d="",e=b.length,f={add:function(a){d+=a}};for(c=0;c-1e-6&&(d=c.toFixed(20).replace(/0+$/,"")),a&&a.compress){if(0===c&&this.unit.isLength())return void b.add(d);c>0&&c<1&&(d=d.substr(1))}b.add(d),this.unit.genCSS(a,b)},h.prototype.operate=function(a,b,c){var d=this._operate(a,b,this.value,c.value),e=this.unit.clone();if("+"===b||"-"===b)if(0===e.numerator.length&&0===e.denominator.length)e=c.unit.clone(), +this.unit.backupUnit&&(e.backupUnit=this.unit.backupUnit);else if(0===c.unit.numerator.length&&0===e.denominator.length);else{if(c=c.convertTo(this.unit.usedUnits()),a.strictUnits&&c.unit.toString()!==e.toString())throw new Error("Incompatible units. Change the units or use the unit function. Bad units: '"+e.toString()+"' and '"+c.unit.toString()+"'.");d=this._operate(a,b,this.value,c.value)}else"*"===b?(e.numerator=e.numerator.concat(c.unit.numerator).sort(),e.denominator=e.denominator.concat(c.unit.denominator).sort(),e.cancel()):"/"===b&&(e.numerator=e.numerator.concat(c.unit.denominator).sort(),e.denominator=e.denominator.concat(c.unit.numerator).sort(),e.cancel());return new h(d,e)},h.prototype.compare=function(a){var b,c;if(a instanceof h){if(this.unit.isEmpty()||a.unit.isEmpty())b=this,c=a;else if(b=this.unify(),c=a.unify(),0!==b.unit.compare(c.unit))return;return d.numericCompare(b.value,c.value)}},h.prototype.unify=function(){return this.convertTo({length:"px",duration:"s",angle:"rad"})},h.prototype.convertTo=function(a){var b,c,d,f,g,i=this.value,j=this.unit.clone(),k={};if("string"==typeof a){for(b in e)e[b].hasOwnProperty(a)&&(k={},k[b]=a);a=k}g=function(a,b){return d.hasOwnProperty(a)?(b?i/=d[a]/d[f]:i*=d[a]/d[f],f):a};for(c in a)a.hasOwnProperty(c)&&(f=a[c],d=e[c],j.map(g));return j.cancel(),new h(i,j)},b.exports=h},{"../data/unit-conversions":16,"./color":55,"./node":76,"./unit":84}],63:[function(a,b,c){var d=a("./node"),e=a("./paren"),f=a("./combinator"),g=function(a,b,c,d,e,g){this.combinator=a instanceof f?a:new f(a),this.value="string"==typeof b?b.trim():b?b:"",this.isVariable=c,this._index=d,this._fileInfo=e,this.copyVisibilityInfo(g),this.setParent(this.combinator,this)};g.prototype=new d,g.prototype.type="Element",g.prototype.accept=function(a){var b=this.value;this.combinator=a.visit(this.combinator),"object"==typeof b&&(this.value=a.visit(b))},g.prototype.eval=function(a){return new g(this.combinator,this.value.eval?this.value.eval(a):this.value,this.isVariable,this.getIndex(),this.fileInfo(),this.visibilityInfo())},g.prototype.clone=function(){return new g(this.combinator,this.value,this.isVariable,this.getIndex(),this.fileInfo(),this.visibilityInfo())},g.prototype.genCSS=function(a,b){b.add(this.toCSS(a),this.fileInfo(),this.getIndex())},g.prototype.toCSS=function(a){a=a||{};var b=this.value,c=a.firstSelector;return b instanceof e&&(a.firstSelector=!0),b=b.toCSS?b.toCSS(a):b,a.firstSelector=c,""===b&&"&"===this.combinator.value.charAt(0)?"":this.combinator.toCSS(a)+b},b.exports=g},{"./combinator":56,"./node":76,"./paren":78}],64:[function(a,b,c){var d=a("./node"),e=a("./paren"),f=a("./comment"),g=a("./dimension"),h=a("../constants").Math,i=function(a,b){if(this.value=a,this.noSpacing=b,!a)throw new Error("Expression requires an array parameter")};i.prototype=new d,i.prototype.type="Expression",i.prototype.accept=function(a){this.value=a.visitArray(this.value)},i.prototype.eval=function(a){var b,c=a.isMathOn(),d=this.parens&&(a.math!==h.STRICT_LEGACY||!this.parensInOp),f=!1;return d&&a.inParenthesis(),this.value.length>1?b=new i(this.value.map(function(b){return b.eval?b.eval(a):b}),this.noSpacing):1===this.value.length?(!this.value[0].parens||this.value[0].parensInOp||a.inCalc||(f=!0),b=this.value[0].eval(a)):b=this,d&&a.outOfParenthesis(),!this.parens||!this.parensInOp||c||f||b instanceof g||(b=new e(b)),b},i.prototype.genCSS=function(a,b){for(var c=0;c0&&c.length&&""===c[0].combinator.value&&(c[0].combinator.value=" "),d=d.concat(a[b].elements);this.selfSelectors=[new e(d)],this.selfSelectors[0].copyVisibilityInfo(this.visibilityInfo())},b.exports=f},{"./node":76,"./selector":82}],66:[function(a,b,c){var d=a("./node"),e=a("./media"),f=a("./url"),g=a("./quoted"),h=a("./ruleset"),i=a("./anonymous"),j=a("../utils"),k=a("../less-error"),l=function(a,b,c,d,e,f){if(this.options=c,this._index=d,this._fileInfo=e,this.path=a,this.features=b,this.allowRoot=!0,void 0!==this.options.less||this.options.inline)this.css=!this.options.less||this.options.inline;else{var g=this.getPath();g&&/[#\.\&\?]css([\?;].*)?$/.test(g)&&(this.css=!0)}this.copyVisibilityInfo(f),this.setParent(this.features,this),this.setParent(this.path,this)};l.prototype=new d,l.prototype.type="Import",l.prototype.accept=function(a){this.features&&(this.features=a.visit(this.features)),this.path=a.visit(this.path),this.options.isPlugin||this.options.inline||!this.root||(this.root=a.visit(this.root))},l.prototype.genCSS=function(a,b){this.css&&void 0===this.path._fileInfo.reference&&(b.add("@import ",this._fileInfo,this._index),this.path.genCSS(a,b),this.features&&(b.add(" "),this.features.genCSS(a,b)),b.add(";"))},l.prototype.getPath=function(){return this.path instanceof f?this.path.value.value:this.path.value},l.prototype.isVariableImport=function(){var a=this.path;return a instanceof f&&(a=a.value),!(a instanceof g)||a.containsVariables()},l.prototype.evalForImport=function(a){var b=this.path;return b instanceof f&&(b=b.value),new l(b.eval(a),this.features,this.options,this._index,this._fileInfo,this.visibilityInfo())},l.prototype.evalPath=function(a){var b=this.path.eval(a),c=this._fileInfo;if(!(b instanceof f)){var d=b.value;b.value=c&&d&&a.pathRequiresRewrite(d)?a.rewritePath(d,c.rootpath):a.normalizePath(b.value)}return b},l.prototype.eval=function(a){var b=this.doEval(a);return(this.options.reference||this.blocksVisibility())&&(b.length||0===b.length?b.forEach(function(a){a.addVisibilityBlock()}):b.addVisibilityBlock()),b},l.prototype.doEval=function(a){var b,c,d=this.features&&this.features.eval(a);if(this.options.isPlugin){if(this.root&&this.root.eval)try{this.root.eval(a)}catch(f){throw f.message="Plugin error during evaluation",new k(f,this.root.imports,this.root.filename)}return c=a.frames[0]&&a.frames[0].functionRegistry,c&&this.root&&this.root.functions&&c.addMultiple(this.root.functions),[]}if(this.skip&&("function"==typeof this.skip&&(this.skip=this.skip()),this.skip))return[];if(this.options.inline){var g=new i(this.root,0,{filename:this.importedFilename,reference:this.path._fileInfo&&this.path._fileInfo.reference},(!0),(!0));return this.features?new e([g],this.features.value):[g]}if(this.css){var m=new l(this.evalPath(a),d,this.options,this._index);if(!m.css&&this.error)throw this.error;return m}return b=new h(null,j.copyArray(this.root.rules)),b.evalImports(a),this.features?new e(b.rules,this.features.value):b.rules},b.exports=l},{"../less-error":38,"../utils":89,"./anonymous":50,"./media":71,"./node":76,"./quoted":80,"./ruleset":81,"./url":85}],67:[function(a,b,c){var d=Object.create(null);d.Node=a("./node"),d.Color=a("./color"),d.AtRule=a("./atrule"),d.DetachedRuleset=a("./detached-ruleset"),d.Operation=a("./operation"),d.Dimension=a("./dimension"),d.Unit=a("./unit"),d.Keyword=a("./keyword"),d.Variable=a("./variable"),d.Property=a("./property"),d.Ruleset=a("./ruleset"),d.Element=a("./element"),d.Attribute=a("./attribute"),d.Combinator=a("./combinator"),d.Selector=a("./selector"),d.Quoted=a("./quoted"),d.Expression=a("./expression"),d.Declaration=a("./declaration"),d.Call=a("./call"),d.URL=a("./url"),d.Import=a("./import"),d.mixin={Call:a("./mixin-call"),Definition:a("./mixin-definition")},d.Comment=a("./comment"),d.Anonymous=a("./anonymous"),d.Value=a("./value"),d.JavaScript=a("./javascript"),d.Assignment=a("./assignment"),d.Condition=a("./condition"),d.Paren=a("./paren"),d.Media=a("./media"),d.UnicodeDescriptor=a("./unicode-descriptor"),d.Negative=a("./negative"),d.Extend=a("./extend"),d.VariableCall=a("./variable-call"),d.NamespaceValue=a("./namespace-value"),b.exports=d},{"./anonymous":50,"./assignment":51,"./atrule":52,"./attribute":53,"./call":54,"./color":55,"./combinator":56,"./comment":57,"./condition":58,"./declaration":60,"./detached-ruleset":61,"./dimension":62,"./element":63,"./expression":64,"./extend":65,"./import":66,"./javascript":68,"./keyword":70,"./media":71,"./mixin-call":72,"./mixin-definition":73,"./namespace-value":74,"./negative":75,"./node":76,"./operation":77,"./paren":78,"./property":79,"./quoted":80,"./ruleset":81,"./selector":82,"./unicode-descriptor":83,"./unit":84,"./url":85,"./value":86,"./variable":88,"./variable-call":87}],68:[function(a,b,c){var d=a("./js-eval-node"),e=a("./dimension"),f=a("./quoted"),g=a("./anonymous"),h=function(a,b,c,d){this.escaped=b,this.expression=a,this._index=c,this._fileInfo=d};h.prototype=new d,h.prototype.type="JavaScript",h.prototype.eval=function(a){var b=this.evaluateJavaScript(this.expression,a),c=typeof b;return"number"!==c||isNaN(b)?"string"===c?new f('"'+b+'"',b,this.escaped,this._index):new g(Array.isArray(b)?b.join(", "):b):new e(b)},b.exports=h},{"./anonymous":50,"./dimension":62,"./js-eval-node":69,"./quoted":80}],69:[function(a,b,c){var d=a("./node"),e=a("./variable"),f=function(){};f.prototype=new d,f.prototype.evaluateJavaScript=function(a,b){var c,d=this,f={};if(!b.javascriptEnabled)throw{message:"Inline JavaScript is not enabled. Is it set in your options?",filename:this.fileInfo().filename,index:this.getIndex()};a=a.replace(/@\{([\w-]+)\}/g,function(a,c){return d.jsify(new e("@"+c,d.getIndex(),d.fileInfo()).eval(b))});try{a=new Function("return ("+a+")")}catch(g){throw{message:"JavaScript evaluation error: "+g.message+" from `"+a+"`",filename:this.fileInfo().filename,index:this.getIndex()}}var h=b.frames[0].variables();for(var i in h)h.hasOwnProperty(i)&&(f[i.slice(1)]={value:h[i].value,toJS:function(){return this.value.eval(b).toCSS()}});try{c=a.call(f)}catch(g){throw{message:"JavaScript evaluation error: '"+g.name+": "+g.message.replace(/["]/g,"'")+"'",filename:this.fileInfo().filename,index:this.getIndex()}}return c},f.prototype.jsify=function(a){return Array.isArray(a.value)&&a.value.length>1?"["+a.value.map(function(a){return a.toCSS()}).join(", ")+"]":a.toCSS()},b.exports=f},{"./node":76,"./variable":88}],70:[function(a,b,c){var d=a("./node"),e=function(a){this.value=a};e.prototype=new d,e.prototype.type="Keyword",e.prototype.genCSS=function(a,b){if("%"===this.value)throw{type:"Syntax",message:"Invalid % without number"};b.add(this.value)},e.True=new e("true"),e.False=new e("false"),b.exports=e},{"./node":76}],71:[function(a,b,c){var d=a("./ruleset"),e=a("./value"),f=a("./selector"),g=a("./anonymous"),h=a("./expression"),i=a("./atrule"),j=a("../utils"),k=function(a,b,c,g,h){this._index=c,this._fileInfo=g;var i=new f([],null,null,this._index,this._fileInfo).createEmptySelectors();this.features=new e(b),this.rules=[new d(i,a)],this.rules[0].allowImports=!0,this.copyVisibilityInfo(h),this.allowRoot=!0,this.setParent(i,this),this.setParent(this.features,this),this.setParent(this.rules,this)};k.prototype=new i,k.prototype.type="Media",k.prototype.isRulesetLike=function(){return!0},k.prototype.accept=function(a){this.features&&(this.features=a.visit(this.features)),this.rules&&(this.rules=a.visitArray(this.rules))},k.prototype.genCSS=function(a,b){b.add("@media ",this._fileInfo,this._index),this.features.genCSS(a,b),this.outputRuleset(a,b,this.rules)},k.prototype.eval=function(a){a.mediaBlocks||(a.mediaBlocks=[],a.mediaPath=[]);var b=new k(null,[],this._index,this._fileInfo,this.visibilityInfo());return this.debugInfo&&(this.rules[0].debugInfo=this.debugInfo,b.debugInfo=this.debugInfo),b.features=this.features.eval(a),a.mediaPath.push(b),a.mediaBlocks.push(b),this.rules[0].functionRegistry=a.frames[0].functionRegistry.inherit(),a.frames.unshift(this.rules[0]),b.rules=[this.rules[0].eval(a)],a.frames.shift(),a.mediaPath.pop(),0===a.mediaPath.length?b.evalTop(a):b.evalNested(a)},k.prototype.evalTop=function(a){var b=this;if(a.mediaBlocks.length>1){var c=new f([],null,null,this.getIndex(),this.fileInfo()).createEmptySelectors();b=new d(c,a.mediaBlocks),b.multiMedia=!0,b.copyVisibilityInfo(this.visibilityInfo()),this.setParent(b,this)}return delete a.mediaBlocks,delete a.mediaPath,b},k.prototype.evalNested=function(a){var b,c,f=a.mediaPath.concat([this]);for(b=0;b0;b--)a.splice(b,0,new g("and"));return new h(a)})),this.setParent(this.features,this),new d([],[])},k.prototype.permute=function(a){if(0===a.length)return[];if(1===a.length)return a[0];for(var b=[],c=this.permute(a.slice(1)),d=0;d0){for(n=!0,k=0;k0)p=B;else if(p=A,q[A]+q[B]>1)throw{type:"Runtime",message:"Ambiguous use of `default()` found when matching for `"+this.format(t)+"`",index:this.getIndex(),filename:this.fileInfo().filename};for(k=0;kthis.params.length)return!1}c=Math.min(f,this.arity);for(var g=0;gb?1:void 0},d.prototype.blocksVisibility=function(){return null==this.visibilityBlocks&&(this.visibilityBlocks=0),0!==this.visibilityBlocks},d.prototype.addVisibilityBlock=function(){null==this.visibilityBlocks&&(this.visibilityBlocks=0),this.visibilityBlocks=this.visibilityBlocks+1},d.prototype.removeVisibilityBlock=function(){null==this.visibilityBlocks&&(this.visibilityBlocks=0),this.visibilityBlocks=this.visibilityBlocks-1},d.prototype.ensureVisibility=function(){this.nodeVisible=!0},d.prototype.ensureInvisibility=function(){this.nodeVisible=!1},d.prototype.isVisible=function(){return this.nodeVisible},d.prototype.visibilityInfo=function(){return{visibilityBlocks:this.visibilityBlocks,nodeVisible:this.nodeVisible}},d.prototype.copyVisibilityInfo=function(a){a&&(this.visibilityBlocks=a.visibilityBlocks,this.nodeVisible=a.nodeVisible)},b.exports=d},{}],77:[function(a,b,c){var d=a("./node"),e=a("./color"),f=a("./dimension"),g=a("../constants").Math,h=function(a,b,c){this.op=a.trim(),this.operands=b,this.isSpaced=c};h.prototype=new d,h.prototype.type="Operation",h.prototype.accept=function(a){this.operands=a.visit(this.operands)},h.prototype.eval=function(a){var b,c=this.operands[0].eval(a),d=this.operands[1].eval(a);if(a.isMathOn(this.op)){if(b="./"===this.op?"/":this.op,c instanceof f&&d instanceof e&&(c=c.toColor()),d instanceof f&&c instanceof e&&(d=d.toColor()),!c.operate){if(c instanceof h&&"/"===c.op&&a.math===g.PARENS_DIVISION)return new h(this.op,[c,d],this.isSpaced);throw{type:"Operation",message:"Operation on an invalid type"}}return c.operate(a,b,d)}return new h(this.op,[c,d],this.isSpaced)},h.prototype.genCSS=function(a,b){this.operands[0].genCSS(a,b),this.isSpaced&&b.add(" "),b.add(this.op),this.isSpaced&&b.add(" "),this.operands[1].genCSS(a,b)},b.exports=h},{"../constants":12,"./color":55,"./dimension":62,"./node":76}],78:[function(a,b,c){var d=a("./node"),e=function(a){this.value=a};e.prototype=new d,e.prototype.type="Paren",e.prototype.genCSS=function(a,b){b.add("("),this.value.genCSS(a,b),b.add(")")},e.prototype.eval=function(a){return new e(this.value.eval(a))},b.exports=e},{"./node":76}],79:[function(a,b,c){var d=a("./node"),e=a("./declaration"),f=function(a,b,c){this.name=a,this._index=b,this._fileInfo=c};f.prototype=new d,f.prototype.type="Property",f.prototype.eval=function(a){var b,c=this.name,d=a.pluginManager.less.visitors.ToCSSVisitor.prototype._mergeRules;if(this.evaluating)throw{type:"Name",message:"Recursive property reference for "+c,filename:this.fileInfo().filename,index:this.getIndex()};if(this.evaluating=!0,b=this.find(a.frames,function(b){var f,g=b.property(c);if(g){for(var h=0;h0;a--){var b=this.rules[a-1];if(b instanceof e)return this.parseValue(b)}},q.prototype.parseValue=function(a){function b(a){return a.value instanceof k&&!a.parsed?("string"==typeof a.value.value?this.parse.parseNode(a.value.value,["value","important"],a.value.getIndex(),a.fileInfo(),function(b,c){b&&(a.parsed=!0),c&&(a.value=c[0],a.important=c[1]||"",a.parsed=!0)}):a.parsed=!0,a):a}var c=this;if(Array.isArray(a)){var d=[];return a.forEach(function(a){d.push(b.call(c,a))}),d}return b.call(c,a)},q.prototype.rulesets=function(){if(!this.rules)return[];var a,b,c=[],d=this.rules;for(a=0;b=d[a];a++)b.isRuleset&&c.push(b);return c},q.prototype.prependRule=function(a){var b=this.rules;b?b.unshift(a):this.rules=[a],this.setParent(a,this)},q.prototype.find=function(a,b,c){b=b||this;var d,e,f=[],g=a.toCSS();return g in this._lookups?this._lookups[g]:(this.rulesets().forEach(function(g){if(g!==b)for(var h=0;hd){if(!c||c(g)){e=g.find(new i(a.elements.slice(d)),b,c);for(var j=0;j0&&b.add(k),a.firstSelector=!0,h[0].genCSS(a,b),a.firstSelector=!1,d=1;d0?(e=p.copyArray(a),f=e.pop(),g=d.createDerived(p.copyArray(f.elements))):g=d.createDerived([]),b.length>0){var h=c.combinator,i=b[0].elements[0];h.emptyOrWhitespace&&!i.combinator.emptyOrWhitespace&&(h=i.combinator),g.elements.push(new j(h,i.value,c.isVariable,c._index,c._fileInfo)),g.elements=g.elements.concat(b[0].elements.slice(1))}if(0!==g.elements.length&&e.push(g),b.length>1){var k=b.slice(1);k=k.map(function(a){return a.createDerived(a.elements,[])}),e=e.concat(k)}return e}function g(a,b,c,d,e){var g;for(g=0;g0?d[d.length-1]=d[d.length-1].createDerived(d[d.length-1].elements.concat(a)):d.push(new i(a))}}function l(a,b,c){function m(a){var b;return a.value instanceof h?(b=a.value.value,b instanceof i?b:null):null}var n,o,p,q,r,s,t,u,v,w,x=!1;for(q=[],r=[[]],n=0;u=c.elements[n];n++)if("&"!==u.value){var y=m(u);if(null!=y){k(q,r);var z,A=[],B=[];for(z=l(A,b,y),x=x||z,p=0;p0&&t[0].elements.push(new j(u.combinator,"",u.isVariable,u._index,u._fileInfo)),s.push(t);else for(p=0;p0&&(a.push(r[n]),w=r[n][v-1],r[n][v-1]=w.createDerived(w.elements,c.extendList));return x}function m(a,b){var c=b.createDerived(b.elements,b.extendList,b.evaldCondition);return c.copyVisibilityInfo(a),c}var n,o,q;if(o=[],q=l(o,b,c),!q)if(b.length>0)for(o=[],n=0;n0)for(b=0;b=0&&"\n"!==b.charAt(c);)e++;return"number"==typeof a&&(d=(b.slice(0,a).match(/\n/g)||"").length),{line:d,column:e}},copyArray:function(a){var b,c=a.length,d=new Array(c);for(b=0;b=0||(i=[k.selfSelectors[0]],g=n.findMatch(j,i),g.length&&(j.hasFoundMatches=!0,j.selfSelectors.forEach(function(a){var b=k.visibilityInfo();h=n.extendSelector(g,i,a,j.isVisible()),l=new d.Extend(k.selector,k.option,0,k.fileInfo(),b),l.selfSelectors=h,h[h.length-1].extendList=[l],m.push(l),l.ruleset=k.ruleset,l.parent_ids=l.parent_ids.concat(k.parent_ids,j.parent_ids),k.firstExtendOnThisSelectorPath&&(l.firstExtendOnThisSelectorPath=!0,k.ruleset.paths.push(h))})));if(m.length){if(this.extendChainCount++,c>100){var o="{unable to calculate}",p="{unable to calculate}";try{o=m[0].selfSelectors[0].toCSS(),p=m[0].selector.toCSS()}catch(q){}throw{message:"extend circular reference detected. One of the circular extends is currently:"+o+":extend("+p+")"}}return m.concat(n.doExtendChaining(m,b,c+1))}return m},visitDeclaration:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitSelector:function(a,b){b.visitDeeper=!1},visitRuleset:function(a,b){if(!a.root){var c,d,e,f,g=this.allExtendsStack[this.allExtendsStack.length-1],h=[],i=this;for(e=0;e0&&k[i.matched].combinator.value!==g?i=null:i.matched++,i&&(i.finished=i.matched===k.length,i.finished&&!a.allowAfter&&(e+1k&&l>0&&(m[m.length-1].elements=m[m.length-1].elements.concat(b[k].elements.slice(l)),l=0,k++),j=g.elements.slice(l,i.index).concat([h]).concat(c.elements.slice(1)),k===i.pathIndex&&f>0?m[m.length-1].elements=m[m.length-1].elements.concat(j):(m=m.concat(b.slice(k,i.pathIndex)),m.push(new d.Selector(j))),k=i.endPathIndex,l=i.endPathElementIndex,l>=b[k].elements.length&&(l=0,k++);return k0&&(m[m.length-1].elements=m[m.length-1].elements.concat(b[k].elements.slice(l)),k++),m=m.concat(b.slice(k,b.length)),m=m.map(function(a){var b=a.createDerived(a.elements);return e?b.ensureVisibility():b.ensureInvisibility(),b})},visitMedia:function(a,b){var c=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);c=c.concat(this.doExtendChaining(c,a.allExtends)),this.allExtendsStack.push(c)},visitMediaOut:function(a){var b=this.allExtendsStack.length-1;this.allExtendsStack.length=b},visitAtRule:function(a,b){var c=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);c=c.concat(this.doExtendChaining(c,a.allExtends)),this.allExtendsStack.push(c)},visitAtRuleOut:function(a){var b=this.allExtendsStack.length-1;this.allExtendsStack.length=b}},b.exports=i},{"../logger":39,"../tree":67,"../utils":89,"./visitor":97}],91:[function(a,b,c){function d(a){this.imports=[],this.variableImports=[],this._onSequencerEmpty=a,this._currentDepth=0}d.prototype.addImport=function(a){var b=this,c={callback:a,args:null,isReady:!1};return this.imports.push(c),function(){c.args=Array.prototype.slice.call(arguments,0),c.isReady=!0,b.tryRun()}},d.prototype.addVariableImport=function(a){this.variableImports.push(a)},d.prototype.tryRun=function(){this._currentDepth++;try{for(;;){for(;this.imports.length>0;){var a=this.imports[0];if(!a.isReady)return;this.imports=this.imports.slice(1),a.callback.apply(null,a.args)}if(0===this.variableImports.length)break;var b=this.variableImports[0];this.variableImports=this.variableImports.slice(1),b()}}finally{this._currentDepth--}0===this._currentDepth&&this._onSequencerEmpty&&this._onSequencerEmpty()},b.exports=d},{}],92:[function(a,b,c){var d=a("../contexts"),e=a("./visitor"),f=a("./import-sequencer"),g=a("../utils"),h=function(a,b){this._visitor=new e(this),this._importer=a,this._finish=b,this.context=new d.Eval,this.importCount=0,this.onceFileDetectionMap={},this.recursionDetector={},this._sequencer=new f(this._onSequencerEmpty.bind(this))};h.prototype={isReplacing:!1,run:function(a){try{this._visitor.visit(a)}catch(b){this.error=b}this.isFinished=!0,this._sequencer.tryRun()},_onSequencerEmpty:function(){this.isFinished&&this._finish(this.error)},visitImport:function(a,b){var c=a.options.inline;if(!a.css||c){var e=new d.Eval(this.context,g.copyArray(this.context.frames)),f=e.frames[0];this.importCount++,a.isVariableImport()?this._sequencer.addVariableImport(this.processImportNode.bind(this,a,e,f)):this.processImportNode(a,e,f)}b.visitDeeper=!1},processImportNode:function(a,b,c){var d,e=a.options.inline;try{d=a.evalForImport(b)}catch(f){f.filename||(f.index=a.getIndex(),f.filename=a.fileInfo().filename),a.css=!0,a.error=f}if(!d||d.css&&!e)this.importCount--,this.isFinished&&this._sequencer.tryRun();else{d.options.multiple&&(b.importMultiple=!0);for(var g=void 0===d.css,h=0;h0},resolveVisibility:function(a,b){if(!a.blocksVisibility()){if(this.isEmpty(a)&&!this.containsSilentNonBlockedChild(b))return;return a}var c=a.rules[0];if(this.keepOnlyVisibleChilds(c),!this.isEmpty(c))return a.ensureVisibility(),a.removeVisibilityBlock(),a},isVisibleRuleset:function(a){return!!a.firstRoot||!this.isEmpty(a)&&!(!a.root&&!this.hasVisibleSelector(a))}};var g=function(a){this._visitor=new e(this),this._context=a,this.utils=new f(a)};g.prototype={isReplacing:!0,run:function(a){return this._visitor.visit(a)},visitDeclaration:function(a,b){if(!a.blocksVisibility()&&!a.variable)return a},visitMixinDefinition:function(a,b){a.frames=[]},visitExtend:function(a,b){},visitComment:function(a,b){if(!a.blocksVisibility()&&!a.isSilent(this._context))return a},visitMedia:function(a,b){var c=a.rules[0].rules;return a.accept(this._visitor),b.visitDeeper=!1,this.utils.resolveVisibility(a,c)},visitImport:function(a,b){if(!a.blocksVisibility())return a},visitAtRule:function(a,b){return a.rules&&a.rules.length?this.visitAtRuleWithBody(a,b):this.visitAtRuleWithoutBody(a,b)},visitAnonymous:function(a,b){if(!a.blocksVisibility())return a.accept(this._visitor),a},visitAtRuleWithBody:function(a,b){function c(a){var b=a.rules;return 1===b.length&&(!b[0].paths||0===b[0].paths.length)}function d(a){var b=a.rules;return c(a)?b[0].rules:b}var e=d(a);return a.accept(this._visitor),b.visitDeeper=!1,this.utils.isEmpty(a)||this._mergeRules(a.rules[0].rules),this.utils.resolveVisibility(a,e)},visitAtRuleWithoutBody:function(a,b){if(!a.blocksVisibility()){if("@charset"===a.name){if(this.charset){if(a.debugInfo){var c=new d.Comment("/* "+a.toCSS(this._context).replace(/\n/g,"")+" */\n");return c.debugInfo=a.debugInfo,this._visitor.visit(c)}return}this.charset=!0}return a}},checkValidNodes:function(a,b){if(a)for(var c=0;c0?a.accept(this._visitor):a.rules=null,b.visitDeeper=!1}return a.rules&&(this._mergeRules(a.rules),this._removeDuplicateRules(a.rules)),this.utils.isVisibleRuleset(a)&&(a.ensureVisibility(),d.splice(0,0,a)),1===d.length?d[0]:d},_compileRulesetPaths:function(a){a.paths&&(a.paths=a.paths.filter(function(a){var b;for(" "===a[0].elements[0].combinator.value&&(a[0].elements[0].combinator=new d.Combinator("")),b=0;b=0;e--)if(c=a[e],c instanceof d.Declaration)if(f[c.name]){b=f[c.name],b instanceof d.Declaration&&(b=f[c.name]=[f[c.name].toCSS(this._context)]);var g=c.toCSS(this._context);b.indexOf(g)!==-1?a.splice(e,1):b.push(g)}else f[c.name]=c}},_mergeRules:function(a){if(a){for(var b={},c=[],e=0;e0){var b=a[0],c=[],e=[new d.Expression(c)];a.forEach(function(a){"+"===a.merge&&c.length>0&&e.push(new d.Expression(c=[])),c.push(a.value),b.important=b.important||a.important}),b.value=new d.Value(e)}})}}},b.exports=g},{"../tree":67,"./visitor":97}],97:[function(a,b,c){function d(a){return a}function e(a,b){var c,d;for(c in a)switch(d=a[c],typeof d){case"function":d.prototype&&d.prototype.type&&(d.prototype.typeIndex=b++);break;case"object":b=e(d,b)}return b}var f=a("../tree"),g={visitDeeper:!0},h=!1,i=function(a){this._implementation=a,this._visitInCache={},this._visitOutCache={},h||(e(f,1),h=!0)};i.prototype={visit:function(a){if(!a)return a;var b=a.typeIndex;if(!b)return a.value&&a.value.typeIndex&&this.visit(a.value),a;var c,e=this._implementation,f=this._visitInCache[b],h=this._visitOutCache[b],i=g;if(i.visitDeeper=!0,f||(c="visit"+a.type,f=e[c]||d,h=e[c+"Out"]||d,this._visitInCache[b]=f,this._visitOutCache[b]=h),f!==d){var j=f.call(e,a,i);a&&e.isReplacing&&(a=j)}return i.visitDeeper&&a&&a.accept&&a.accept(this),h!=d&&h.call(e,a),a},visitArray:function(a,b){if(!a)return a;var c,d=a.length;if(b||!this._implementation.isReplacing){for(c=0;ck){for(var b=0,c=h.length-j;b0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===a[b-2]?2:"="===a[b-1]?1:0}function e(a){return 3*a.length/4-d(a)}function f(a){var b,c,e,f,g,h=a.length;f=d(a),g=new l(3*h/4-f),c=f>0?h-4:h;var i=0;for(b=0;b>16&255,g[i++]=e>>8&255,g[i++]=255&e;return 2===f?(e=k[a.charCodeAt(b)]<<2|k[a.charCodeAt(b+1)]>>4,g[i++]=255&e):1===f&&(e=k[a.charCodeAt(b)]<<10|k[a.charCodeAt(b+1)]<<4|k[a.charCodeAt(b+2)]>>2,g[i++]=e>>8&255,g[i++]=255&e),g}function g(a){return j[a>>18&63]+j[a>>12&63]+j[a>>6&63]+j[63&a]}function h(a,b,c){for(var d,e=[],f=b;fk?k:i+g));return 1===d?(b=a[c-1],e+=j[b>>2],e+=j[b<<4&63],e+="=="):2===d&&(b=(a[c-2]<<8)+a[c-1],e+=j[b>>10],e+=j[b>>4&63],e+=j[b<<2&63],e+="="),f.push(e),f.join("")}c.byteLength=e,c.toByteArray=f,c.fromByteArray=i;for(var j=[],k=[],l="undefined"!=typeof Uint8Array?Uint8Array:Array,m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=0,o=m.length;nZ)throw new RangeError("Invalid typed array length");var b=new Uint8Array(a);return b.__proto__=f.prototype,b}function f(a,b,c){if("number"==typeof a){if("string"==typeof b)throw new Error("If encoding is specified then the first argument must be a string");return j(a)}return g(a,b,c)}function g(a,b,c){if("number"==typeof a)throw new TypeError('"value" argument must not be a number');return U(a)?m(a,b,c):"string"==typeof a?k(a,b):n(a)}function h(a){if("number"!=typeof a)throw new TypeError('"size" argument must be a number');if(a<0)throw new RangeError('"size" argument must not be negative')}function i(a,b,c){return h(a),a<=0?e(a):void 0!==b?"string"==typeof c?e(a).fill(b,c):e(a).fill(b):e(a)}function j(a){return h(a),e(a<0?0:0|o(a))}function k(a,b){if("string"==typeof b&&""!==b||(b="utf8"),!f.isEncoding(b))throw new TypeError('"encoding" must be a valid string encoding');var c=0|q(a,b),d=e(c),g=d.write(a,b);return g!==c&&(d=d.slice(0,g)),d}function l(a){for(var b=a.length<0?0:0|o(a.length),c=e(b),d=0;d=Z)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Z.toString(16)+" bytes");return 0|a}function p(a){return+a!=a&&(a=0),f.alloc(+a)}function q(a,b){if(f.isBuffer(a))return a.length;if(V(a)||U(a))return a.byteLength;"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"latin1":case"binary":return c;case"utf8":case"utf-8":case void 0:return P(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return S(a).length;default:if(d)return P(a).length;b=(""+b).toLowerCase(),d=!0}}function r(a,b,c){var d=!1;if((void 0===b||b<0)&&(b=0),b>this.length)return"";if((void 0===c||c>this.length)&&(c=this.length),c<=0)return"";if(c>>>=0,b>>>=0,c<=b)return"";for(a||(a="utf8");;)switch(a){case"hex":return G(this,b,c);case"utf8":case"utf-8":return C(this,b,c);case"ascii":return E(this,b,c);case"latin1":case"binary":return F(this,b,c);case"base64":return B(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return H(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function s(a,b,c){var d=a[b];a[b]=a[c],a[c]=d}function t(a,b,c,d,e){if(0===a.length)return-1;if("string"==typeof c?(d=c,c=0):c>2147483647?c=2147483647:c<-2147483648&&(c=-2147483648),c=+c,W(c)&&(c=e?0:a.length-1),c<0&&(c=a.length+c),c>=a.length){if(e)return-1;c=a.length-1}else if(c<0){if(!e)return-1;c=0}if("string"==typeof b&&(b=f.from(b,d)),f.isBuffer(b))return 0===b.length?-1:u(a,b,c,d,e);if("number"==typeof b)return b=255&b,"function"==typeof Uint8Array.prototype.indexOf?e?Uint8Array.prototype.indexOf.call(a,b,c):Uint8Array.prototype.lastIndexOf.call(a,b,c):u(a,[b],c,d,e);throw new TypeError("val must be string, number or Buffer")}function u(a,b,c,d,e){function f(a,b){return 1===g?a[b]:a.readUInt16BE(b*g)}var g=1,h=a.length,i=b.length;if(void 0!==d&&(d=String(d).toLowerCase(),"ucs2"===d||"ucs-2"===d||"utf16le"===d||"utf-16le"===d)){if(a.length<2||b.length<2)return-1;g=2,h/=2,i/=2,c/=2}var j;if(e){var k=-1;for(j=c;jh&&(c=h-i),j=c;j>=0;j--){for(var l=!0,m=0;me&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new TypeError("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;g239?4:f>223?3:f>191?2:1;if(e+h<=c){var i,j,k,l;switch(h){case 1:f<128&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(l<55296||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&l<1114112&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return D(d)}function D(a){var b=a.length;if(b<=$)return String.fromCharCode.apply(String,a);for(var c="",d=0;dd)&&(c=d);for(var e="",f=b;fc)throw new RangeError("Trying to access beyond buffer length")}function J(a,b,c,d,e,g){if(!f.isBuffer(a))throw new TypeError('"buffer" argument must be a Buffer instance');if(b>e||ba.length)throw new RangeError("Index out of range")}function K(a,b,c,d,e,f){if(c+d>a.length)throw new RangeError("Index out of range");if(c<0)throw new RangeError("Index out of range")}function L(a,b,c,d,e){return b=+b,c>>>=0,e||K(a,b,c,4,3.4028234663852886e38,-3.4028234663852886e38),Y.write(a,b,c,d,23,4),c+4}function M(a,b,c,d,e){return b=+b,c>>>=0,e||K(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),Y.write(a,b,c,d,52,8),c+8}function N(a){if(a=a.trim().replace(_,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function O(a){return a<16?"0"+a.toString(16):a.toString(16)}function P(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;g55295&&c<57344){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(c<56320){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=(e-55296<<10|c-56320)+65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,c<128){if((b-=1)<0)break;f.push(c)}else if(c<2048){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(c<65536){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(c<1114112))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function Q(a){for(var b=[],c=0;c>8,e=c%256,f.push(e),f.push(d);return f}function S(a){return X.toByteArray(N(a))}function T(a,b,c,d){for(var e=0;e=b.length||e>=a.length);++e)b[e+c]=a[e];return e}function U(a){return a instanceof ArrayBuffer||null!=a&&null!=a.constructor&&"ArrayBuffer"===a.constructor.name&&"number"==typeof a.byteLength}function V(a){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(a)}function W(a){return a!==a}var X=a("base64-js"),Y=a("ieee754");c.Buffer=f,c.SlowBuffer=p,c.INSPECT_MAX_BYTES=50;var Z=2147483647;c.kMaxLength=Z,f.TYPED_ARRAY_SUPPORT=d(),f.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&f[Symbol.species]===f&&Object.defineProperty(f,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),f.poolSize=8192,f.from=function(a,b,c){return g(a,b,c)},f.prototype.__proto__=Uint8Array.prototype,f.__proto__=Uint8Array,f.alloc=function(a,b,c){return i(a,b,c)},f.allocUnsafe=function(a){return j(a)},f.allocUnsafeSlow=function(a){return j(a)},f.isBuffer=function(a){return null!=a&&a._isBuffer===!0},f.compare=function(a,b){if(!f.isBuffer(a)||!f.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var c=a.length,d=b.length,e=0,g=Math.min(c,d);e0&&(a=this.toString("hex",0,b).match(/.{2}/g).join(" "),this.length>b&&(a+=" ... ")),""},f.prototype.compare=function(a,b,c,d,e){if(!f.isBuffer(a))throw new TypeError("Argument must be a Buffer");if(void 0===b&&(b=0),void 0===c&&(c=a?a.length:0),void 0===d&&(d=0),void 0===e&&(e=this.length),b<0||c>a.length||d<0||e>this.length)throw new RangeError("out of range index");if(d>=e&&b>=c)return 0;if(d>=e)return-1;if(b>=c)return 1;if(b>>>=0,c>>>=0,d>>>=0,e>>>=0,this===a)return 0;for(var g=e-d,h=c-b,i=Math.min(g,h),j=this.slice(d,e),k=a.slice(b,c),l=0;l>>=0,isFinite(c)?(c>>>=0,void 0===d&&(d="utf8")):(d=c,c=void 0)}var e=this.length-b;if((void 0===c||c>e)&&(c=e),a.length>0&&(c<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");d||(d="utf8");for(var f=!1;;)switch(d){case"hex":return v(this,a,b,c);case"utf8":case"utf-8":return w(this,a,b,c);case"ascii":return x(this,a,b,c);case"latin1":case"binary":return y(this,a,b,c);case"base64":return z(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,a,b,c);default:if(f)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),f=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;f.prototype.slice=function(a,b){var c=this.length;a=~~a,b=void 0===b?c:~~b,a<0?(a+=c,a<0&&(a=0)):a>c&&(a=c),b<0?(b+=c,b<0&&(b=0)):b>c&&(b=c),b>>=0,b>>>=0,c||I(a,b,this.length);for(var d=this[a],e=1,f=0;++f>>=0,b>>>=0,c||I(a,b,this.length);for(var d=this[a+--b],e=1;b>0&&(e*=256);)d+=this[a+--b]*e;return d},f.prototype.readUInt8=function(a,b){return a>>>=0,b||I(a,1,this.length),this[a]},f.prototype.readUInt16LE=function(a,b){return a>>>=0,b||I(a,2,this.length),this[a]|this[a+1]<<8},f.prototype.readUInt16BE=function(a,b){return a>>>=0,b||I(a,2,this.length),this[a]<<8|this[a+1]},f.prototype.readUInt32LE=function(a,b){return a>>>=0,b||I(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},f.prototype.readUInt32BE=function(a,b){return a>>>=0,b||I(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},f.prototype.readIntLE=function(a,b,c){a>>>=0,b>>>=0,c||I(a,b,this.length);for(var d=this[a],e=1,f=0;++f=e&&(d-=Math.pow(2,8*b)),d},f.prototype.readIntBE=function(a,b,c){a>>>=0,b>>>=0,c||I(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},f.prototype.readInt8=function(a,b){return a>>>=0,b||I(a,1,this.length),128&this[a]?(255-this[a]+1)*-1:this[a]},f.prototype.readInt16LE=function(a,b){a>>>=0,b||I(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},f.prototype.readInt16BE=function(a,b){a>>>=0,b||I(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},f.prototype.readInt32LE=function(a,b){return a>>>=0,b||I(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},f.prototype.readInt32BE=function(a,b){return a>>>=0,b||I(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},f.prototype.readFloatLE=function(a,b){return a>>>=0,b||I(a,4,this.length),Y.read(this,a,!0,23,4)},f.prototype.readFloatBE=function(a,b){return a>>>=0,b||I(a,4,this.length),Y.read(this,a,!1,23,4)},f.prototype.readDoubleLE=function(a,b){return a>>>=0,b||I(a,8,this.length),Y.read(this,a,!0,52,8)},f.prototype.readDoubleBE=function(a,b){return a>>>=0,b||I(a,8,this.length),Y.read(this,a,!1,52,8)},f.prototype.writeUIntLE=function(a,b,c,d){if(a=+a,b>>>=0,c>>>=0,!d){var e=Math.pow(2,8*c)-1;J(this,a,b,c,e,0)}var f=1,g=0;for(this[b]=255&a;++g>>=0,c>>>=0,!d){var e=Math.pow(2,8*c)-1;J(this,a,b,c,e,0)}var f=c-1,g=1;for(this[b+f]=255&a;--f>=0&&(g*=256);)this[b+f]=a/g&255;return b+c},f.prototype.writeUInt8=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,1,255,0),this[b]=255&a,b+1},f.prototype.writeUInt16LE=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,2,65535,0),this[b]=255&a,this[b+1]=a>>>8,b+2},f.prototype.writeUInt16BE=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,2,65535,0),this[b]=a>>>8,this[b+1]=255&a,b+2},f.prototype.writeUInt32LE=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,4,4294967295,0),this[b+3]=a>>>24,this[b+2]=a>>>16,this[b+1]=a>>>8,this[b]=255&a,b+4},f.prototype.writeUInt32BE=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,4,4294967295,0),this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a,b+4},f.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b>>>=0,!d){var e=Math.pow(2,8*c-1);J(this,a,b,c,e-1,-e)}var f=0,g=1,h=0;for(this[b]=255&a;++f>0)-h&255;return b+c},f.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b>>>=0,!d){var e=Math.pow(2,8*c-1);J(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0;for(this[b+f]=255&a;--f>=0&&(g*=256);)a<0&&0===h&&0!==this[b+f+1]&&(h=1),this[b+f]=(a/g>>0)-h&255;return b+c},f.prototype.writeInt8=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,1,127,-128),a<0&&(a=255+a+1),this[b]=255&a,b+1},f.prototype.writeInt16LE=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,2,32767,-32768),this[b]=255&a,this[b+1]=a>>>8,b+2},f.prototype.writeInt16BE=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,2,32767,-32768),this[b]=a>>>8,this[b+1]=255&a,b+2},f.prototype.writeInt32LE=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,4,2147483647,-2147483648),this[b]=255&a,this[b+1]=a>>>8,this[b+2]=a>>>16,this[b+3]=a>>>24,b+4},f.prototype.writeInt32BE=function(a,b,c){return a=+a,b>>>=0,c||J(this,a,b,4,2147483647,-2147483648),a<0&&(a=4294967295+a+1),this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a,b+4},f.prototype.writeFloatLE=function(a,b,c){return L(this,a,b,!0,c)},f.prototype.writeFloatBE=function(a,b,c){return L(this,a,b,!1,c)},f.prototype.writeDoubleLE=function(a,b,c){return M(this,a,b,!0,c)},f.prototype.writeDoubleBE=function(a,b,c){return M(this,a,b,!1,c)},f.prototype.copy=function(a,b,c,d){if(c||(c=0),d||0===d||(d=this.length),b>=a.length&&(b=a.length),b||(b=0),d>0&&d=this.length)throw new RangeError("sourceStart out of bounds");if(d<0)throw new RangeError("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-b=0;--e)a[e+b]=this[e+c];else if(f<1e3)for(e=0;e>>=0,c=void 0===c?this.length:c>>>0,a||(a=0);var g;if("number"==typeof a)for(g=b;g>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},c.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=b<0||0===b&&1/b<0?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},{}],104:[function(a,b,c){"use strict";function d(){}function e(a){try{return a.then}catch(b){return r=b,s}}function f(a,b){try{return a(b)}catch(c){return r=c,s}}function g(a,b,c){try{a(b,c)}catch(d){return r=d,s}}function h(a){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof a)throw new TypeError("Promise constructor's argument is not a function");this._40=0,this._65=0,this._55=null,this._72=null,a!==d&&p(a,this)}function i(a,b,c){return new a.constructor(function(e,f){var g=new h(d);g.then(e,f),j(a,new o(b,c,g))})}function j(a,b){for(;3===a._65;)a=a._55;return h._37&&h._37(a),0===a._65?0===a._40?(a._40=1,void(a._72=b)):1===a._40?(a._40=2,void(a._72=[a._72,b])):void a._72.push(b):void k(a,b)}function k(a,b){q(function(){var c=1===a._65?b.onFulfilled:b.onRejected;if(null===c)return void(1===a._65?l(b.promise,a._55):m(b.promise,a._55));var d=f(c,a._55);d===s?m(b.promise,r):l(b.promise,d)})}function l(a,b){if(b===a)return m(a,new TypeError("A promise cannot be resolved with itself."));if(b&&("object"==typeof b||"function"==typeof b)){var c=e(b);if(c===s)return m(a,r);if(c===a.then&&b instanceof h)return a._65=3,a._55=b,void n(a);if("function"==typeof c)return void p(c.bind(b),a)}a._65=1,a._55=b,n(a)}function m(a,b){a._65=2,a._55=b,h._87&&h._87(a,b),n(a)}function n(a){if(1===a._40&&(j(a,a._72),a._72=null),2===a._40){for(var b=0;b + +
    + +
    +
    + + + diff --git a/smtERP-web/src/api/GroupRequest.js b/smtERP-web/src/api/GroupRequest.js new file mode 100644 index 0000000..2688138 --- /dev/null +++ b/smtERP-web/src/api/GroupRequest.js @@ -0,0 +1,30 @@ +import Vue from 'vue' + +/** + * 将一个请求分组 + * + * @param getPromise 传入一个可以获取到Promise对象的方法 + * @param groupId 分组ID,如果不传或者为空则不分组 + * @param expire 过期时间,默认 半分钟 + */ +export function httpGroupRequest(getPromise, groupId, expire = 1000 * 30) { + if (groupId == null || groupId === '') { + console.log("--------popup----------getFrom DB-------with---no--groupId ") + return getPromise() + } + + if (Vue.ls.get(groupId)) { + console.log("---------popup--------getFrom Cache--------groupId = " + groupId) + return Promise.resolve(Vue.ls.get(groupId)); + } else { + console.log("--------popup----------getFrom DB---------groupId = " + groupId) + } + + // 还没有发出请求,就发出第一次的请求 + return getPromise().then(res => { + Vue.ls.set(groupId, res, expire); + return Promise.resolve(res); + }) +} + + diff --git a/smtERP-web/src/api/api.js b/smtERP-web/src/api/api.js new file mode 100644 index 0000000..2c6b055 --- /dev/null +++ b/smtERP-web/src/api/api.js @@ -0,0 +1,277 @@ +import { getAction, deleteAction, putAction, postAction, httpAction } from '@/api/manage' + +//首页统计 +const getBuyAndSaleStatistics = (params)=>getAction("/depotHead/getBuyAndSaleStatistics",params); +const buyOrSalePrice = (params)=>getAction("/depotItem/buyOrSalePrice",params); +const getOperationOverview = (params)=>getAction("/dashboard/operationOverview",params); +//租户管理 +const checkTenant = (params)=>getAction("/tenant/checkIsNameExist",params); +const addTenant = (params)=>postAction("/tenant/add",params); +const editTenant = (params)=>putAction("/tenant/update",params); +//角色管理 +const addRole = (params)=>postAction("/role/add",params); +const editRole = (params)=>putAction("/role/update",params); +const checkRole = (params)=>getAction("/role/checkIsNameExist",params); +const roleAllList = (params)=>getAction("/role/allList",params); +const getTenantRoleList = (params)=>getAction("/role/tenantRoleList",params); +//用户管理 +const registerUser = (params)=>postAction("/user/registerUser",params); +const addUser = (params)=>postAction("/user/addUser",params); +const editUser = (params)=>putAction("/user/updateUser",params); +const getUserList = (params)=>getAction("/user/getUserList",params); +const getUserBtnByCurrentUser = (params)=>getAction("/user/getUserBtnByCurrentUser",params); +const queryPermissionsByUser = (params)=>postAction("/function/findMenuByPNumber",params); +const resetPwd = (params)=>postAction("/user/resetPwd",params); +//部门管理 +const queryOrganizationTreeList = (params)=>getAction("/organization/getOrganizationTree",params); +const getAllOrganizationTreeByUser = (params)=>getAction("/organization/getAllOrganizationTreeByUser",params); +const queryOrganizationById = (params)=>getAction("/organization/findById",params); +const checkOrganization = (params)=>getAction("/organization/checkIsNameExist",params); +//经手人管理 +const addPerson = (params)=>postAction("/person/add",params); +const editPerson = (params)=>putAction("/person/update",params); +const checkPerson = (params)=>getAction("/person/checkIsNameExist",params); +const getPersonByType = (params)=>getAction("/person/getPersonByType",params); +const getPersonByNumType = (params)=>getAction("/person/getPersonByNumType",params); +//账户管理 +const addAccount = (params)=>postAction("/account/add",params); +const editAccount = (params)=>putAction("/account/update",params); +const checkAccount = (params)=>getAction("/account/checkIsNameExist",params); +const getAccount = (params)=>getAction("/account/getAccount",params); +//收支项目 +const addInOutItem = (params)=>postAction("/inOutItem/add",params); +const editInOutItem = (params)=>putAction("/inOutItem/update",params); +const checkInOutItem = (params)=>getAction("/inOutItem/checkIsNameExist",params); +const findInOutItemByParam = (params)=>getAction("/inOutItem/findBySelect",params); +//仓库信息 +const addDepot = (params)=>postAction("/depot/add",params); +const editDepot = (params)=>putAction("/depot/update",params); +const checkDepot = (params)=>getAction("/depot/checkIsNameExist",params); +//商品属性 +const addOrUpdateMaterialProperty = (params)=>postAction("/materialProperty/addOrUpdate",params); +//商品类型 +const queryMaterialCategoryTreeList = (params)=>getAction("/materialCategory/getMaterialCategoryTree",params); +const queryMaterialCategoryById = (params)=>getAction("/materialCategory/findById",params); +const checkMaterialCategory = (params)=>getAction("/materialCategory/checkIsNameExist",params); +//商品管理 +const addMaterial = (params)=>postAction("/material/add",params); +const editMaterial = (params)=>putAction("/material/update",params); +const checkMaterial = (params)=>getAction("/material/checkIsExist",params); +const getMaterialBySelect = (params)=>getAction("/material/findBySelect",params); +const getSerialMaterialBySelect = (params)=>getAction("/material/getMaterialEnableSerialNumberList",params); +const getMaterialByParam = (params)=>getAction("/material/getMaterialByParam",params); +const getMaterialByBarCode = (params)=>getAction("/material/getMaterialByBarCode",params); +const getMaxBarCode = (params)=>getAction("/material/getMaxBarCode",params); +const checkMaterialBarCode = (params)=>getAction("/materialsExtend/checkIsBarCodeExist",params); +const batchUpdateMaterial = (params)=>postAction("/material/batchUpdate",params); +const changeNameToPinYin = (params)=>postAction("/material/changeNameToPinYin",params); +//序列号 +const batAddSerialNumber = (params)=>postAction("/serialNumber/batAddSerialNumber",params); +const getEnableSerialNumberList = (params)=>postAction("/serialNumber/getEnableSerialNumberList",params); +//多属性 +const addMaterialAttribute = (params)=>postAction("/materialAttribute/add",params); +const editMaterialAttribute = (params)=>putAction("/materialAttribute/update",params); +const checkMaterialAttribute = (params)=>getAction("/materialAttribute/checkIsNameExist",params); +const getMaterialAttributeNameList = (params)=>getAction("/materialAttribute/getNameList",params); +const getMaterialAttributeValueListById = (params)=>getAction("/materialAttribute/getValueListById",params); +//功能管理 +const addFunction = (params)=>postAction("/function/add",params); +const editFunction = (params)=>putAction("/function/update",params); +const checkFunction = (params)=>getAction("/function/checkIsNameExist",params); +const checkNumber = (params)=>getAction("/function/checkIsNumberExist",params); +//系统配置 +const addSystemConfig = (params)=>postAction("/systemConfig/add",params); +const editSystemConfig = (params)=>putAction("/systemConfig/update",params); +const checkSystemConfig = (params)=>getAction("/systemConfig/checkIsNameExist",params); +const getCurrentSystemConfig = (params)=>getAction("/systemConfig/getCurrentInfo",params); +const fileSizeLimit = (params)=>getAction("/systemConfig/fileSizeLimit",params); +//字典管理 +const addDictType = (params)=>postAction("/dict/type/add",params); +const editDictType = (params)=>putAction("/dict/type/update",params); +const addDictData = (params)=>postAction("/dict/data/add",params); +const editDictData= (params)=>putAction("/dict/data/update",params); +const getDictOptionselect = (params)=>getAction("/dict/type/optionselect",params); +const getDicts = (dictType)=>getAction("/dict/data/type/"+ dictType); +//平台参数 +const addPlatformConfig = (params)=>postAction("/platformConfig/add",params); +const editPlatformConfig = (params)=>putAction("/platformConfig/update",params); +const getPlatformConfigByKey = (params)=>getAction("/platformConfig/getInfoByKey",params); +//用户|角色|模块关系 +const addUserBusiness = (params)=>postAction("/userBusiness/add",params); +const editUserBusiness = (params)=>putAction("/userBusiness/update",params); +const checkUserBusiness = (params)=>getAction("/userBusiness/checkIsValueExist",params); +const updateBtnStrByRoleId = (params)=>postAction("/userBusiness/updateBtnStr",params); +const updateOneValueByKeyIdAndType = (params)=>postAction("/userBusiness/updateOneValueByKeyIdAndType",params); +//多单位 +const addUnit = (params)=>postAction("/unit/add",params); +const editUnit = (params)=>putAction("/unit/update",params); +const checkUnit = (params)=>getAction("/unit/checkIsNameExist",params); +//供应商|客户|会员 +const addSupplier = (params)=>postAction("/supplier/add",params); +const editSupplier = (params)=>putAction("/supplier/update",params); +const checkSupplier = (params)=>getAction("/supplier/checkIsNameAndTypeExist",params); +const findBySelectSup = (params)=>postAction("/supplier/findBySelect_sup",params); +const findBySelectCus = (params)=>postAction("/supplier/findBySelect_cus",params); +const findBySelectRetail = (params)=>postAction("/supplier/findBySelect_retail",params); +const findBySelectOrgan = (params)=>postAction("/supplier/findBySelect_organ",params); +//客户分类管理 +const addCustomerCategory = (params)=>postAction("/customerCategory/add",params); +const editCustomerCategory = (params)=>putAction("/customerCategory/update",params); +const getCustomerCategoryTreeList = (params)=>getAction("/customerCategory/treeList",params); +const deleteCustomerCategory = (params)=>deleteAction("/customerCategory/delete",params); +//客户联系人管理 +const addCustomerContact = (params)=>postAction("/customerContact/add",params); +const editCustomerContact = (params)=>putAction("/customerContact/update",params); +const getCustomerContactList = (params)=>getAction("/customerContact/listByCustomerId",params); +const deleteCustomerContact = (params)=>deleteAction("/customerContact/delete",params); +//单据相关 +const findBillDetailByNumber = (params)=>getAction("/depotHead/getDetailByNumber",params); +const waitBillCount = (params)=>getAction("/depotHead/waitBillCount",params); +const getNeedCount = (params)=>getAction("/depotHead/getNeedCount",params); +const batchAddDepotHeadAndDetail = (params)=>postAction("/depotHead/batchAddDepotHeadAndDetail",params); +const quickEditDepotHead = (params)=>putAction("/depotHead/quickEdit",params); +const findStockByDepotAndBarCode = (params)=>getAction("/depotItem/findStockByDepotAndBarCode",params); +const getBatchNumberList = (params)=>getAction("/depotItem/getBatchNumberList",params); +const findFinancialDetailByNumber = (params)=>getAction("/accountHead/getDetailByNumber",params); +//销售发货管理 +const getSaleShipmentDetail = (params)=>getAction("/saleShipment/detail",params); +const getSaleShipmentSaleOutItems = (params)=>getAction("/saleShipment/saleOutItems",params); +const createSaleShipment = (params)=>postAction("/saleShipment/createFromSaleOut",params); +const batchCreateSaleShipment = (params)=>postAction("/saleShipment/batchCreateFromSaleOut",params); +const approveSaleShipment = (params)=>postAction("/saleShipment/approve",params); +const confirmSaleShipment = (params)=>postAction("/saleShipment/confirmShipment",params); +const getDeliveryPlanDetail = (params)=>getAction("/deliveryPlan/detail",params); +const getDeliveryPlanSourceItems = (params)=>getAction("/deliveryPlan/sourceItems",params); +const createDeliveryPlan = (params)=>postAction("/deliveryPlan/createFromSourceBill",params); +const batchCreateDeliveryPlan = (params)=>postAction("/deliveryPlan/batchCreateFromSourceBill",params); +const adjustDeliveryPlan = (params)=>postAction("/deliveryPlan/adjust",params); +const getSaleShipmentDeliveryPlanItems = (params)=>getAction("/saleShipment/deliveryPlanItems",params); +const createSaleShipmentFromDeliveryPlan = (params)=>postAction("/saleShipment/createFromDeliveryPlan",params); + +export { + getOperationOverview, + getBuyAndSaleStatistics, + buyOrSalePrice, + checkTenant, + addTenant, + editTenant, + addRole, + editRole, + checkRole, + roleAllList, + getTenantRoleList, + registerUser, + addUser, + editUser, + getUserList, + getUserBtnByCurrentUser, + queryPermissionsByUser, + resetPwd, + queryOrganizationTreeList, + getAllOrganizationTreeByUser, + queryOrganizationById, + checkOrganization, + addPerson, + editPerson, + checkPerson, + getPersonByType, + getPersonByNumType, + addAccount, + editAccount, + checkAccount, + getAccount, + addInOutItem, + editInOutItem, + checkInOutItem, + findInOutItemByParam, + addDepot, + editDepot, + checkDepot, + addOrUpdateMaterialProperty, + queryMaterialCategoryTreeList, + queryMaterialCategoryById, + checkMaterialCategory, + addMaterial, + editMaterial, + checkMaterial, + getMaterialBySelect, + getSerialMaterialBySelect, + getMaterialByParam, + getMaterialByBarCode, + getMaxBarCode, + checkMaterialBarCode, + batchUpdateMaterial, + changeNameToPinYin, + batAddSerialNumber, + getEnableSerialNumberList, + addMaterialAttribute, + editMaterialAttribute, + checkMaterialAttribute, + getMaterialAttributeNameList, + getMaterialAttributeValueListById, + addFunction, + editFunction, + checkFunction, + checkNumber, + addSystemConfig, + editSystemConfig, + checkSystemConfig, + getCurrentSystemConfig, + fileSizeLimit, + addDictType, + editDictType, + addDictData, + editDictData, + getDictOptionselect, + getDicts, + addPlatformConfig, + editPlatformConfig, + getPlatformConfigByKey, + addUserBusiness, + editUserBusiness, + checkUserBusiness, + updateBtnStrByRoleId, + updateOneValueByKeyIdAndType, + addUnit, + editUnit, + checkUnit, + addSupplier, + editSupplier, + checkSupplier, + findBySelectSup, + findBySelectCus, + findBySelectRetail, + findBySelectOrgan, + addCustomerCategory, + editCustomerCategory, + getCustomerCategoryTreeList, + deleteCustomerCategory, + addCustomerContact, + editCustomerContact, + getCustomerContactList, + deleteCustomerContact, + findBillDetailByNumber, + waitBillCount, + getNeedCount, + batchAddDepotHeadAndDetail, + quickEditDepotHead, + findStockByDepotAndBarCode, + getBatchNumberList, + findFinancialDetailByNumber, + getSaleShipmentDetail, + getSaleShipmentSaleOutItems, + createSaleShipment, + batchCreateSaleShipment, + approveSaleShipment, + confirmSaleShipment, + getDeliveryPlanDetail, + getDeliveryPlanSourceItems, + createDeliveryPlan, + batchCreateDeliveryPlan, + adjustDeliveryPlan, + getSaleShipmentDeliveryPlanItems, + createSaleShipmentFromDeliveryPlan +} + + + diff --git a/smtERP-web/src/api/index.js b/smtERP-web/src/api/index.js new file mode 100644 index 0000000..026a95a --- /dev/null +++ b/smtERP-web/src/api/index.js @@ -0,0 +1,10 @@ +const api = { + Login: '/user/login', + Logout: '/sys/logout', + ForgePassword: '/auth/forge-password', + Register: '/auth/register', + SendSms: '/account/sms', + // get my info + UserInfo: '/user/info' +} +export default api \ No newline at end of file diff --git a/smtERP-web/src/api/login.js b/smtERP-web/src/api/login.js new file mode 100644 index 0000000..1b21ca9 --- /dev/null +++ b/smtERP-web/src/api/login.js @@ -0,0 +1,28 @@ +import api from './index' +import { axios } from '@/utils/request' + +/** + * login func + * parameter: { + * username: '', + * password: '', + * remember_me: true, + * captcha: '12345' + * } + * @param parameter + * @returns {*} + */ +export function login(parameter) { + return axios({ + url: '/user/login', + method: 'post', + data: parameter + }) +} + +export function logout() { + return axios({ + url: '/user/logout', + method: 'get' + }) +} \ No newline at end of file diff --git a/smtERP-web/src/api/manage.js b/smtERP-web/src/api/manage.js new file mode 100644 index 0000000..c2e5ef1 --- /dev/null +++ b/smtERP-web/src/api/manage.js @@ -0,0 +1,164 @@ +import Vue from 'vue' +import { axios } from '@/utils/request' + +const api = { + user: '/api/user', + role: '/api/role', + service: '/api/service', + permission: '/api/permission', + permissionNoPager: '/api/permission/no-pager', + exportExcelByParam: '/systemConfig/exportExcelByParam' +} + +export default api + +//post +export function postAction(url,parameter) { + return axios({ + url: url, + method:'post' , + data: parameter + }) +} + +//post method= {post | put} +export function httpAction(url,parameter,method) { + return axios({ + url: url, + method:method , + data: parameter + }) +} + +//put +export function putAction(url,parameter) { + return axios({ + url: url, + method:'put', + data: parameter + }) +} + +//get +export function getAction(url,parameter) { + return axios({ + url: url, + method: 'get', + params: parameter + }) +} + +//deleteAction +export function deleteAction(url,parameter) { + return axios({ + url: url, + method: 'delete', + params: parameter + }) +} + +export function getUserList(parameter) { + return axios({ + url: api.user, + method: 'get', + params: parameter + }) +} + +export function getRoleList(parameter) { + return axios({ + url: api.role, + method: 'get', + params: parameter + }) +} + +export function getServiceList(parameter) { + return axios({ + url: api.service, + method: 'get', + params: parameter + }) +} + +export function getPermissions(parameter) { + return axios({ + url: api.permissionNoPager, + method: 'get', + params: parameter + }) +} + +// id == 0 add post +// id != 0 update put +export function saveService(parameter) { + return axios({ + url: api.service, + method: parameter.id == 0 ? 'post' : 'put', + data: parameter + }) +} + +/** + * 下载文件 用于excel导出 + * @param url + * @param parameter + * @returns {*} + */ +export function downFile(url,parameter){ + return axios({ + url: url, + params: parameter, + method: 'get', + responseType: 'blob' + }) +} + +/** + * 下载文件 用于excel导出 + * @param url + * @param parameter + * @returns {*} + */ +export function downFilePost(parameter){ + return axios({ + url: api.exportExcelByParam, + data: parameter, + method: 'post', + responseType: 'blob' + }) +} + +/** + * 文件上传 用于富文本上传图片 + * @param url + * @param parameter + * @returns {*} + */ +export function uploadAction(url,parameter){ + return axios({ + url: url, + data: parameter, + method:'post' , + headers: { + 'Content-Type': 'multipart/form-data', // 文件上传 + }, + }) +} + +/** + * 获取文件服务访问路径 + * @param avatar + * @param subStr + * @returns {*} + */ +export function getFileAccessHttpUrl(avatar,subStr) { + if(!subStr) subStr = 'http' + if(avatar && avatar.startsWith(subStr)){ + return avatar; + }else{ + if(avatar && avatar.length>0 && avatar.indexOf('[')==-1){ + return window._CONFIG['domianURL'] + "/" + avatar; + } + } +} diff --git a/smtERP-web/src/assets/SMTLoginLogo.png b/smtERP-web/src/assets/SMTLoginLogo.png new file mode 100644 index 0000000..312fa97 Binary files /dev/null and b/smtERP-web/src/assets/SMTLoginLogo.png differ diff --git a/smtERP-web/src/assets/SMTLogo.png b/smtERP-web/src/assets/SMTLogo.png new file mode 100644 index 0000000..c47ba8e Binary files /dev/null and b/smtERP-web/src/assets/SMTLogo.png differ diff --git a/smtERP-web/src/assets/checkcode.png b/smtERP-web/src/assets/checkcode.png new file mode 100644 index 0000000..844fa70 Binary files /dev/null and b/smtERP-web/src/assets/checkcode.png differ diff --git a/smtERP-web/src/assets/dark.svg b/smtERP-web/src/assets/dark.svg new file mode 100644 index 0000000..6a03a6d --- /dev/null +++ b/smtERP-web/src/assets/dark.svg @@ -0,0 +1,40 @@ + + + + Group 5 Copy 5 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smtERP-web/src/assets/less/JAreaLinkage.less b/smtERP-web/src/assets/less/JAreaLinkage.less new file mode 100644 index 0000000..d367073 --- /dev/null +++ b/smtERP-web/src/assets/less/JAreaLinkage.less @@ -0,0 +1,259 @@ +.area-zoom-in-top-enter-active, +.area-zoom-in-top-leave-active { + opacity: 1; + transform: scaleY(1); +} + +.area-zoom-in-top-enter, +.area-zoom-in-top-leave-active { + opacity: 0; + transform: scaleY(0); +} + +.area-select { + box-sizing: border-box; + margin: 0; + padding: 0; + color: rgba(0, 0, 0, 0.65); + font-size: 14px; + font-variant: tabular-nums; + line-height: 1.5; + list-style: none; + font-feature-settings: 'tnum'; + position: relative; + outline: 0; + display: block; + background-color: #fff; + border: 1px solid #d9d9d9; + border-top-width: 1.02px; + border-radius: 4px; + outline: none; + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.area-select-wrap .area-select { + display: inline-block; +} + +.area-select * { + box-sizing: border-box; +} + +.area-select:hover { + border-color: #40a9ff; + border-right-width: 1px !important; + outline: 0; +} + + +.area-select:active { + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); +} + +.area-select.small { + width: 126px; +} + +.area-select.medium { + width: 160px; +} + +.area-select.large { + width: 194px; +} + +.area-select.is-disabled { + background: #eceff5; + cursor: not-allowed; +} + +.area-select.is-disabled:hover { + border-color: #e1e2e6; +} + +.area-select.is-disabled .area-selected-trigger { + cursor: not-allowed; +} + +.area-select .area-selected-trigger { + position: relative; + display: block; + font-size: 14px; + cursor: pointer; + margin: 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + height: 100%; + padding: 8px 20px 7px 12px; +} + +.area-select .area-select-icon { + position: absolute; + top: 50%; + margin-top: -2px; + right: 6px; + content: ""; + width: 0; + height: 0; + border: 6px solid transparent; + border-top-color: rgba(0, 0, 0, 0.25); + transition: all .3s linear; + transform-origin: center; +} + +.area-select .area-select-icon.active { + margin-top: -8px; + transform: rotate(180deg); +} + +.area-selectable-list-wrap { + position: absolute; + width: 100%; + max-height: 275px; + z-index: 15000; + background-color: #fff; + box-sizing: border-box; + overflow-x: auto; + margin: 2px 0; + border-radius: 4px; + outline: none; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + + transition: opacity 0.15s, transform 0.3s !important; + transform-origin: center top !important; +} + +.area-selectable-list { + position: relative; + margin: 0; + padding: 6px 0; + width: 100%; + font-size: 14px; + color: #565656; + list-style: none; +} + +.area-selectable-list .area-select-option { + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + padding: 0 15px 0 10px; + height: 32px; + line-height: 32px; +} + +.area-selectable-list .area-select-option.hover { + background-color: #e6f7ff; +} + +.area-selectable-list .area-select-option.selected { + color: rgba(0, 0, 0, 0.65); + font-weight: 600; + background-color: #efefef; +} + +.cascader-menu-list-wrap { + position: absolute; + white-space: nowrap; + z-index: 15000; + background-color: #fff; + box-sizing: border-box; + overflow: hidden; + font-size: 0; + margin: 2px 0; + border-radius: 4px; + outline: none; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + + transition: opacity 0.15s, transform 0.3s !important; + transform-origin: center top !important; +} + +.cascader-menu-list { + position: relative; + margin: 0; + font-size: 14px; + color: #565656; + padding: 6px 0; + list-style: none; + display: inline-block; + height: 204px; + overflow-x: hidden; + overflow-y: auto; + min-width: 160px; + vertical-align: top; + background-color: #fff; + border-right: 1px solid #e4e7ed; +} + +.cascader-menu-list:last-child { + border-right: none; +} + +.cascader-menu-list .cascader-menu-option { + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + cursor: pointer; + padding: 0 15px 0 10px; + height: 32px; + line-height: 32px; +} + +.cascader-menu-list .cascader-menu-option.hover, +.cascader-menu-list .cascader-menu-option:hover { + background-color: #e6f7ff; +} + +.cascader-menu-list .cascader-menu-option.selected { + color: rgba(0, 0, 0, 0.65); + font-weight: 600; + background-color: #efefef; +} + +.cascader-menu-list .cascader-menu-option.cascader-menu-extensible:after { + position: absolute; + top: 50%; + margin-top: -4px; + right: 5px; + content: ""; + width: 0; + height: 0; + border: 4px solid transparent; + border-left-color: #a1a4ad; +} + +.cascader-menu-list::-webkit-scrollbar, +.area-selectable-list-wrap::-webkit-scrollbar { + width: 8px; + background: transparent; +} + +.area-selectable-list-wrap::-webkit-scrollbar-button:vertical:decremen, +.area-selectable-list-wrap::-webkit-scrollbar-button:vertical:end:decrement, +.area-selectable-list-wrap::-webkit-scrollbar-button:vertical:increment, +.area-selectable-list-wrap::-webkit-scrollbar-button:vertical:start:increment, +.cascader-menu-list::-webkit-scrollbar-button:vertical:decremen, +.cascader-menu-list::-webkit-scrollbar-button:vertical:end:decrement, +.cascader-menu-list::-webkit-scrollbar-button:vertical:increment, +.cascader-menu-list::-webkit-scrollbar-button:vertical:start:increment { + display: none; +} + +.cascader-menu-list::-webkit-scrollbar-thumb:vertical, +.area-selectable-list-wrap::-webkit-scrollbar-thumb:vertical { + background-color: #b8b8b8; + border-radius: 4px; +} + +.cascader-menu-list::-webkit-scrollbar-thumb:vertical:hover, +.area-selectable-list-wrap::-webkit-scrollbar-thumb:vertical:hover { + background-color: #777; +} \ No newline at end of file diff --git a/smtERP-web/src/assets/less/TableExpand.less b/smtERP-web/src/assets/less/TableExpand.less new file mode 100644 index 0000000..f5b6e39 --- /dev/null +++ b/smtERP-web/src/assets/less/TableExpand.less @@ -0,0 +1,19 @@ +/** [表格主题样式一] 表格强制列不换行 */ +.j-table-force-nowrap { + td, th { + white-space: nowrap; + } + + .ant-table-selection-column, + .ant-table-row-expand-icon-cell { + width: 42px; + min-width: 42px; + padding: 0 8px !important; + text-align: center; + } + + /** 列自适应,弊端会导致列宽失效 */ + &.ant-table-wrapper .ant-table-content { + overflow-x: auto; + } +} diff --git a/smtERP-web/src/assets/less/common.less b/smtERP-web/src/assets/less/common.less new file mode 100644 index 0000000..cba0935 --- /dev/null +++ b/smtERP-web/src/assets/less/common.less @@ -0,0 +1,141 @@ +/*列表上方操作按钮区域*/ +.ant-card-body .table-operator { + margin-bottom: 0px; +} +/** Button按钮间距 */ +.table-operator .ant-btn { + margin: 0 6px 6px 0; +} +.table-operator .ant-btn-group .ant-btn { + margin: 0; +} +.table-operator .ant-btn-group .ant-btn:last-child { + margin: 0 6px 6px 0; +} +/*列表表头与内容统一间距,避免列线和内容看起来错位*/ +.ant-table-thead > tr > th, +.ant-table-tbody .ant-table-row td { + box-sizing: border-box; + padding: 8px 10px; + line-height: 20px; + vertical-align: middle; +} +.ant-table-tbody .ant-table-row td { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +/* 表格自适应:统一表头与表体的内容溢出规则 */ +.ant-table-wrapper { + /deep/ .ant-table-thead > tr > th, + /deep/ .ant-table-tbody > tr > td { + box-sizing: border-box; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + /deep/ .ant-table-selection-column, + /deep/ .ant-table-row-expand-icon-cell { + width: 48px !important; + min-width: 48px !important; + max-width: 48px !important; + text-align: center; + } + + /deep/ .ant-table-row-expand-icon { + margin: 0 auto; + } +} +.depot-mask { + margin-top: 93px; + margin-left: 154px; +} +/*列表页面弹出modal*/ +.ant-modal-cust-warp { + height: 100% +} +/*弹出modal Y轴滚动条*/ +.ant-modal-cust-warp .ant-modal-body { + padding: 16px 18px 10px 18px; + height: calc(100% - 110px) !important; + overflow-y: auto +} +/*弹出modal 先有content后有body 故滚动条控制在body上*/ +.ant-modal-cust-warp .ant-modal-content { + height: 90%; + overflow-y: hidden +} +/*文本框样式*/ +.ant-modal-cust-warp .ant-form-item { + margin-bottom: 10px; +} +/*全屏模式*/ +.ant-modal-cust-warp .fullscreen >.ant-modal-content { + height: 100vh; + border-radius: 0; +} +/*全屏模式*/ +.ant-modal-cust-warp .fullscreen >.ant-modal-content >.ant-modal-body { + padding: 16px 18px 10px 18px; + height: calc(100% - 200px) !important; + overflow-y: auto +} +/*列表中有图片的加这个样式 参考用户管理*/ +.anty-img-wrap { + height: 25px; + position: relative; +} +.anty-img-wrap > img { + max-height: 100%; +} +/*列表中范围查询样式*/ +.query-group-cust{width: calc(50% - 10px)} +.query-group-split-cust:before{content:"~";width: 20px;display: inline-block;text-align: center} +/*erp风格子表外框padding设置*/ +.ant-card-wider-padding.cust-erp-sub-tab>.ant-card-body{padding:5px 12px} +/* 内嵌子表背景颜色 */ +.j-inner-table-wrapper /deep/ .ant-table-expanded-row .ant-table-wrapper .ant-table-tbody .ant-table-row { + background-color: #FFFFFF; +} + +.ant-modal-mask { + background-color: rgba(0, 0, 0, 0.1) !important; +} +/* 拖拽 */ +.table-draggable-handle { + width: 12px !important; + height: 36px !important; + max-height: 100% !important; + min-height: 0 !important; + left: auto !important; + right: -6px; + cursor: col-resize; + touch-action: none; + border: none; + position: absolute; + transform: none !important; + top: 0 !important; + bottom: auto !important; + z-index: 3 !important; +} +.table-draggable-handle:after { + content: ""; + display: block; + width: 1px; + height: 60%; + margin: 20% auto; + background: transparent; +} +.resize-table-th:hover .table-draggable-handle:after { + background: #1890ff; +} +.resize-table-th { + position: relative; +} +/* 单据下拉框-按钮 */ +.dropdown-btn { + float:left; + padding: 4px 8px; + cursor: pointer; +} diff --git a/smtERP-web/src/assets/less/index.less b/smtERP-web/src/assets/less/index.less new file mode 100644 index 0000000..f086f5f --- /dev/null +++ b/smtERP-web/src/assets/less/index.less @@ -0,0 +1,28 @@ +/** + * 列表查询通用样式,移动端自适应 + */ +.search{ + margin-bottom: 54px; +} +.fold{ + width: calc(100% - 216px); + display: inline-block +} +.operator{ + margin-bottom: 18px; +} +@media screen and (max-width: 900px) { + .fold { + width: 100%; + } +} +.operator button { + margin-right: 5px; +} +i { + cursor: pointer; +} +.trcolor{ + background-color: rgba(255, 192, 203, 0.31); + color:red; +} diff --git a/smtERP-web/src/assets/light.svg b/smtERP-web/src/assets/light.svg new file mode 100644 index 0000000..80222c2 --- /dev/null +++ b/smtERP-web/src/assets/light.svg @@ -0,0 +1,40 @@ + + + + Group 5 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/AvatarList/Item.vue b/smtERP-web/src/components/AvatarList/Item.vue new file mode 100644 index 0000000..f794295 --- /dev/null +++ b/smtERP-web/src/components/AvatarList/Item.vue @@ -0,0 +1,46 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/AvatarList/List.vue b/smtERP-web/src/components/AvatarList/List.vue new file mode 100644 index 0000000..ce64a84 --- /dev/null +++ b/smtERP-web/src/components/AvatarList/List.vue @@ -0,0 +1,91 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/AvatarList/index.js b/smtERP-web/src/components/AvatarList/index.js new file mode 100644 index 0000000..9621de6 --- /dev/null +++ b/smtERP-web/src/components/AvatarList/index.js @@ -0,0 +1,4 @@ +import AvatarList from './List' +import "./index.less" + +export default AvatarList \ No newline at end of file diff --git a/smtERP-web/src/components/AvatarList/index.less b/smtERP-web/src/components/AvatarList/index.less new file mode 100644 index 0000000..9ce073f --- /dev/null +++ b/smtERP-web/src/components/AvatarList/index.less @@ -0,0 +1,60 @@ +@import "../index"; + +@avatar-list-prefix-cls: ~"@{ant-pro-prefix}-avatar-list"; +@avatar-list-item-prefix-cls: ~"@{ant-pro-prefix}-avatar-list-item"; + +.@{avatar-list-prefix-cls} { + display: inline-block; + + ul { + list-style: none; + display: inline-block; + padding: 0; + margin: 0 0 0 8px; + font-size: 0; + } +} + +.@{avatar-list-item-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + margin-left: -8px; + width: @avatar-size-base; + height: @avatar-size-base; + + :global { + .ant-avatar { + border: 1px solid #fff; + cursor: pointer; + } + } + + &.large { + width: @avatar-size-lg; + height: @avatar-size-lg; + } + + &.small { + width: @avatar-size-sm; + height: @avatar-size-sm; + } + + &.mini { + width: 20px; + height: 20px; + + :global { + .ant-avatar { + width: 20px; + height: 20px; + line-height: 20px; + + .ant-avatar-string { + font-size: 12px; + line-height: 18px; + } + } + } + } +} + diff --git a/smtERP-web/src/components/ChartCard.vue b/smtERP-web/src/components/ChartCard.vue new file mode 100644 index 0000000..442a5b1 --- /dev/null +++ b/smtERP-web/src/components/ChartCard.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/CountDown/CountDown.vue b/smtERP-web/src/components/CountDown/CountDown.vue new file mode 100644 index 0000000..91cf47e --- /dev/null +++ b/smtERP-web/src/components/CountDown/CountDown.vue @@ -0,0 +1,103 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/CountDown/index.js b/smtERP-web/src/components/CountDown/index.js new file mode 100644 index 0000000..3015cc5 --- /dev/null +++ b/smtERP-web/src/components/CountDown/index.js @@ -0,0 +1,3 @@ +import CountDown from './CountDown' + +export default CountDown \ No newline at end of file diff --git a/smtERP-web/src/components/DictData/index.js b/smtERP-web/src/components/DictData/index.js new file mode 100644 index 0000000..86e29ed --- /dev/null +++ b/smtERP-web/src/components/DictData/index.js @@ -0,0 +1,49 @@ +import Vue from 'vue' +import store from '@/store' +import DataDict from '@/utils/dict' +import { getDicts } from '@/api/api' + +function searchDictByKey(dict, key) { + if (key == null && key == "") { + return null + } + try { + for (let i = 0; i < dict.length; i++) { + if (dict[i].key == key) { + return dict[i].value + } + } + } catch (e) { + return null + } +} + +function install() { + Vue.use(DataDict, { + metas: { + '*': { + labelField: 'dictLabel', + valueField: 'dictValue', + request(dictMeta) { + const storeDict = searchDictByKey(store.getters.dict, dictMeta.type) + if (storeDict) { + return new Promise(resolve => { resolve(storeDict) }) + } else { + return new Promise((resolve, reject) => { + getDicts(dictMeta.type).then(res => { + store.dispatch('dict/setDict', { key: dictMeta.type, value: res.data }) + resolve(res.data) + }).catch(error => { + reject(error) + }) + }) + } + }, + }, + }, + }) +} + +export default { + install, +} \ No newline at end of file diff --git a/smtERP-web/src/components/DictTag/index.vue b/smtERP-web/src/components/DictTag/index.vue new file mode 100644 index 0000000..4b3410d --- /dev/null +++ b/smtERP-web/src/components/DictTag/index.vue @@ -0,0 +1,46 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/Ellipsis/Ellipsis.vue b/smtERP-web/src/components/Ellipsis/Ellipsis.vue new file mode 100644 index 0000000..014f6bf --- /dev/null +++ b/smtERP-web/src/components/Ellipsis/Ellipsis.vue @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/smtERP-web/src/components/Ellipsis/index.js b/smtERP-web/src/components/Ellipsis/index.js new file mode 100644 index 0000000..d257156 --- /dev/null +++ b/smtERP-web/src/components/Ellipsis/index.js @@ -0,0 +1,3 @@ +import Ellipsis from './Ellipsis' + +export default Ellipsis \ No newline at end of file diff --git a/smtERP-web/src/components/NumberInfo/NumberInfo.vue b/smtERP-web/src/components/NumberInfo/NumberInfo.vue new file mode 100644 index 0000000..b71b2bd --- /dev/null +++ b/smtERP-web/src/components/NumberInfo/NumberInfo.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/NumberInfo/index.js b/smtERP-web/src/components/NumberInfo/index.js new file mode 100644 index 0000000..a471501 --- /dev/null +++ b/smtERP-web/src/components/NumberInfo/index.js @@ -0,0 +1,3 @@ +import NumberInfo from './NumberInfo' + +export default NumberInfo \ No newline at end of file diff --git a/smtERP-web/src/components/NumberInfo/index.less b/smtERP-web/src/components/NumberInfo/index.less new file mode 100644 index 0000000..719113d --- /dev/null +++ b/smtERP-web/src/components/NumberInfo/index.less @@ -0,0 +1,55 @@ +@import "../index"; + +@numberInfo-prefix-cls: ~"@{ant-pro-prefix}-number-info"; + +.@{numberInfo-prefix-cls} { + + .ant-pro-number-info-subtitle { + color: @text-color-secondary; + font-size: @font-size-base; + height: 22px; + line-height: 22px; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + } + + .number-info-value { + margin-top: 4px; + font-size: 0; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + + & > span { + color: @heading-color; + display: inline-block; + line-height: 32px; + height: 32px; + font-size: 24px; + margin-right: 32px; + } + + .sub-total { + color: @text-color-secondary; + font-size: @font-size-lg; + vertical-align: top; + margin-right: 0; + i { + font-size: 12px; + transform: scale(0.82); + margin-left: 4px; + } + :global { + .anticon-caret-up { + color: @red-6; + } + .anticon-caret-down { + color: @green-6; + } + } + } + } +} \ No newline at end of file diff --git a/smtERP-web/src/components/Trend/Trend.vue b/smtERP-web/src/components/Trend/Trend.vue new file mode 100644 index 0000000..4cc8853 --- /dev/null +++ b/smtERP-web/src/components/Trend/Trend.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/Trend/index.js b/smtERP-web/src/components/Trend/index.js new file mode 100644 index 0000000..761366d --- /dev/null +++ b/smtERP-web/src/components/Trend/index.js @@ -0,0 +1,3 @@ +import Trend from './Trend.vue' + +export default Trend \ No newline at end of file diff --git a/smtERP-web/src/components/Trend/index.less b/smtERP-web/src/components/Trend/index.less new file mode 100644 index 0000000..8a3d24c --- /dev/null +++ b/smtERP-web/src/components/Trend/index.less @@ -0,0 +1,42 @@ +@import "../index"; + +@trend-prefix-cls: ~"@{ant-pro-prefix}-trend"; + +.@{trend-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + line-height: 22px; + + .up, + .down { + margin-left: 4px; + position: relative; + top: 1px; + + i { + font-size: 12px; + transform: scale(0.83); + } + } + + .item-text { + display: inline-block; + margin-left: 8px; + color: rgba(0,0,0,.85); + } + + .up { + color: @red-6; + } + .down { + color: @green-6; + top: -1px; + } + + &.reverse-color .up { + color: @green-6; + } + &.reverse-color .down { + color: @red-6; + } +} \ No newline at end of file diff --git a/smtERP-web/src/components/chart/AreaChartTy.vue b/smtERP-web/src/components/chart/AreaChartTy.vue new file mode 100644 index 0000000..3d201e7 --- /dev/null +++ b/smtERP-web/src/components/chart/AreaChartTy.vue @@ -0,0 +1,88 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/Bar.vue b/smtERP-web/src/components/chart/Bar.vue new file mode 100644 index 0000000..6612fcf --- /dev/null +++ b/smtERP-web/src/components/chart/Bar.vue @@ -0,0 +1,55 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/BarAndLine.vue b/smtERP-web/src/components/chart/BarAndLine.vue new file mode 100644 index 0000000..549a31c --- /dev/null +++ b/smtERP-web/src/components/chart/BarAndLine.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/BarMultid.vue b/smtERP-web/src/components/chart/BarMultid.vue new file mode 100644 index 0000000..8a5272c --- /dev/null +++ b/smtERP-web/src/components/chart/BarMultid.vue @@ -0,0 +1,88 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/DashChartDemo.vue b/smtERP-web/src/components/chart/DashChartDemo.vue new file mode 100644 index 0000000..c2ebf08 --- /dev/null +++ b/smtERP-web/src/components/chart/DashChartDemo.vue @@ -0,0 +1,187 @@ + + + diff --git a/smtERP-web/src/components/chart/IndexBar.vue b/smtERP-web/src/components/chart/IndexBar.vue new file mode 100644 index 0000000..2e44d96 --- /dev/null +++ b/smtERP-web/src/components/chart/IndexBar.vue @@ -0,0 +1,61 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/LineChartMultid.vue b/smtERP-web/src/components/chart/LineChartMultid.vue new file mode 100644 index 0000000..1d4f174 --- /dev/null +++ b/smtERP-web/src/components/chart/LineChartMultid.vue @@ -0,0 +1,94 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/Liquid.vue b/smtERP-web/src/components/chart/Liquid.vue new file mode 100644 index 0000000..85e5b61 --- /dev/null +++ b/smtERP-web/src/components/chart/Liquid.vue @@ -0,0 +1,80 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/MiniArea.vue b/smtERP-web/src/components/chart/MiniArea.vue new file mode 100644 index 0000000..97c8ff7 --- /dev/null +++ b/smtERP-web/src/components/chart/MiniArea.vue @@ -0,0 +1,69 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/MiniBar.vue b/smtERP-web/src/components/chart/MiniBar.vue new file mode 100644 index 0000000..9dd6bca --- /dev/null +++ b/smtERP-web/src/components/chart/MiniBar.vue @@ -0,0 +1,76 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/MiniProgress.vue b/smtERP-web/src/components/chart/MiniProgress.vue new file mode 100644 index 0000000..e666828 --- /dev/null +++ b/smtERP-web/src/components/chart/MiniProgress.vue @@ -0,0 +1,75 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/Pie.vue b/smtERP-web/src/components/chart/Pie.vue new file mode 100644 index 0000000..750e203 --- /dev/null +++ b/smtERP-web/src/components/chart/Pie.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/Radar.vue b/smtERP-web/src/components/chart/Radar.vue new file mode 100644 index 0000000..b7b30b0 --- /dev/null +++ b/smtERP-web/src/components/chart/Radar.vue @@ -0,0 +1,90 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/RankList.vue b/smtERP-web/src/components/chart/RankList.vue new file mode 100644 index 0000000..f5d68fe --- /dev/null +++ b/smtERP-web/src/components/chart/RankList.vue @@ -0,0 +1,81 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/StackBar.vue b/smtERP-web/src/components/chart/StackBar.vue new file mode 100644 index 0000000..01b566f --- /dev/null +++ b/smtERP-web/src/components/chart/StackBar.vue @@ -0,0 +1,54 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/TransferBar.vue b/smtERP-web/src/components/chart/TransferBar.vue new file mode 100644 index 0000000..bb953e9 --- /dev/null +++ b/smtERP-web/src/components/chart/TransferBar.vue @@ -0,0 +1,66 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/Trend.vue b/smtERP-web/src/components/chart/Trend.vue new file mode 100644 index 0000000..1ca1deb --- /dev/null +++ b/smtERP-web/src/components/chart/Trend.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/chart/chart.less b/smtERP-web/src/components/chart/chart.less new file mode 100644 index 0000000..e04fa09 --- /dev/null +++ b/smtERP-web/src/components/chart/chart.less @@ -0,0 +1,13 @@ +.antv-chart-mini { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + +/* margin: 0 -5px; + overflow: hidden;*/ + } +} \ No newline at end of file diff --git a/smtERP-web/src/components/chart/chart.scss b/smtERP-web/src/components/chart/chart.scss new file mode 100644 index 0000000..e04fa09 --- /dev/null +++ b/smtERP-web/src/components/chart/chart.scss @@ -0,0 +1,13 @@ +.antv-chart-mini { + position: relative; + width: 100%; + + .chart-wrapper { + position: absolute; + bottom: -28px; + width: 100%; + +/* margin: 0 -5px; + overflow: hidden;*/ + } +} \ No newline at end of file diff --git a/smtERP-web/src/components/chart/mixins/ChartMixins.js b/smtERP-web/src/components/chart/mixins/ChartMixins.js new file mode 100644 index 0000000..f99c0bd --- /dev/null +++ b/smtERP-web/src/components/chart/mixins/ChartMixins.js @@ -0,0 +1,10 @@ +export const ChartEventMixins = { + methods: { + handleClick(event, chart) { + this.handleEvent('click', event, chart) + }, + handleEvent(eventName, event, chart) { + this.$emit(eventName, event, chart) + }, + } +} \ No newline at end of file diff --git a/smtERP-web/src/components/index.less b/smtERP-web/src/components/index.less new file mode 100644 index 0000000..d8c97bb --- /dev/null +++ b/smtERP-web/src/components/index.less @@ -0,0 +1,4 @@ +@import "~ant-design-vue/lib/style/index"; + +// The prefix to use on all css classes from ant-pro. +@ant-pro-prefix : ant-pro; \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JAreaLinkage.vue b/smtERP-web/src/components/jeecg/JAreaLinkage.vue new file mode 100644 index 0000000..c554d4e --- /dev/null +++ b/smtERP-web/src/components/jeecg/JAreaLinkage.vue @@ -0,0 +1,155 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JCategorySelect.vue b/smtERP-web/src/components/jeecg/JCategorySelect.vue new file mode 100644 index 0000000..53cf6e6 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JCategorySelect.vue @@ -0,0 +1,238 @@ + + diff --git a/smtERP-web/src/components/jeecg/JCheckbox.vue b/smtERP-web/src/components/jeecg/JCheckbox.vue new file mode 100644 index 0000000..a3c70f6 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JCheckbox.vue @@ -0,0 +1,43 @@ + + + diff --git a/smtERP-web/src/components/jeecg/JCodeEditor.vue b/smtERP-web/src/components/jeecg/JCodeEditor.vue new file mode 100644 index 0000000..196c2a9 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JCodeEditor.vue @@ -0,0 +1,429 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JCron.vue b/smtERP-web/src/components/jeecg/JCron.vue new file mode 100644 index 0000000..39c279e --- /dev/null +++ b/smtERP-web/src/components/jeecg/JCron.vue @@ -0,0 +1,65 @@ + + + diff --git a/smtERP-web/src/components/jeecg/JDate.vue b/smtERP-web/src/components/jeecg/JDate.vue new file mode 100644 index 0000000..7362254 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JDate.vue @@ -0,0 +1,86 @@ + + diff --git a/smtERP-web/src/components/jeecg/JEditableTable.vue b/smtERP-web/src/components/jeecg/JEditableTable.vue new file mode 100644 index 0000000..1aff0c8 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JEditableTable.vue @@ -0,0 +1,3204 @@ + + + + + + + + diff --git a/smtERP-web/src/components/jeecg/JEllipsis.vue b/smtERP-web/src/components/jeecg/JEllipsis.vue new file mode 100644 index 0000000..627113f --- /dev/null +++ b/smtERP-web/src/components/jeecg/JEllipsis.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/smtERP-web/src/components/jeecg/JFormContainer.vue b/smtERP-web/src/components/jeecg/JFormContainer.vue new file mode 100644 index 0000000..c941ed3 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JFormContainer.vue @@ -0,0 +1,61 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JGraphicCode.vue b/smtERP-web/src/components/jeecg/JGraphicCode.vue new file mode 100644 index 0000000..462a4b9 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JGraphicCode.vue @@ -0,0 +1,202 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JImageUpload.vue b/smtERP-web/src/components/jeecg/JImageUpload.vue new file mode 100644 index 0000000..8706cf7 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JImageUpload.vue @@ -0,0 +1,228 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JImportModal.vue b/smtERP-web/src/components/jeecg/JImportModal.vue new file mode 100644 index 0000000..179e42c --- /dev/null +++ b/smtERP-web/src/components/jeecg/JImportModal.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JInput.vue b/smtERP-web/src/components/jeecg/JInput.vue new file mode 100644 index 0000000..619543c --- /dev/null +++ b/smtERP-web/src/components/jeecg/JInput.vue @@ -0,0 +1,100 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JModal/index.vue b/smtERP-web/src/components/jeecg/JModal/index.vue new file mode 100644 index 0000000..4f048bb --- /dev/null +++ b/smtERP-web/src/components/jeecg/JModal/index.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/smtERP-web/src/components/jeecg/JSelectMultiple.vue b/smtERP-web/src/components/jeecg/JSelectMultiple.vue new file mode 100644 index 0000000..d0ce043 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JSelectMultiple.vue @@ -0,0 +1,66 @@ + + + diff --git a/smtERP-web/src/components/jeecg/JSlider.vue b/smtERP-web/src/components/jeecg/JSlider.vue new file mode 100644 index 0000000..18fda68 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JSlider.vue @@ -0,0 +1,116 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JSuperQuery.vue b/smtERP-web/src/components/jeecg/JSuperQuery.vue new file mode 100644 index 0000000..badadb3 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JSuperQuery.vue @@ -0,0 +1,639 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JSwitch.vue b/smtERP-web/src/components/jeecg/JSwitch.vue new file mode 100644 index 0000000..9d8f4dc --- /dev/null +++ b/smtERP-web/src/components/jeecg/JSwitch.vue @@ -0,0 +1,57 @@ + + diff --git a/smtERP-web/src/components/jeecg/JTreeDict.vue b/smtERP-web/src/components/jeecg/JTreeDict.vue new file mode 100644 index 0000000..dd413c7 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JTreeDict.vue @@ -0,0 +1,199 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JTreeSelect.vue b/smtERP-web/src/components/jeecg/JTreeSelect.vue new file mode 100644 index 0000000..41789a1 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JTreeSelect.vue @@ -0,0 +1,260 @@ + + diff --git a/smtERP-web/src/components/jeecg/JTreeTable.vue b/smtERP-web/src/components/jeecg/JTreeTable.vue new file mode 100644 index 0000000..bf14b81 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JTreeTable.vue @@ -0,0 +1,180 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/JUpload.vue b/smtERP-web/src/components/jeecg/JUpload.vue new file mode 100644 index 0000000..aa87012 --- /dev/null +++ b/smtERP-web/src/components/jeecg/JUpload.vue @@ -0,0 +1,456 @@ + + + + + diff --git a/smtERP-web/src/components/jeecg/index.js b/smtERP-web/src/components/jeecg/index.js new file mode 100644 index 0000000..0dbce86 --- /dev/null +++ b/smtERP-web/src/components/jeecg/index.js @@ -0,0 +1,9 @@ +import JModal from './JModal' +import JFormContainer from './JFormContainer.vue' + +export default { + install(Vue) { + Vue.component('JFormContainer', JFormContainer) + Vue.component(JModal.name, JModal) + } +} \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/minipop/JFilePop.vue b/smtERP-web/src/components/jeecg/minipop/JFilePop.vue new file mode 100644 index 0000000..b62222a --- /dev/null +++ b/smtERP-web/src/components/jeecg/minipop/JFilePop.vue @@ -0,0 +1,113 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/minipop/JInputPop.vue b/smtERP-web/src/components/jeecg/minipop/JInputPop.vue new file mode 100644 index 0000000..5118907 --- /dev/null +++ b/smtERP-web/src/components/jeecg/minipop/JInputPop.vue @@ -0,0 +1,101 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecg/modal/JCronModal.vue b/smtERP-web/src/components/jeecg/modal/JCronModal.vue new file mode 100644 index 0000000..954195c --- /dev/null +++ b/smtERP-web/src/components/jeecg/modal/JCronModal.vue @@ -0,0 +1,900 @@ + + + + + diff --git a/smtERP-web/src/components/jeecgbiz/JCustomerTreeSelect.vue b/smtERP-web/src/components/jeecgbiz/JCustomerTreeSelect.vue new file mode 100644 index 0000000..830b3db --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JCustomerTreeSelect.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/smtERP-web/src/components/jeecgbiz/JSelectBizComponent/JSelectBizComponentModal.vue b/smtERP-web/src/components/jeecgbiz/JSelectBizComponent/JSelectBizComponentModal.vue new file mode 100644 index 0000000..139726d --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JSelectBizComponent/JSelectBizComponentModal.vue @@ -0,0 +1,334 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecgbiz/JSelectBizComponent/index.vue b/smtERP-web/src/components/jeecgbiz/JSelectBizComponent/index.vue new file mode 100644 index 0000000..fbc77d8 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JSelectBizComponent/index.vue @@ -0,0 +1,165 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecgbiz/JSelectDepart.vue b/smtERP-web/src/components/jeecgbiz/JSelectDepart.vue new file mode 100644 index 0000000..86bb211 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JSelectDepart.vue @@ -0,0 +1,122 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecgbiz/JSelectList.vue b/smtERP-web/src/components/jeecgbiz/JSelectList.vue new file mode 100644 index 0000000..9d867a3 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JSelectList.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/smtERP-web/src/components/jeecgbiz/JSelectMultiUser.vue b/smtERP-web/src/components/jeecgbiz/JSelectMultiUser.vue new file mode 100644 index 0000000..3f9a879 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JSelectMultiUser.vue @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecgbiz/JSelectPosition.vue b/smtERP-web/src/components/jeecgbiz/JSelectPosition.vue new file mode 100644 index 0000000..f863f8e --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JSelectPosition.vue @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecgbiz/JSelectRole.vue b/smtERP-web/src/components/jeecgbiz/JSelectRole.vue new file mode 100644 index 0000000..6833a38 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JSelectRole.vue @@ -0,0 +1,38 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecgbiz/JSelectUserByDep.vue b/smtERP-web/src/components/jeecgbiz/JSelectUserByDep.vue new file mode 100644 index 0000000..eaa9b98 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/JSelectUserByDep.vue @@ -0,0 +1,89 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecgbiz/modal/JSelectBatchModal.vue b/smtERP-web/src/components/jeecgbiz/modal/JSelectBatchModal.vue new file mode 100644 index 0000000..9dd5a0f --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/modal/JSelectBatchModal.vue @@ -0,0 +1,279 @@ + + + + + diff --git a/smtERP-web/src/components/jeecgbiz/modal/JSelectDepartModal.vue b/smtERP-web/src/components/jeecgbiz/modal/JSelectDepartModal.vue new file mode 100644 index 0000000..3a95dc5 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/modal/JSelectDepartModal.vue @@ -0,0 +1,226 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/jeecgbiz/modal/JSelectMaterialModal.vue b/smtERP-web/src/components/jeecgbiz/modal/JSelectMaterialModal.vue new file mode 100644 index 0000000..f2f2a0e --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/modal/JSelectMaterialModal.vue @@ -0,0 +1,509 @@ + + + + + diff --git a/smtERP-web/src/components/jeecgbiz/modal/JSelectSnAddModal.vue b/smtERP-web/src/components/jeecgbiz/modal/JSelectSnAddModal.vue new file mode 100644 index 0000000..29aee91 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/modal/JSelectSnAddModal.vue @@ -0,0 +1,263 @@ + + + + + diff --git a/smtERP-web/src/components/jeecgbiz/modal/JSelectSnModal.vue b/smtERP-web/src/components/jeecgbiz/modal/JSelectSnModal.vue new file mode 100644 index 0000000..b2a2c3c --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/modal/JSelectSnModal.vue @@ -0,0 +1,362 @@ + + + + + diff --git a/smtERP-web/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue b/smtERP-web/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue new file mode 100644 index 0000000..4cec52f --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/modal/JSelectUserByDepModal.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/smtERP-web/src/components/jeecgbiz/modal/SelectUserListModal.vue b/smtERP-web/src/components/jeecgbiz/modal/SelectUserListModal.vue new file mode 100644 index 0000000..1da0148 --- /dev/null +++ b/smtERP-web/src/components/jeecgbiz/modal/SelectUserListModal.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/smtERP-web/src/components/layouts/BasicLayout.vue b/smtERP-web/src/components/layouts/BasicLayout.vue new file mode 100644 index 0000000..65b40cd --- /dev/null +++ b/smtERP-web/src/components/layouts/BasicLayout.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/layouts/BlankLayout.vue b/smtERP-web/src/components/layouts/BlankLayout.vue new file mode 100644 index 0000000..90c0399 --- /dev/null +++ b/smtERP-web/src/components/layouts/BlankLayout.vue @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/layouts/IframeFReportView.vue b/smtERP-web/src/components/layouts/IframeFReportView.vue new file mode 100644 index 0000000..c51e5b1 --- /dev/null +++ b/smtERP-web/src/components/layouts/IframeFReportView.vue @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/layouts/IframePageView.vue b/smtERP-web/src/components/layouts/IframePageView.vue new file mode 100644 index 0000000..bb494fe --- /dev/null +++ b/smtERP-web/src/components/layouts/IframePageView.vue @@ -0,0 +1,50 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/layouts/PageView.vue b/smtERP-web/src/components/layouts/PageView.vue new file mode 100644 index 0000000..52f691d --- /dev/null +++ b/smtERP-web/src/components/layouts/PageView.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/smtERP-web/src/components/layouts/RouteView.vue b/smtERP-web/src/components/layouts/RouteView.vue new file mode 100644 index 0000000..ce3981a --- /dev/null +++ b/smtERP-web/src/components/layouts/RouteView.vue @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/components/layouts/TabLayout.vue b/smtERP-web/src/components/layouts/TabLayout.vue new file mode 100644 index 0000000..3a26963 --- /dev/null +++ b/smtERP-web/src/components/layouts/TabLayout.vue @@ -0,0 +1,580 @@ + + + + + diff --git a/smtERP-web/src/components/layouts/UserLayout.vue b/smtERP-web/src/components/layouts/UserLayout.vue new file mode 100644 index 0000000..235125d --- /dev/null +++ b/smtERP-web/src/components/layouts/UserLayout.vue @@ -0,0 +1,324 @@ + + + + + + + + diff --git a/smtERP-web/src/components/layouts/index.js b/smtERP-web/src/components/layouts/index.js new file mode 100644 index 0000000..7cf0f77 --- /dev/null +++ b/smtERP-web/src/components/layouts/index.js @@ -0,0 +1,8 @@ +import UserLayout from '@/components/layouts/UserLayout' +import BlankLayout from '@/components/layouts/BlankLayout' +import BasicLayout from '@/components/layouts/BasicLayout' +import RouteView from '@/components/layouts/RouteView' +import PageView from '@/components/layouts/PageView' +import TabLayout from '@/components/layouts/TabLayout' + +export { UserLayout, BasicLayout, BlankLayout, RouteView, PageView, TabLayout } \ No newline at end of file diff --git a/smtERP-web/src/components/menu/Contextmenu.vue b/smtERP-web/src/components/menu/Contextmenu.vue new file mode 100644 index 0000000..f88f7b4 --- /dev/null +++ b/smtERP-web/src/components/menu/Contextmenu.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/smtERP-web/src/components/menu/SideMenu.vue b/smtERP-web/src/components/menu/SideMenu.vue new file mode 100644 index 0000000..e65eb73 --- /dev/null +++ b/smtERP-web/src/components/menu/SideMenu.vue @@ -0,0 +1,228 @@ + + + + + + + + diff --git a/smtERP-web/src/components/menu/index.js b/smtERP-web/src/components/menu/index.js new file mode 100644 index 0000000..a2756c7 --- /dev/null +++ b/smtERP-web/src/components/menu/index.js @@ -0,0 +1,208 @@ +import Menu from 'ant-design-vue/es/menu' +import Icon from 'ant-design-vue/es/icon' +import { localizedMenuText } from '@/utils/util' +import { LANGUAGE_CHANGED_EVENT } from '@/utils/language' +import { mapState } from 'vuex' + +const { Item, SubMenu } = Menu + +export default { + name: 'SMenu', + props: { + menu: { + type: Array, + required: true + }, + theme: { + type: String, + required: false, + default: 'dark' + }, + mode: { + type: String, + required: false, + default: 'inline' + }, + collapsed: { + type: Boolean, + required: false, + default: false + } + }, + data () { + return { + openKeys: [], + selectedKeys: [], + cachedOpenKeys: [] + } + }, + computed: { + ...mapState({ + currentLanguage: state => state.app.language + }), + rootSubmenuKeys: vm => { + const keys = [] + vm.menu.forEach(item => keys.push(item.url)) + return keys + } + }, + mounted () { + this.updateMenu() + window.addEventListener(LANGUAGE_CHANGED_EVENT, this.refreshLanguage) + }, + beforeDestroy () { + window.removeEventListener(LANGUAGE_CHANGED_EVENT, this.refreshLanguage) + }, + watch: { + collapsed (val) { + if (val) { + this.cachedOpenKeys = this.openKeys.concat() + this.openKeys = [] + } else { + this.openKeys = this.cachedOpenKeys + } + }, + $route: function () { + this.updateMenu() + } + }, + methods: { + refreshLanguage () { + this.$forceUpdate() + }, + // select menu item + onOpenChange (openKeys) { + + // 在水平模式下时执行,并且不再执行后续 + if (this.mode === 'horizontal') { + this.openKeys = openKeys + return + } + // 非水平模式时 + const latestOpenKey = openKeys.find(key => !this.openKeys.includes(key)) + if (!this.rootSubmenuKeys.includes(latestOpenKey)) { + this.openKeys = openKeys + } else { + this.openKeys = latestOpenKey ? [latestOpenKey] : [] + } + }, + updateMenu () { + const routes = this.$route.matched.concat() + const { hidden } = this.$route.meta + if (routes.length >= 3 && hidden) { + routes.pop() + this.selectedKeys = [routes[routes.length - 1].path] + } else { + this.selectedKeys = [routes.pop().path] + } + const openKeys = [] + if (this.mode === 'inline') { + routes.forEach(item => { + openKeys.push(item.path) + }) + } + //update-begin-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对 + if(!this.selectedKeys|| this.selectedKeys[0].indexOf(":")<0){ + this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys) + } + //update-end-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对 + }, + + // render + renderItem (menu) { + if (!menu.hidden) { + return menu.children && !menu.alwaysShow ? this.renderSubMenu(menu) : this.renderMenuItem(menu) + } + return null + }, + renderMenuItem (menu) { + const label = localizedMenuText(menu) + const target = null + const tag = target && 'a' || 'router-link' + let props = { to: { name: menu.name } } + if(menu.route && menu.route === '0'){ + props = { to: { path: menu.path } } + } + + const attrs = { href: menu.url, target: label } + + if (menu.children) { + // 把有子菜单的 并且 父菜单是要隐藏子菜单的 + // 都给子菜单增加一个 hidden 属性 + // 用来给刷新页面时, selectedKeys 做控制用 + menu.children.forEach(item => { + item.meta = Object.assign(item.meta, { hidden: true }) + }) + } + return ( + + + {this.renderIcon(menu.icon)} + {label} + + + ) + }, + renderSubMenu (menu) { + const label = localizedMenuText(menu) + const itemArr = [] + if (!menu.alwaysShow) { + menu.children.forEach(item => itemArr.push(this.renderItem(item))) + } + return ( + + + {this.renderIcon(menu.icon)} + {label} + + {itemArr} + + ) + }, + renderIcon (icon) { + if (icon === 'none' || icon === undefined) { + return null + } + const props = {} + typeof (icon) === 'object' ? props.component = icon : props.type = icon + return ( + + ) + } + }, + + render () { + const { mode, theme, menu, currentLanguage } = this + void currentLanguage + const props = { + mode: mode, + theme: theme, + openKeys: this.openKeys, + inlineIndent: 12, + } + const on = { + select: obj => { + if(obj.key.indexOf('http://')>-1 || obj.key.indexOf('https://')>-1) { + window.open(obj.key) + } else { + this.selectedKeys = obj.selectedKeys + this.$emit('select', obj) + } + }, + openChange: this.onOpenChange + } + + const menuTree = menu.map(item => { + if (item.hidden) { + return null + } + return this.renderItem(item) + }) + // {...{ props, on: on }} + return ( + + {menuTree} + + ) + } +} diff --git a/smtERP-web/src/components/page/GlobalFooter.vue b/smtERP-web/src/components/page/GlobalFooter.vue new file mode 100644 index 0000000..7322727 --- /dev/null +++ b/smtERP-web/src/components/page/GlobalFooter.vue @@ -0,0 +1,38 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/page/GlobalHeader.vue b/smtERP-web/src/components/page/GlobalHeader.vue new file mode 100644 index 0000000..75e4a69 --- /dev/null +++ b/smtERP-web/src/components/page/GlobalHeader.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/smtERP-web/src/components/page/GlobalLayout.vue b/smtERP-web/src/components/page/GlobalLayout.vue new file mode 100644 index 0000000..48c0bf2 --- /dev/null +++ b/smtERP-web/src/components/page/GlobalLayout.vue @@ -0,0 +1,1047 @@ + + + + + diff --git a/smtERP-web/src/components/page/JumpInfo.vue b/smtERP-web/src/components/page/JumpInfo.vue new file mode 100644 index 0000000..d19fedd --- /dev/null +++ b/smtERP-web/src/components/page/JumpInfo.vue @@ -0,0 +1,49 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/page/PageHeader.vue b/smtERP-web/src/components/page/PageHeader.vue new file mode 100644 index 0000000..c889f2a --- /dev/null +++ b/smtERP-web/src/components/page/PageHeader.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/smtERP-web/src/components/page/PageLayout.vue b/smtERP-web/src/components/page/PageLayout.vue new file mode 100644 index 0000000..191fd8a --- /dev/null +++ b/smtERP-web/src/components/page/PageLayout.vue @@ -0,0 +1,127 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/page/SHeaderNotice.vue b/smtERP-web/src/components/page/SHeaderNotice.vue new file mode 100644 index 0000000..5e874e8 --- /dev/null +++ b/smtERP-web/src/components/page/SHeaderNotice.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/setting/SettingDrawer.vue b/smtERP-web/src/components/setting/SettingDrawer.vue new file mode 100644 index 0000000..3269772 --- /dev/null +++ b/smtERP-web/src/components/setting/SettingDrawer.vue @@ -0,0 +1,300 @@ + + + + + diff --git a/smtERP-web/src/components/setting/SettingItem.vue b/smtERP-web/src/components/setting/SettingItem.vue new file mode 100644 index 0000000..de0cbe0 --- /dev/null +++ b/smtERP-web/src/components/setting/SettingItem.vue @@ -0,0 +1,38 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/table/StandardTable.vue b/smtERP-web/src/components/table/StandardTable.vue new file mode 100644 index 0000000..bc6044a --- /dev/null +++ b/smtERP-web/src/components/table/StandardTable.vue @@ -0,0 +1,252 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/table/index.js b/smtERP-web/src/components/table/index.js new file mode 100644 index 0000000..8d19449 --- /dev/null +++ b/smtERP-web/src/components/table/index.js @@ -0,0 +1,268 @@ +import T from "ant-design-vue/es/table/Table"; +import get from "lodash.get" +export default { + data() { + return { + needTotalList: [], + + selectedRows: [], + selectedRowKeys: [], + + localLoading: false, + localDataSource: [], + localPagination: Object.assign({}, T.props.pagination) + }; + }, + props: Object.assign({}, T.props, { + rowKey: { + type: [String, Function], + default: 'id' + }, + data: { + type: Function, + required: true + }, + pageNum: { + type: Number, + default: 1 + }, + pageSize: { + type: Number, + default: 10 + }, + showSizeChanger: { + type: Boolean, + default: true + }, + showAlertInfo: { + type: Boolean, + default: false + }, + showPagination: { + default: 'auto' + } + }), + watch: { + 'localPagination.current'(val) { + this.$router.push({ + name: this.$route.name, + params: Object.assign({}, this.$route.params, { + pageNo: val + }), + }); + }, + pageNum(val) { + Object.assign(this.localPagination, { + current: val + }); + }, + pageSize(val) { + console.log('pageSize:', val) + Object.assign(this.localPagination, { + pageSize: val + }); + }, + showSizeChanger(val) { + console.log('showSizeChanger', val) + Object.assign(this.localPagination, { + showSizeChanger: val + }); + } + }, + created() { + this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, { + current: this.pageNum, + pageSize: this.pageSize, + showSizeChanger: this.showSizeChanger + }); + this.needTotalList = this.initTotalList(this.columns) + this.loadData(); + }, + methods: { + refresh() { + this.loadData(); + }, + loadData(pagination, filters, sorter) { + + this.localLoading = true + var result = this.data( + Object.assign({ + pageNo: (pagination && pagination.current) || + this.localPagination.current, + pageSize: (pagination && pagination.pageSize) || + this.localPagination.pageSize + }, + (sorter && sorter.field && { + sortField: sorter.field + }) || {}, + (sorter && sorter.order && { + sortOrder: sorter.order + }) || {}, { + ...filters + } + ) + ); + + if (result instanceof Promise) { + result.then(r => { + this.localPagination = Object.assign({}, this.localPagination, { + current: r.pageNo, // 返回结果中的当前分页数 + total: r.totalCount, // 返回结果中的总记录数 + showSizeChanger: this.showSizeChanger, + pageSize: (pagination && pagination.pageSize) || + this.localPagination.pageSize + }); + + !r.totalCount && ['auto', false].includes(this.showPagination) && (this.localPagination = false) + this.localDataSource = r.data; // 返回结果中的数组数据 + this.localLoading = false + }); + } + }, + initTotalList(columns) { + const totalList = [] + columns && columns instanceof Array && columns.forEach(column => { + if (column.needTotal) { + totalList.push({ ...column, + total: 0 + }) + } + }) + return totalList + }, + updateSelect(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + let list = this.needTotalList + this.needTotalList = list.map(item => { + return { + ...item, + total: selectedRows.reduce((sum, val) => { + let total = sum + get(val, item.dataIndex) + return isNaN(total) ? 0 : total + }, 0) + } + }) + // this.$emit('change', selectedRowKeys, selectedRows) + }, + updateEdit() { + this.selectedRows = [] + }, + onClearSelected() { + // 【TESTA-262】页面清空后还能才做所选行,增加 this.$emit('clearAll') + this.selectedRowKeys = [] + this.selectedRows = [] + this.updateSelect([], []) + this.$emit('clearAll') + }, + renderMsg(h) { + const _vm = this + let d = [] + // 构建 已选择 + d.push( + h('span', { + style: { + marginRight: '12px' + } + }, ['已选择 ', h('a', { + style: { + fontWeight: 600 + } + }, this.selectedRows.length)]) + ); + + // 构建 列统计 + this.needTotalList.map(item => { + d.push(h('span', { + style: { + marginRight: '12px' + } + }, + [ + `${ item.title }总计 `, + h('a', { + style: { + fontWeight: 600 + } + }, `${ !item.customRender ? item.total : item.customRender(item.total) }`) + ])) + }); + + // 构建 清空选择 + d.push(h('a', { + style: { + marginLeft: '24px' + }, + on: { + click: _vm.onClearSelected + } + }, '清空')) + + return d + }, + renderAlert(h) { + return h('span', { + slot: 'message' + }, this.renderMsg(h)) + }, + }, + + render(h) { + const _vm = this + + let props = {}, + localKeys = Object.keys(this.$data); + + Object.keys(T.props).forEach(k => { + let localKey = `local${k.substring(0,1).toUpperCase()}${k.substring(1)}`; + if (localKeys.includes(localKey)) { + return props[k] = _vm[localKey]; + } + return props[k] = _vm[k]; + }) + + + // 显示信息提示 + if (this.showAlertInfo) { + + props.rowSelection = { + selectedRowKeys: this.selectedRowKeys, + onChange: (selectedRowKeys, selectedRows) => { + _vm.updateSelect(selectedRowKeys, selectedRows) + _vm.$emit('onSelect', { selectedRowKeys: selectedRowKeys, selectedRows: selectedRows }) + } + }; + + return h('div', {}, [ + h("a-alert", { + style: { + marginBottom: '16px' + }, + props: { + type: 'info', + showIcon: true + } + }, [_vm.renderAlert(h)]), + h("a-table", { + tag: "component", + attrs: props, + on: { + change: _vm.loadData + }, + scopedSlots: this.$scopedSlots + }, this.$slots.default) + ]); + + } + + return h("a-table", { + tag: "component", + attrs: props, + on: { + change: _vm.loadData + }, + scopedSlots: this.$scopedSlots + }, this.$slots.default); + + } +}; \ No newline at end of file diff --git a/smtERP-web/src/components/tools/BillExcelIframe.vue b/smtERP-web/src/components/tools/BillExcelIframe.vue new file mode 100644 index 0000000..4197205 --- /dev/null +++ b/smtERP-web/src/components/tools/BillExcelIframe.vue @@ -0,0 +1,83 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/Breadcrumb.vue b/smtERP-web/src/components/tools/Breadcrumb.vue new file mode 100644 index 0000000..53d031a --- /dev/null +++ b/smtERP-web/src/components/tools/Breadcrumb.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/smtERP-web/src/components/tools/DepartSelect.vue b/smtERP-web/src/components/tools/DepartSelect.vue new file mode 100644 index 0000000..3bbee68 --- /dev/null +++ b/smtERP-web/src/components/tools/DepartSelect.vue @@ -0,0 +1,162 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/DetailList.vue b/smtERP-web/src/components/tools/DetailList.vue new file mode 100644 index 0000000..bd74971 --- /dev/null +++ b/smtERP-web/src/components/tools/DetailList.vue @@ -0,0 +1,147 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/DynamicNotice.vue b/smtERP-web/src/components/tools/DynamicNotice.vue new file mode 100644 index 0000000..539ce52 --- /dev/null +++ b/smtERP-web/src/components/tools/DynamicNotice.vue @@ -0,0 +1,37 @@ + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/FooterToolBar.vue b/smtERP-web/src/components/tools/FooterToolBar.vue new file mode 100644 index 0000000..63b3c1b --- /dev/null +++ b/smtERP-web/src/components/tools/FooterToolBar.vue @@ -0,0 +1,32 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/HeadInfo.vue b/smtERP-web/src/components/tools/HeadInfo.vue new file mode 100644 index 0000000..d258a15 --- /dev/null +++ b/smtERP-web/src/components/tools/HeadInfo.vue @@ -0,0 +1,66 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/HeaderNotice.vue b/smtERP-web/src/components/tools/HeaderNotice.vue new file mode 100644 index 0000000..248ad56 --- /dev/null +++ b/smtERP-web/src/components/tools/HeaderNotice.vue @@ -0,0 +1,296 @@ + + + + + + diff --git a/smtERP-web/src/components/tools/ImportFileModal.vue b/smtERP-web/src/components/tools/ImportFileModal.vue new file mode 100644 index 0000000..41d0c7e --- /dev/null +++ b/smtERP-web/src/components/tools/ImportFileModal.vue @@ -0,0 +1,96 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/LanguageSwitcher.vue b/smtERP-web/src/components/tools/LanguageSwitcher.vue new file mode 100644 index 0000000..32ebb06 --- /dev/null +++ b/smtERP-web/src/components/tools/LanguageSwitcher.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/smtERP-web/src/components/tools/Logo.vue b/smtERP-web/src/components/tools/Logo.vue new file mode 100644 index 0000000..4b4500c --- /dev/null +++ b/smtERP-web/src/components/tools/Logo.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/smtERP-web/src/components/tools/ShowAnnouncement.vue b/smtERP-web/src/components/tools/ShowAnnouncement.vue new file mode 100644 index 0000000..bf7e218 --- /dev/null +++ b/smtERP-web/src/components/tools/ShowAnnouncement.vue @@ -0,0 +1,145 @@ + + + + + + diff --git a/smtERP-web/src/components/tools/TwoStepCaptcha.vue b/smtERP-web/src/components/tools/TwoStepCaptcha.vue new file mode 100644 index 0000000..8b4c94d --- /dev/null +++ b/smtERP-web/src/components/tools/TwoStepCaptcha.vue @@ -0,0 +1,89 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/UserMenu.vue b/smtERP-web/src/components/tools/UserMenu.vue new file mode 100644 index 0000000..c9c2c5c --- /dev/null +++ b/smtERP-web/src/components/tools/UserMenu.vue @@ -0,0 +1,297 @@ + + + + + + + diff --git a/smtERP-web/src/components/tools/UserPassword.vue b/smtERP-web/src/components/tools/UserPassword.vue new file mode 100644 index 0000000..6e28a34 --- /dev/null +++ b/smtERP-web/src/components/tools/UserPassword.vue @@ -0,0 +1,154 @@ + + + + + + diff --git a/smtERP-web/src/components/tools/WorkflowIframe.vue b/smtERP-web/src/components/tools/WorkflowIframe.vue new file mode 100644 index 0000000..4cd0ae6 --- /dev/null +++ b/smtERP-web/src/components/tools/WorkflowIframe.vue @@ -0,0 +1,109 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/components/tools/setting.js b/smtERP-web/src/components/tools/setting.js new file mode 100644 index 0000000..95f984d --- /dev/null +++ b/smtERP-web/src/components/tools/setting.js @@ -0,0 +1,95 @@ +import { message } from 'ant-design-vue/es'; +// import defaultSettings from '../defaultSettings'; + +let lessNodesAppended; + +const colorList = [ + { + key: 'dustRed', color: '#F5222D', + }, + { + key: 'volcano', color: '#FA541C', + }, + { + key: 'sunset', color: '#FAAD14', + }, + { + key: 'cyan', color: '#13C2C2', + }, + { + key: 'green', color: '#52C41A', + }, + { + key: 'blue', color: '#1890FF', + }, + { + key: 'geekBlue', color: '#2F54EB', + }, + { + key: 'purple', color: '#722ED1', + }, +]; + +const updateTheme = primaryColor => { + // Don't compile less in production! + /* if (process.env.NODE_ENV === 'production') { + return; + } */ + // Determine if the component is remounted + if (!primaryColor) { + return; + } + const hideMessage = message.loading('正在编译主题!', 0); + console.info(`正在编译主题!`) + function buildIt() { + // 正确的判定less是否已经加载less.modifyVars可用 + if (!window.less || !window.less.modifyVars) { + return; + } + // less.modifyVars可用 + window.less.modifyVars({ + '@primary-color': primaryColor, + }) + .then(() => { + hideMessage(); + }) + .catch(() => { + message.error('Failed to update theme'); + hideMessage(); + }); + } + if (!lessNodesAppended) { + // insert less.js and color.less + const lessStyleNode = document.createElement('link'); + const lessConfigNode = document.createElement('script'); + const lessScriptNode = document.createElement('script'); + lessStyleNode.setAttribute('rel', 'stylesheet/less'); + lessStyleNode.setAttribute('href', '/static/color.less'); + lessConfigNode.innerHTML = ` + window.less = { + async: true, + env: 'production', + javascriptEnabled: true + }; + `; + lessScriptNode.src = '/static/less.min.js'; + lessScriptNode.async = true; + lessScriptNode.onload = () => { + buildIt(); + lessScriptNode.onload = null; + }; + document.body.appendChild(lessStyleNode); + document.body.appendChild(lessConfigNode); + document.body.appendChild(lessScriptNode); + lessNodesAppended = true; + } else { + buildIt(); + } +}; + +const updateColorWeak = colorWeak => { + // document.body.className = colorWeak ? 'colorWeak' : ''; + colorWeak ? document.body.classList.add('colorWeak') : document.body.classList.remove('colorWeak') +}; + +export { updateTheme, colorList, updateColorWeak } diff --git a/smtERP-web/src/config/router.config.js b/smtERP-web/src/config/router.config.js new file mode 100644 index 0000000..0348ee3 --- /dev/null +++ b/smtERP-web/src/config/router.config.js @@ -0,0 +1,60 @@ +import { UserLayout, TabLayout, RouteView, BlankLayout, PageView } from '@/components/layouts' + +/** + * 走菜单,走权限控制 + * @type {[null,null]} + */ +export const asyncRouterMap = [ + + { + path: '/', + name: 'dashboard', + component: TabLayout, + meta: { title: '首页' }, + redirect: '/dashboard/analysis', + children: [ + + ] + }, + { + path: '*', redirect: '/404', hidden: true + } +] + +/** + * 基础路由 + * @type { *[] } + */ +export const constantRouterMap = [ + { + path: '/user', + component: UserLayout, + redirect: '/user/login', + hidden: true, + children: [ + { + path: 'login', + name: 'login', + component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login') + } + ] + }, + { + path: '/dashboard', + component: TabLayout, + redirect: '/dashboard/analysis', + children: [ + { + path: 'analysis', + name: 'analysis', + meta: { title: '首页' }, + component: () => import(/* webpackChunkName: "dashboard" */ '@/views/dashboard/Analysis') + } + ] + }, + { + path: '/404', + component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404') + }, + +] diff --git a/smtERP-web/src/defaultSettings.js b/smtERP-web/src/defaultSettings.js new file mode 100644 index 0000000..ee5ba23 --- /dev/null +++ b/smtERP-web/src/defaultSettings.js @@ -0,0 +1,32 @@ +/** + * 项目默认配置项 + * primaryColor - 默认主题色 + * navTheme - sidebar theme ['dark', 'light'] 两种主题 + * colorWeak - 色盲模式 + * layout - 整体布局方式 ['sidemenu', 'topmenu'] 两种布局 + * fixedHeader - 固定 Header : boolean + * fixSiderbar - 固定左侧菜单栏 : boolean + * autoHideHeader - 向下滚动时,隐藏 Header : boolean + * contentWidth - 内容区布局: 流式 | 固定 + * + * storageOptions: {} - Vue-ls 插件配置项 (localStorage/sessionStorage) + * + */ + +export default { + primaryColor: '#1890FF', // primary color of ant design + navTheme: 'light', // theme for nav menu + layout: 'sidemenu', // nav menu position: sidemenu or topmenu + contentWidth: 'Fixed', // layout of content: Fluid or Fixed, only works when layout is topmenu + fixedHeader: true, // sticky header + fixSiderbar: true, // sticky siderbar + autoHideHeader: false, // auto hide header + colorWeak: false, + multipage: true, //默认多页签模式 + // vue-ls options + storageOptions: { + namespace: 'pro__', // key prefix + name: 'ls', // name variable Vue.[ls] or this.[$ls], + storage: 'local', // storage name session, local, memory + } +} \ No newline at end of file diff --git a/smtERP-web/src/locales/business-ui.js b/smtERP-web/src/locales/business-ui.js new file mode 100644 index 0000000..4af32fb --- /dev/null +++ b/smtERP-web/src/locales/business-ui.js @@ -0,0 +1,238 @@ +const enUS = { + '名称': 'Name', '编号': 'Code', '操作': 'Operation', '数量': 'Quantity', '英文名称': 'English Name', '上级编号': 'Parent Code', '上级名称': 'Parent Name', + '查询': 'Search', '重置': 'Reset', '取消': 'Cancel', '刷新': 'Refresh', '查看': 'View', '关闭': 'Close', + '链接': 'URL', '组件': 'Component', '排序': 'Order', '是否启用': 'Enabled', '图标': 'Icon', + '请输入名称查询': 'Enter name', '请输入编号查询': 'Enter code', '请输入英文名称查询': 'Enter English name', + '请输入编号': 'Enter code', '请输入名称': 'Enter name', '请输入英文菜单名称': 'Enter English menu name', + '请输入编号!': 'Enter code', '请输入名称!': 'Enter name', '请输入英文名称!': 'Enter English name', + '请输入上级编号!': 'Select a parent code', '请输入链接!': 'Enter URL', '请输入组件!': 'Enter component', '请输入排序!': 'Enter order', '请输入图标!': 'Select an icon', + '请选择上级编号': 'Select a parent code', '请输入链接': 'Enter URL', '请输入组件': 'Enter component', '请输入排序': 'Enter order', + '功能按钮': 'Action Permissions', '请选择功能按钮': 'Select action permissions', '请选择图标': 'Select an icon', '选择图标': 'Choose Icon', + '启用禁用': 'Enable / Disable', '作废': 'Void', '长度在 2 到 30 个字符': 'Length must be between 2 and 30 characters', + '请输入英文名称': 'Enter English name', '英文名称不能超过 100 个字符': 'English name cannot exceed 100 characters', + '编号已经存在!': 'This code already exists.', '名称已经存在!': 'This name already exists.', + '计划单号': 'Plan No.', '请输入计划单号': 'Enter plan number', '出库单号': 'Shipment No.', '请输入出库单号': 'Enter shipment number', + '发货单号': 'Shipment Notice No.', '请输入发货单号': 'Enter shipment notice number', '请输入销售出库单号': 'Enter sales shipment number', + '来源': 'Source', '请选择来源': 'Select a source', '订单/计划': 'Order / Plan', '请输入订单或交货计划': 'Enter order or delivery plan', + '交货计划': 'Delivery Plan', '销售出库单': 'Sales Shipment', '订单/交货计划': 'Order / Delivery Plan', + '客户/会员': 'Customer / Member', '计划数量': 'Planned Qty.', '计划交货时间': 'Planned Delivery', + '通知数量': 'Notice Qty.', '实际发货': 'Actual Shipped', '差异': 'Difference', '物流公司': 'Carrier', '物流单号': 'Tracking No.', + '确认审批通过该发货通知?': 'Approve this shipment notice?', '确认驳回该发货通知?': 'Reject this shipment notice?', + '确认删除该发货通知?': 'Delete this shipment notice?', '审批失败': 'Approval failed', '删除失败': 'Delete failed', + '条码': 'Barcode', '规格': 'Specification', '型号': 'Model', '批号': 'Batch No.', '单位': 'Unit', '备注': 'Remarks', '调整': 'Adjust', + '仓库名称': 'Warehouse', '请选择仓库': 'Select a warehouse', '关联单据': 'Related Document', '请输入关联单据': 'Enter related document', + '会员卡号': 'Member Card No.', '请选择会员卡号': 'Select a member card', '会员': 'Member', '收款类型': 'Receipt Type', + '金额合计': 'Total Amount', '含税合计': 'Tax-inclusive Total', '优惠率': 'Discount Rate', '退款优惠': 'Refund Discount', + '付款优惠': 'Payment Discount', '优惠后金额': 'Amount After Discount', '其它费用': 'Other Charges', '待退金额': 'Refund Due', + '待付金额': 'Amount Due', '本次退款': 'Current Refund', '本次欠款': 'Current Balance', '最终欠款': 'Final Balance', + '本次付款': 'Current Payment', '收款金额': 'Amount Received', '付款金额': 'Amount Paid', '找零': 'Change', + '收款账户': 'Receipt Account', '付款账户': 'Payment Account', '扣除订金': 'Deposit Applied', '支付订金': 'Deposit Paid', + '剩余订金': 'Remaining Deposit', '关联请购单': 'Related Requisition', '请输入关联请购单': 'Enter requisition number', + '关联订单': 'Related Order', '请输入关联订单': 'Enter related order', '请选择供应商': 'Select a supplier', + '请选择有无本次欠款': 'Select current balance status', '请选择有无最终欠款': 'Select final balance status', + '有付款单': 'Payment Created', '暂未付款': 'Not Paid', + '方案编号': 'BOM No.', '请输入方案编号': 'Enter BOM number', '方案名称': 'BOM Name', '请输入方案名称': 'Enter BOM name', + '生产成品': 'Finished Product', '请输入成品名称/规格/型号': 'Enter product name, specification, or model', + '启用状态': 'Enabled Status', '请选择启用状态': 'Select enabled status', '待包装产品': 'Product to Pack', '成品SKU': 'Finished Product SKU', + '产出数量': 'Output Qty.', '版本': 'Version', '请输入版本': 'Enter version', '包材明细数': 'Packaging Item Count', '创建时间': 'Created At', '确认操作': 'Confirm Action', + '组成物料': 'Component Material', '组成比例(每1单位成品)': 'Qty. per Finished Unit', + '组成物料(每生产1单位成品所需用量)': 'Component Materials (quantity required per finished unit)', + '工单号': 'Work Order No.', '请输入工单号': 'Enter work order number', '来源单号': 'Source Document No.', '请输入来源单号': 'Enter source document number', + '请输入产品名称/规格/型号': 'Enter product name, specification, or model', '优先级': 'Priority', '请选择优先级': 'Select a priority', + '计划开始日期': 'Planned Start Date', '计划结束日期': 'Planned End Date', '请选择开始日期': 'Select start date', '请选择结束日期': 'Select end date', + '关闭工单': 'Close Work Order', '请输入关闭原因': 'Enter close reason', '请选择默认发料仓库': 'Select default issue warehouse', + '计划生产数量': 'Planned Production Qty.', '进度': 'Progress', '计划开始': 'Planned Start', '计划结束': 'Planned End', + '已创建': 'Created', '已完工': 'Completed', '新增工单': 'Add Work Order', '完工报工': 'Report Completion', '关闭原因': 'Close Reason', + '默认发料仓库': 'Default Issue Warehouse', '领料单号': 'Requisition No.', '请输入领料单号': 'Enter requisition number', + '生产工单号': 'Work Order No.', '明细仓库': 'Item Warehouse', '创建开始日期': 'Created From', '创建结束日期': 'Created To', + '驳回领料单': 'Reject Requisition', '请输入驳回原因': 'Enter rejection reason', '物料明细': 'Material Details', + '明细条数': 'Item Count', '申请数量合计': 'Total Requested Qty.', '确认人': 'Confirmed By', '驳回原因': 'Rejection Reason', + '报告号': 'Report No.', '请输入报告号': 'Enter report number', '审核状态': 'Approval Status', '请选择审核状态': 'Select approval status', + '报工开始日期': 'Reported From', '报工结束日期': 'Reported To', '良品数': 'Good Qty.', '不良品数': 'Defective Qty.', + '质检结果': 'QC Result', '入库单号': 'Receipt No.', '报工人': 'Reported By', '审核人': 'Approved By', '报工日期': 'Reported At', + '审核驳回': 'Reject', '类别': 'Category', '请选择类别': 'Select a category', '仓位货架': 'Bin / Shelf', + '请输入仓位货架查询': 'Enter bin or shelf', '零库存': 'Zero Stock', '查看大图': 'View Image', '库存详情': 'Stock Details', + '图片': 'Image', '颜色': 'Color', '品牌': 'Brand', '制造商': 'Manufacturer', '成本价': 'Cost Price', + '初始库存': 'Opening Stock', '库存': 'Stock', '库存金额': 'Stock Value', '重量': 'Weight', '隐藏': 'Hide', '显示': 'Show', + '关键字': 'Keyword', '资产编号/名称/规格': 'Asset code / name / specification', '资产分类': 'Asset Category', '请输入分类': 'Enter category', + '分类管理': 'Category Management', '全部分类': 'All Categories', '请选择资产分类': 'Select an asset category', + '资产分类管理': 'Asset Category Management', '分类编码': 'Category Code', '请输入分类编码': 'Enter a category code', + '如 HARDWARE': 'e.g. HARDWARE', '种类名称': 'Category Name', '请输入种类名称': 'Enter a category name', + '新增分类': 'Add Category', '保存修改': 'Save Changes', '取消编辑': 'Cancel Editing', + '说明': 'Description', '分类用途或归类说明': 'Describe how this category is used', '启用': 'Enabled', + '编辑': 'Edit', '删除': 'Delete', '状态': 'Status', '确定删除该资产分类吗?': 'Delete this asset category?', + '资产分类保存成功': 'Asset category saved successfully', '资产分类已删除': 'Asset category deleted', + '保存失败': 'Save failed', '保存成功': 'Saved successfully', + '未分类': 'Uncategorized', '硬件资产': 'Hardware Assets', '软件资产': 'Software Assets', 'SIM卡': 'SIM Cards', + '生产设备': 'Production Equipment', '检测设备': 'Inspection Equipment', '动力设备': 'Power Equipment', + 'IT设备': 'IT Equipment', '物流设备': 'Logistics Equipment', '工装设备': 'Tooling Equipment', + '点击复制备注': 'Click to copy remarks', '备注已复制': 'Remarks copied', '复制失败,请手动复制': 'Copy failed. Please copy the text manually.', + '确定删除该资产吗?': 'Delete this asset?', '闲置': 'Idle', '使用中': 'In Use', '维修中': 'Under Repair', '已报废': 'Scrapped', + '资产编号': 'Asset Code', '资产名称': 'Asset Name', '分类': 'Category', '规格型号': 'Specification / Model', + '资产原值': 'Original Value', '使用部门': 'Department', '保管人': 'Custodian', '存放地点': 'Location', '存放位置': 'Location', '购置日期': 'Purchase Date', '规格 / 型号': 'Specification / Model', + '查看资产': 'View Asset', '编辑资产': 'Edit Asset', '新增资产': 'Add Asset', '请输入资产编号': 'Enter asset code', '请输入资产名称': 'Enter asset name', + '张': 'pcs', '套': 'sets', '台': 'units', '个': 'pcs', '项': 'items', + '设备编号/名称/序列号/资产编号': 'Equipment code / name / serial / asset code', '设备分类': 'Equipment Category', + '确定删除该设备吗?': 'Delete this equipment?', '运行中': 'Running', '停机': 'Stopped', '设备编号': 'Equipment Code', + '设备名称': 'Equipment Name', '关联资产': 'Related Asset', '出厂序列号': 'Serial No.', '安装地点': 'Installation Location', + '查看设备': 'View Equipment', '编辑设备': 'Edit Equipment', '新增设备': 'Add Equipment', '请输入设备编号': 'Enter equipment code', '请输入设备名称': 'Enter equipment name', + '设备型号': 'Equipment Model', '启用日期': 'Commissioned At', + '最近盘点': 'Last Counted', '下次保养': 'Next Maintenance', '盘点单号或计划名称': 'Count number or plan name', + '计划时间': 'Plan Period', '盘点人员': 'Counter', '全部人员': 'All Personnel', '全部状态': 'All Statuses', '盘点范围': 'Count Scope', + '全部范围': 'All Scopes', '确定删除该盘点计划吗?': 'Delete this count plan?', '扫描或输入资产/设备编号': 'Scan or enter asset/equipment code', + '全部明细状态': 'All Item Statuses', '登记盘点结果': 'Record Count Result', '账面数量': 'Book Qty.', '账面地点': 'Book Location', + '实盘数量': 'Counted Qty.', '请输入实盘数量': 'Enter counted quantity', '实际部门': 'Actual Department', '实际地点': 'Actual Location', + '盘点结果': 'Count Result', '留空时按数量和位置自动判断': 'Leave blank to determine from quantity and location', '留空时自动判断正常或异常': 'Leave blank to determine normal or exception automatically', + '待接单': 'Pending Assignment', '待盘点': 'Pending Count', '盘点中': 'Counting', '已关结': 'Closed', '计划名称': 'Plan Name', + '范围': 'Scope', '执行进度': 'Execution Progress', '正常数': 'Normal Count', '异常数': 'Exception Count', '类型': 'Type', + '结果': 'Result', '账面部门': 'Book Department', '盘点时间': 'Counted At', '盘点人': 'Counted By', '盘点单号': 'Count No.', + '新建盘点计划': 'Create Count Plan', '全部账号': 'All Accounts', '查看明细': 'View Details', '开始盘点': 'Start Count', '提审': 'Submit for Review', + '通过': 'Approve', '驳回': 'Reject', '关结': 'Close', '至': 'to', '定位': 'Locate', '未盘点': 'Not Counted', '已盘点': 'Counted', + '正常': 'Normal', '异常': 'Exception', '现场图片': 'On-site Images', '查看盘点图片': 'View Count Images', '盘点图片': 'Count Images', + '未上传': 'Not Uploaded', '暂无盘点图片': 'No Count Images', '盘点': 'Count', '修正': 'Correct', '手工创建': 'Manual', '接口创建': 'API', + '共 {total} 项,已盘 {counted} 项,正常 {normal} 项,异常 {abnormal} 项': '{total} items; {counted} counted, {normal} normal, {abnormal} exceptions', + '开始盘点后将进入执行状态,是否继续?': 'The plan will enter execution status. Continue?', '所有明细盘点完成后才可提审,是否继续?': 'All items must be counted before review. Continue?', + '确认审核通过?': 'Approve this count plan?', '确认驳回并退回盘点中?': 'Reject and return this plan to Counting?', '关结后不能再修改盘点结果,是否继续?': 'Count results cannot be changed after closing. Continue?', + '操作失败': 'Operation failed', '加载明细失败': 'Failed to load count details', + '确定计划信息并选择本次盘点对象': 'Confirm the plan and select items to count', '建单后将固化所选资产和设备的账面信息,便于后续核对与追溯。': 'The selected asset and equipment records will be snapshotted for reconciliation and traceability.', + '项已选择': 'items selected', '请输入计划名称': 'Enter a plan name', '如:SMT 一线月度资产盘点': 'e.g. SMT Line 1 Monthly Asset Count', + '计划开始时间': 'Planned Start Time', '计划结束时间': 'Planned End Time', '请选择开始时间': 'Select a start time', '请选择结束时间': 'Select an end time', + '盘点操作账号': 'Count Operator Account', '从系统账号中选择': 'Select a system account', '请选择盘点操作账号': 'Select a count operator account', + '计划说明': 'Plan Notes', '填写盘点区域、班次或注意事项(选填)': 'Enter the area, shift, or notes (optional)', + '选择盘点对象': 'Select Count Items', '支持资产与设备混合选择,输入编号、名称、型号、部门或位置可快速定位。': 'Select both assets and equipment; search by code, name, model, department, or location.', + '清空已选': 'Clear Selection', '全部': 'All', '资产': 'Asset', '设备': 'Equipment', '搜索编号、名称、型号、部门或位置': 'Search code, name, model, department, or location', + '选择当前筛选结果': 'Select Filtered Results', '将为已选择的 {count} 项对象生成盘点快照': 'A count snapshot will be created for {count} selected items', + '创建盘点计划': 'Create Count Plan', '资产设备专项盘点({month})': 'Asset and Equipment Count ({month})', '盘点基础数据加载失败,请稍后重试': 'Failed to load count data. Please try again later.', + '共 {total} 项': '{total} items', '请至少选择一项需要盘点的资产或设备': 'Select at least one asset or equipment item to count', + '计划结束时间必须晚于计划开始时间': 'The planned end time must be later than the start time', '盘点计划已创建,共 {count} 项': 'Count plan created with {count} items', '创建失败': 'Creation failed', + '资产汇总': 'Asset Overview', '实时掌握资产、设备和盘点执行情况': 'Real-time visibility into assets, equipment, and count execution', + '资产核心指标': 'Core Asset Metrics', '资产总数': 'Total Assets', '账面数量 {count}': 'Book quantity {count}', + '设备总数': 'Total Equipment', '{rate}% 正常使用': '{rate}% in use', '资产原值合计': 'Total Original Value', + '台账原值汇总': 'Ledger original value', '执行中盘点': 'Open Count Plans', '待接单、执行或审核': 'Pending assignment, execution, or review', + '资产分类分布': 'Assets by Category', '资产设备状态': 'Assets and Equipment by Status', '管理对象': 'Managed Items', + '主要使用部门': 'Top Departments', '设备分类分布': 'Equipment by Category', '最近盘点计划': 'Recent Count Plans', + '查看全部': 'View All', '最后更新': 'Last updated', '暂无资产分类数据': 'No asset category data', '暂无状态数据': 'No status data', + '暂无部门数据': 'No department data', '暂无设备分类数据': 'No equipment category data', '暂无盘点计划': 'No count plans', + '未指定': 'Not Specified', '资产汇总数据加载失败,请稍后重试': 'Failed to load asset overview. Please try again later.', + '资产汇总数据暂时不可用': 'Asset overview is temporarily unavailable', '请检查服务状态后重新加载': 'Check the service status and reload', + '属性名': 'Attribute Name', '请输入属性名查询': 'Enter attribute name', '属性值': 'Attribute Value', '请输入属性值查询': 'Enter attribute value', + '关键词': 'Keyword', '请输入条码、名称、助记码等查询': 'Enter barcode, name, or mnemonic code', '请输入规格查询': 'Enter specification', + '请输入型号查询': 'Enter model', '请输入颜色查询': 'Enter color', '请输入品牌查询': 'Enter brand', '请输入制造商查询': 'Enter manufacturer', + '序列号': 'Serial No.', '有无序列号': 'Serial Number', '有无批号': 'Batch Number', '基础重量': 'Base Weight', + '请输入基础重量查询': 'Enter base weight', '保质期': 'Shelf Life', '请输入保质期查询': 'Enter shelf life', '请输入备注查询': 'Enter remarks', + '助记码': 'Mnemonic Code', '扩展1': 'Custom 1', '扩展2': 'Custom 2', '扩展3': 'Custom 3', '采购价': 'Purchase Price', + '采购价-批量': 'Batch Purchase Price', '零售价-批量': 'Batch Retail Price', '销售价-批量': 'Batch Sales Price', '最低售价-批量': 'Batch Minimum Sale Price', + '零售价': 'Retail Price', '销售价': 'Sales Price', '最低售价': 'Minimum Sale Price', '复制新增': 'Copy and Add', '商品导入': 'Import Products', + '单位名称': 'Unit Name', '请输入单位名称查询': 'Enter unit name', '基本单位': 'Base Unit', '多单位': 'Multiple Units', '副单位': 'Secondary Unit', + '副单位2': 'Secondary Unit 2', '副单位3': 'Secondary Unit 3', '属性值': 'Attribute Value', '别名': 'Alias', + '账户流水': 'Account Transactions', '期初金额': 'Opening Balance', '本月发生额': 'Current Month Activity', '本月发生总额': 'Current Month Total', '当前余额': 'Current Balance', '当前总余额': 'Current Total Balance', + '部门': 'Department', '请选择部门': 'Select a department', '商品类别': 'Product Category', '请选择商品类别': 'Select a product category', + '零售数量': 'Retail Qty.', '零售金额': 'Retail Amount', '退货数量': 'Return Qty.', '退货金额': 'Return Amount', + '实际零售金额': 'Net Retail Amount', '采购数量': 'Purchase Qty.', '采购金额': 'Purchase Amount', '实际采购金额': 'Net Purchase Amount', + '销售数量': 'Sales Qty.', '销售金额': 'Sales Amount', '实际销售金额': 'Net Sales Amount', '往来单位': 'Business Partner', + '请选择往来单位': 'Select a business partner', '多属性': 'Variants', '单价': 'Unit Price', '金额': 'Amount', '税率(%)': 'Tax Rate (%)', + '税额': 'Tax Amount', '入库日期': 'Receipt Date', '出库日期': 'Shipment Date', '入库数量': 'Received Qty.', '入库金额': 'Received Amount', + '出库数量': 'Shipped Qty.', '出库金额': 'Shipped Amount', '库存周期': 'Stock Period', '上期结存数量': 'Previous Balance Qty.', + '本期结存数量': 'Current Balance Qty.', '结存金额': 'Balance Value', '账单周期': 'Billing Period', '欠款情况': 'Balance Status', + '欠款详情': 'Balance Details', '联系人': 'Contact', '手机号码': 'Mobile', '联系电话': 'Phone', '电子邮箱': 'Email', + '期初应收': 'Opening Receivable', '本期欠款': 'Current Period Balance', '本期收款': 'Current Period Receipts', '期末应收': 'Closing Receivable', + '期初应付': 'Opening Payable', '本期付款': 'Current Period Payments', '期末应付': 'Closing Payable', + '最低安全库存': 'Minimum Safety Stock', '最高安全库存': 'Maximum Safety Stock', '建议入库量': 'Suggested Receipt Qty.', '建议出库量': 'Suggested Shipment Qty.', + '请输入联系人查询': 'Enter contact', '请输入手机号码查询': 'Enter mobile', '请输入联系电话查询': 'Enter phone', + '期末应付': 'Closing Payable', '供应商导入': 'Import Suppliers', '客户分类': 'Customer Category', '请选择分类': 'Select a category', + '岗位': 'Position', '姓名': 'Name', '手机号': 'Mobile', '电话': 'Phone', '邮箱': 'Email', '主要联系人': 'Primary Contact', + '客户导入': 'Import Customers', '预付款': 'Advance Payment', '会员导入': 'Import Members', '修正预付款': 'Adjust Advance Payment', + '分类名称': 'Category Name', '请输入分类名称查询': 'Enter category name', '上级分类': 'Parent Category', '无(顶级分类)': 'None (Top Level)', + '请输入排序号': 'Enter order number', '层级': 'Level', '添加子分类': 'Add Subcategory', '仓库地址': 'Warehouse Address', + '仓储费': 'Storage Fee', '搬运费': 'Handling Fee', '负责人': 'Manager', '是否默认': 'Default', '收入': 'Income', '支出': 'Expense', + '姓名': 'Name', '销售员': 'Salesperson', '财务员': 'Finance Officer', '角色名称': 'Role Name', '数据类型': 'Data Scope', '价格屏蔽': 'Price Masking', + '登录名称': 'Login Name', '输入登录名称模糊查询': 'Enter login name', '用户姓名': 'User Name', '输入用户姓名模糊查询': 'Enter user name', + '用户类型': 'User Type', '角色': 'Role', '是否经理': 'Manager', '电话号码': 'Phone', '上级部门': 'Parent Department', + '请选择上级部门': 'Select a parent department', '操作模块': 'Module', '请输入操作模块': 'Enter module', '操作详情': 'Details', + '请输入操作详情': 'Enter details', '请输入操作员账号或姓名': 'Enter operator account or name', '操作IP': 'IP Address', + '请输入操作IP': 'Enter IP address', '操作员账号': 'Operator Account', '操作员姓名': 'Operator Name', '操作时间': 'Operated At', '操作类型': 'Operation Type', + '字典名称': 'Dictionary Name', '请输入字典名称': 'Enter dictionary name', '字典类型': 'Dictionary Type', '请输入字典类型': 'Enter dictionary type', + '更新时间': 'Updated At', '配置名称': 'Configuration Name', '配置值': 'Configuration Value', '标识': 'Identifier', '作者': 'Author', + '页面链接': 'Page URL', '导入注意点': 'Import Notes', '上传插件包': 'Upload Plugin', '上传页面': 'Upload Page', '开启': 'Start', '停止': 'Stop', '卸载': 'Uninstall', + '请选择状态': 'Select a status', '请输入条码、名称、助记码、规格、型号等信息': 'Enter barcode, name, mnemonic code, specification, or model' + ,'运营总览': 'Operations Overview', '从入库、订单到实际发货,按已审核业务数据统计': 'Approved business data from inbound through order to shipment', + '数据实时更新': 'Live data', '重新加载': 'Reload', '核心业务指标': 'Core Business Metrics', '读取中': 'Loading', '张单据': 'documents', + '业务履约链路': 'Business Fulfillment Flow', '审核通过后进入统计,实际发货以发货确认数量为准': 'Approved records are counted; actual shipment uses confirmed quantities', + '截至': 'As of', '业务阶段': 'Business Stage', '业务日期': 'Business Date', '暂无已审核业务数据': 'No approved business data', + '业务结构分析': 'Business Structure Analysis', '查看入库来源构成与订单发货履约情况': 'Review inbound sources and order fulfillment', + '统计范围:全部已审核数据': 'Scope: all approved data', '暂无数据': 'No data', '入库来源占比': 'Inbound Source Mix', + '总部入库与采购入库的实际数量构成': 'Actual quantity mix of headquarters and purchase receipts', '订单发货履约': 'Order Fulfillment', + '累计销售订单与实际发货数量对比': 'Cumulative sales orders versus actual shipments', '订单发货履约率': 'Order Fulfillment Rate', + '审核订单量': 'Approved Order Qty.', '实际发货量': 'Actual Shipped Qty.', '待履约量': 'Pending Fulfillment Qty.', + '近 6 个月业务量': 'Business Volume — Last 6 Months', '入库、销售订单与实际发货数量对比': 'Inbound, sales order, and actual shipment quantities', + '入库': 'Inbound', '订单': 'Orders', '发货': 'Shipments', '暂无月度趋势数据': 'No monthly trend data', + '商品出货量 TOP 10': 'Top 10 Products by Shipped Qty.', '按实际确认发货数量排序,展示商品规格与发货次数': 'Ranked by confirmed shipment quantity with specification and shipment count', + '暂无商品出货数据': 'No product shipment data', '总部入库': 'Headquarters Receipt', '已审核实际入库': 'Approved actual receipts', + '采购入库': 'Purchase Receipt', '采购单审核并入库': 'Approved purchase receipts', '客户订单审核通过': 'Approved customer orders', + '实际发货': 'Actual Shipment', '已确认实际发货': 'Confirmed actual shipments', '总部调拨到货': 'Headquarters transfer received', + '本地采购到货': 'Local purchase received', '客户需求确认': 'Customer demand confirmed', '发货执行确认': 'Shipment confirmed', + '暂无入库来源数据': 'No inbound source data', '首页统计接口返回异常,请重新加载。': 'Dashboard data is unavailable. Please reload.', + '数据加载失败,请检查网络或服务状态后重试。': 'Unable to load data. Check the network or service and try again.', '暂无记录': 'No record', + '部分完成': 'Partially Completed', '次发货': 'shipments' + ,'可将状态是部分入库的单据强制完成': 'Force-complete documents with partially received status', + '可将状态是部分采购的单据强制完成': 'Force-complete documents with partially purchased status', + '可将状态是部分出库的单据强制完成': 'Force-complete documents with partially shipped status', + '可对最终欠款的值进行修正': 'Adjust the final outstanding balance', + '用于销售出库单据的退货。销售退货单可以由销售出库单转过来,也可以单独创建。': 'Use for sales shipment returns. Create one from a sales shipment or independently.', + '用于非会员和会员的单据录入,主要是用于散户使用,不能欠款。': 'Use for member and walk-in retail sales. Outstanding balances are not allowed.', + '用于零售出库单据的退货。零售退货单可以由零售出库单转过来,也可以单独创建。': 'Use for retail shipment returns. Create one from a retail shipment or independently.', + '用于采购入库单据的退货。采购退货单可以由采购出库单转过来,也可以单独创建。': 'Use for purchase receipt returns. Create one from a purchase document or independently.', + '审核通过': 'Approve', '资产盘点': 'Asset Count', '按计划选择资产或设备,分配盘点人员并跟踪执行结果。': 'Select assets or equipment by plan, assign counters, and track execution.', + '仅资产': 'Assets Only', '仅设备': 'Equipment Only', '资产和设备': 'Assets and Equipment', '计划周期': 'Plan Period', '盘点明细': 'Count Details', + '删除多条数据': 'Delete Selected', '上级目录': 'Parent Category', '请选择上级目录': 'Select a parent category', '请输入备注': 'Enter remarks', + '请先选择一个类别!': 'Select a category first.', '序': 'Serial', '批': 'Batch', '期末应收=期初应收+本期欠款-本期收款': 'Closing receivable = opening receivable + new balance - receipts', + '期末应付=期初应付+本期欠款-本期付款': 'Closing payable = opening payable + new balance - payments', '请输入会员卡号查询': 'Enter member card number', + '确定删除吗?删除后子分类也将被一并删除': 'Delete this category and all of its subcategories?', '请输入分类名称': 'Enter category name', + '请输入仓库名称查询': 'Enter warehouse name', '确定设为默认吗?': 'Set this item as default?', '请选择类型': 'Select a type', + '请输入姓名查询': 'Enter name', '请输入角色名称查询': 'Enter role name', '操作提示': 'Operation Guide', + '提示:部门可录入公司部门或门店': 'Tip: departments can represent company teams or stores.', '请先选择一个部门!': 'Select a department first.', + '添加部门': 'Add Department', '确定要开启该插件吗?': 'Start this plugin?', '确定要停止该插件吗?': 'Stop this plugin?', + '确定要卸载该插件吗?': 'Uninstall this plugin?', '填写插件激活码': 'Enter Plugin Activation Code', '填写手机端激活码': 'Enter Mobile Activation Code', + '请选择需要导入的插件jar包': 'Select the plugin JAR file to import', '开始日期': 'Start Date', '结束日期': 'End Date', + '采购订单操作提示': 'Purchase orders do not create payments. Approve an order before converting it to a purchase receipt. Select documents for batch delete, approve, or unapprove.', + '采购入库操作提示': 'Create a purchase receipt from a purchase order or independently. Only authorized warehouses are shown; multiple payment accounts are supported. Select documents for batch operations.', + '数据权限提示': 'All Data allows access to all documents; Department Data allows access to department documents; Personal Data allows access only to the user\'s own documents.', + '价格屏蔽提示': 'Select one or more price-masking scopes for dashboards, documents, product stock, and inventory reports.', + '删除成功': 'Deleted successfully', '刷新成功': 'Refreshed successfully', '操作成功': 'Operation successful', '保存成功!': 'Saved successfully', + '审批下达成功': 'Approved and released successfully', '开工成功': 'Production started successfully', '关闭成功': 'Closed successfully', + '生成领料单成功': 'Material requisition created successfully', '审核通过成功': 'Approved successfully', '驳回成功': 'Rejected successfully', + '确认发料成功': 'Materials issued successfully', '盘点结果已保存': 'Count result saved', '修正库存成功!': 'Stock adjusted successfully', + '修正成本成功!': 'Cost adjusted successfully', '修正预付款成功!': 'Advance payment adjusted successfully', + '请选择一条记录!': 'Select one record.', '请选择单据日期!': 'Select a document date.', '请选择库存周期!': 'Select a stock period.', + '请输入关闭原因': 'Enter a close reason', '请输入驳回原因': 'Enter a rejection reason', '当前盘点单中未找到该编号': 'This code was not found in the current count.', + '请选择需要转交货计划的零售出库单': 'Select a retail shipment to convert to a delivery plan.', + '只能选择已审核状态的零售出库单转交货计划': 'Only approved retail shipments can be converted to delivery plans.', + '转交货计划成功': 'Delivery plan created successfully', '转交货计划失败': 'Failed to create delivery plan', + '收取订金': 'Deposit Received', '本次收款': 'Current Receipt', 'ERP单据编号': 'ERP Document No.', + '来源单据': 'Source Document', '发生时间': 'Occurred At', '发生人': 'Occurred By', + '标签模式': 'Label Mode', '文字模式': 'Text Mode', '本期总结存': 'Current Period Balance', '总结存金额': 'Balance Amount', + '新增多单位': 'Add Multiple Unit', '选择多单位': 'Select Multiple Units', + '采购价-批量设置': 'Batch Purchase Price', '零售价-批量设置': 'Batch Retail Price', '销售价-批量设置': 'Batch Sales Price', '最低售价-批量设置': 'Batch Minimum Sale Price', + '流水': 'Transactions', '分布': 'Distribution', '停用': 'Disable', '待审核': 'Pending Review', '已完成': 'Completed', + '合计': 'Total', '详情': 'Details', '总数量': 'Total Quantity', '总金额': 'Total Amount', + '入库总数量': 'Total Inbound Qty.', '入库总金额': 'Total Inbound Amount', '出库总数量': 'Total Outbound Qty.', '出库总金额': 'Total Outbound Amount', + '请求URL': 'Request URL', '入参': 'Request Parameters', '出参': 'Response Parameters', '共': 'Total', '条': 'items', '条/页': 'items/page', + '总库存': 'Total Stock', '总库存金额': 'Total Stock Value', '总重量': 'Total Weight', + '用户名不能为空': 'Username is required', '请输入用户名': 'Enter username', '请输入密码': 'Enter password', '请输入验证码': 'Enter verification code', + '记住密码': 'Remember password', '登录': 'Log In', '登录失败': 'Login failed', '请求出现错误,请稍后再试': 'Request failed. Please try again later.', + '提示': 'Notice', '欢迎': 'Welcome', '欢迎回来': 'Welcome back', '友情提醒': 'Reminder', '密码过于简单,请尽快修改': 'Your password is too simple. Please change it soon.', + '错误': 'Error', '用户不存在': 'User does not exist', '用户密码不正确': 'Incorrect username or password', '用户被禁用': 'User is disabled', '查询服务异常': 'Query service error', + '密码错误次数过多,请在 {seconds} 秒后重试': 'Too many incorrect password attempts. Try again in {seconds} seconds.', + '注册成功,请使用该租户登录!': 'Registration succeeded. Please log in with this tenant.', '注册失败': 'Registration failed', + '注册租户': 'Register Tenant', '使用已有租户登录': 'Log in with an existing tenant', '官方网站': 'Official Website', + '确认密码': 'Confirm password', '至少6位密码,区分大小写': 'At least 6 characters; case-sensitive', + '销售单据编号': 'Sales Document No.', '会员待收款': 'Member Receivables', '应收欠款': 'Receivable Due', '已收欠款': 'Received Receivable', + '点击上传': 'Click to Upload', '待收款客户': 'Customers with Receivables' +} + +const zhCN = Object.keys(enUS).reduce((messages, key) => { + messages[key] = key + return messages +}, {}) + +export { enUS, zhCN } diff --git a/smtERP-web/src/locales/en-US.js b/smtERP-web/src/locales/en-US.js new file mode 100644 index 0000000..ca12c5e --- /dev/null +++ b/smtERP-web/src/locales/en-US.js @@ -0,0 +1,114 @@ +import { enUS as businessUi } from './business-ui' +import { enUS as modalUi } from './modal-ui' + +export default { + pagination: { total: '{from}-{to} of {total}' }, + ui: { + ...businessUi, + ...modalUi, + '新增': 'Add', '删除': 'Delete', '审核': 'Approve', '反审核': 'Unapprove', '更多操作': 'More Actions', '列设置': 'Column Settings', + '查看': 'View', '编辑': 'Edit', '复制': 'Copy', '查询': 'Search', '重置': 'Reset', '展开': 'Expand', '收起': 'Collapse', + '导出': 'Export', '导入': 'Import', '打印': 'Print', '保存': 'Save', '确定': 'Confirm', '取消': 'Cancel', '关闭': 'Close', + '刷新列表': 'Refresh List', '批量删除': 'Batch Delete', '强制结单': 'Force Close', '修正欠款': 'Adjust Balance', + '转销售出库': 'Convert to Sales Shipment', '转销售退货': 'Convert to Sales Return', '转采购订单-以销定购': 'Create Purchase Order', + '转采购订单': 'Convert to Purchase Order', '转采购入库': 'Convert to Purchase Receipt', '转采购退货': 'Convert to Purchase Return', '转交货计划': 'Create Delivery Plan', + '转发货管理': 'Create Shipment', '转零售退货': 'Convert to Retail Return', '修改备注': 'Edit Remarks', '修正剩余订金': 'Adjust Remaining Deposit', + '强制结单-以销定购': 'Force Close Purchase', '恢复默认': 'Restore Defaults', '恢复默认列配置:': 'Restore default columns:', + '单据编号': 'Document No.', '商品信息': 'Product', '单据日期': 'Document Date', '操作员': 'Operator', '状态': 'Status', + '客户': 'Customer', '供应商': 'Supplier', '仓库': 'Warehouse', '单据状态': 'Document Status', '单据备注': 'Remarks', + '开始时间': 'Start Date', '结束时间': 'End Date', '请选择': 'Please select', + '未审核': 'Unapproved', '已审核': 'Approved', '审核中': 'Pending Approval', '完成销售': 'Completed', '部分销售': 'Partially Fulfilled', + '未销售': 'Not Fulfilled', '已完成': 'Completed', '进行中': 'In Progress', '已关闭': 'Closed', '启用': 'Enabled', '禁用': 'Disabled', + '未采购': 'Not Purchased', '部分采购': 'Partially Purchased', '完成采购': 'Purchased', '部分入库': 'Partially Received', '完成入库': 'Received', + '部分出库': 'Partially Shipped', '完成出库': 'Shipped', '待发货': 'Pending Shipment', '部分发货': 'Partially Shipped', '已发货': 'Shipped', + '待审核': 'Pending Review', '待审批': 'Pending Approval', '已驳回': 'Rejected', '驳回': 'Reject', '正常': 'Normal', '异常': 'Exception', + '结算账户': 'Settlement Account', '销售人员': 'Salesperson', '采购人员': 'Buyer', '财务人员': 'Finance Officer', + '请输入操作员': 'Enter operator', '请选择操作员': 'Select an operator', '请选择结算账户': 'Select a settlement account', + '请选择销售人员': 'Select a salesperson', '请选择采购人员': 'Select a buyer', + '确定删除吗?': 'Are you sure you want to delete this item?', '请选择单据状态': 'Select a document status', '请输入单据编号': 'Enter document number', + '请输入单据备注': 'Enter remarks', '请输入条码、名称、助记码、规格、型号': 'Enter barcode, name, mnemonic code, specification, or model', + '刷新': 'Refresh', '是': 'Yes', '否': 'No', '有': 'Yes', '无': 'No', '停用': 'Disable', '批量': 'Batch Actions', + '批量启用': 'Enable Selected', '批量停用': 'Disable Selected', '批量编辑': 'Batch Edit', 'Excel导入': 'Import Excel', '下载导入模板': 'Download Import Template', + '修正库存': 'Adjust Stock', '修正成本': 'Adjust Cost', '添加类别': 'Add Category', '类型管理': 'Type Management', '新增分类': 'Add Category', + '全部勾选': 'Select All', '取消全选': 'Clear Selection', '展开所有': 'Expand All', '合并所有': 'Collapse All', '父子关联': 'Link Parent/Child', '取消关联': 'Unlink', + '树操作': 'Tree Actions', '刷新缓存': 'Refresh Cache', '取消选择': 'Clear Selection', '当前选择:': 'Selected:', + '分配用户': 'Assign Users', '分配仓库': 'Assign Warehouses', '分配菜单': 'Assign Menus', '分配客户': 'Assign Customers', '分配按钮': 'Assign Buttons', '分配角色': 'Assign Roles', + '重置密码': 'Reset Password', '设为默认': 'Set as Default', '取消(ESC)': 'Cancel (ESC)', '关闭(ESC)': 'Close (ESC)', + '新增设备': 'Add Equipment', '新增资产': 'Add Asset', '新建盘点计划': 'New Count Plan', '新增报工': 'Add Work Report', '开始盘点': 'Start Count', + '待付款': 'Pending Payment', '待收款': 'Pending Receipt', '待入库': 'Pending Receipt', '待出库': 'Pending Shipment', + '普通': 'Normal', '紧急': 'Urgent', '待确认': 'Pending Confirmation', '提审': 'Submit for Approval', '审批': 'Approve', '通过': 'Approve', + '开工': 'Start Work', '审批下达': 'Approve and Release', '已下达': 'Released', '已发料': 'Materials Issued', '确认发料': 'Confirm Issue', '生产中': 'In Production', + '关结': 'Close', '确认发货': 'Confirm Shipment', '返回单据列表': 'Back to Documents', '查看明细': 'View Details', '生成领料单': 'Create Material Requisition', + '无欠款': 'No Outstanding Balance', '有欠款': 'Outstanding Balance', '未盘点': 'Not Counted', '已盘点': 'Counted', '盘盈': 'Surplus', '盘亏': 'Shortage', + '销售出库': 'Sales Shipment', '零售出库': 'Retail Shipment', '采购订单': 'Purchase Order', '销售订单': 'Sales Order', '商品管理': 'Product Management' + }, + common: { + home: 'Home', + functionList: 'Function List', + chooseLanguage: 'Language', + simplifiedChinese: '简体中文', + english: 'English', + operation: 'Operation', + search: 'Search', + reset: 'Reset', + add: 'Add', + edit: 'Edit', + delete: 'Delete', + save: 'Save', + cancel: 'Cancel', + confirm: 'Confirm', + loading: 'Loading...' + }, + header: { + searchMenu: 'Search menu', noMatchingMenu: 'No matching menu', welcome: 'Welcome,', interfaceSettings: 'Interface Settings', + changePassword: 'Change Password', logout: 'Log Out', logoutPrompt: 'Confirmation', logoutConfirm: 'Are you sure you want to log out?', + departmentSwitch: 'Switch Department', systemSettings: 'System Settings', error: 'Error' + }, + settings: { + overallStyle: 'Overall Style', darkMenu: 'Dark menu style', lightMenu: 'Light menu style', themeColor: 'Theme Color', + fixedHeader: 'Fixed Header', autoHideHeader: 'Hide Header on Scroll', fixedSidebar: 'Fixed Sidebar', language: 'Language', + otherSettings: 'Other Settings', colorWeak: 'Color Vision Mode', + colors: { dustRed: 'Dust Red', volcano: 'Volcano', sunset: 'Sunset', cyan: 'Cyan', green: 'Polar Green', blue: 'Daybreak Blue (Default)', geekBlue: 'Geek Blue', purple: 'Purple' } + }, + password: { + title: 'Change Password', old: 'Current Password', oldPlaceholder: 'Enter current password', new: 'New Password', + newPlaceholder: 'At least 6 characters; case-sensitive', confirm: 'Confirm New Password', confirmPlaceholder: 'Enter the new password again', + oldRequired: 'Enter your current password.', newRequired: 'Enter a new password.', confirmRequired: 'Confirm the new password.', + noUser: 'No signed-in user was found.', sameAsOld: 'The new password must differ from the current password.', + strength: 'The password must be at least 6 characters and include a lowercase letter and a number.', mismatch: 'The passwords do not match.' + }, + notice: { notifications: 'Notifications', viewMore: 'View More', reminder: 'Notification', viewDetails: 'View Details' }, + table: { + index: 'No.', + name: 'Name', + code: 'Code', + status: 'Status', + remark: 'Remark', + createTime: 'Created at', + updateTime: 'Updated at' + }, + finance: { + pendingReceipts: 'Pending receipts', pendingPayments: 'Pending payments', pendingReceiptList: 'Pending receipt details', pendingPaymentList: 'Pending payment details', + businessPartner: 'Business partner', sourceType: 'Source type', sourceDocument: 'Source document', occurredAt: 'Occurred at', occurredBy: 'Occurred by', + receivableAmount: 'Amount receivable', payableAmount: 'Amount payable', createReceipt: 'Create receipt', createPayment: 'Create payment', close: 'Close' + }, + columns: { + action: 'Operation', rowIndex: 'No.', name: 'Name', serialNo: 'Code', number: 'Document No.', + code: 'Code', remark: 'Remark', status: 'Status', enabled: 'Status', sort: 'Order', + createTime: 'Created at', updateTime: 'Updated at', createTimeStr: 'Created at', + billNo: 'Document No.', billTimeStr: 'Document Date', userName: 'Operator', username: 'User Name', + organName: 'Business Partner', supplier: 'Supplier', customer: 'Customer', accountName: 'Account', + initialAmount: 'Opening Amount', totalPrice: 'Total Amount', discountMoney: 'Discount', + changeAmount: 'Actual Amount', standard: 'Specification', model: 'Model', color: 'Color', brand: 'Brand', + mfrs: 'Manufacturer', mUnit: 'Unit', materialUnit: 'Unit', unit: 'Unit', barCode: 'Barcode', + quantity: 'Quantity', operNumber: 'Quantity', unitPrice: 'Unit Price', allPrice: 'Amount', taxRate: 'Tax Rate (%)', + taxMoney: 'Tax Amount', currentNumber: 'Stock', lowSafeStock: 'Min. Safety Stock', + highSafeStock: 'Max. Safety Stock', lowCritical: 'Suggested Inbound', highCritical: 'Suggested Outbound', + planStartDate: 'Planned Start', planEndDate: 'Planned End', priority: 'Priority', + loginName: 'Login Name', userType: 'User Type', roleName: 'Role', orgAbr: 'Department', + phonenum: 'Phone', isDefault: 'Default', categoryName: 'Category', level: 'Level', + materialsList: 'Product', operTimeStr: 'Document Date', materialCount: 'Quantity', discountLastMoney: 'Tax-inclusive Total', + lastDeposit: 'Remaining Deposit', handsPersonName: 'Finance Officer', sourceType: 'Source Type', sourceNumber: 'Source Document', + sourceTime: 'Occurred At', sourceUser: 'Occurred By', debt: 'Pending Amount', finishDebt: 'Processed Amount', needDebt: 'Receivable/Payable' + } +} diff --git a/smtERP-web/src/locales/index.js b/smtERP-web/src/locales/index.js new file mode 100644 index 0000000..5277829 --- /dev/null +++ b/smtERP-web/src/locales/index.js @@ -0,0 +1,19 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' +import zhCN from './zh-CN' +import enUS from './en-US' +import { getLanguage, LANGUAGE_EN_US } from '@/utils/language' + +Vue.use(VueI18n) + +export const localeMessages = { + 'zh-CN': zhCN, + 'en-US': enUS +} + +export default new VueI18n({ + locale: getLanguage(), + fallbackLocale: 'zh-CN', + messages: localeMessages, + silentTranslationWarn: true +}) diff --git a/smtERP-web/src/locales/modal-ui.js b/smtERP-web/src/locales/modal-ui.js new file mode 100644 index 0000000..426a7ba --- /dev/null +++ b/smtERP-web/src/locales/modal-ui.js @@ -0,0 +1,87 @@ +const enUS = { + '选择': 'Select', '操作': 'Operation', '日期': 'Date', '金额': 'Amount', '经手人': 'Handler', '附件': 'Attachments', + '扫码录入': 'Scan Entry', '收起扫码': 'Hide Scanner', '请扫描商品条码并回车': 'Scan a product barcode and press Enter', + '请扫条码或序列号并回车': 'Scan a barcode or serial number and press Enter', '导入明细': 'Import Details', + '保存(Ctrl+S)': 'Save (Ctrl+S)', '保存并审核': 'Save and Approve', '提交流程': 'Submit Workflow', + '普通打印': 'Standard Print', '三联打印': 'Triplicate Print', '三联打印-新版': 'Triplicate Print (New)', + '查看大图': 'View Image', '关联单据': 'Related Document', '关联订单': 'Related Order', '历史单据': 'Document History', + '排序': 'Order', '请输入排序': 'Enter order', '请输入名称': 'Enter name', '请输入备注': 'Enter remarks', + '电子邮箱': 'Email', '请输入电子邮箱': 'Enter email', '联系人': 'Contact', '请输入联系人': 'Enter contact', + '手机号码': 'Mobile', '请输入手机号码': 'Enter mobile', '联系电话': 'Phone', '请输入联系电话': 'Enter phone', + '请输入账号': 'Enter account', '请选择状态': 'Select a status', '请选择供应商': 'Select a supplier', '新增供应商': 'Add Supplier', + '新增经手人': 'Add Handler', '请选择财务人员': 'Select a finance officer', '请选择类别': 'Select a category', + '请选择(可多选)': 'Select one or more', '请选择付款账户': 'Select a payment account', '付款账户': 'Payment Account', + '收款账户': 'Receipt Account', '收款类型': 'Receipt Type', '会员卡号': 'Member Card No.', '退货单号': 'Return No.', + '优惠率': 'Discount Rate', '优惠后金额': 'Amount After Discount', '优惠金额': 'Discount Amount', '其它费用': 'Other Charges', + '本次欠款': 'Current Balance', '付款优惠': 'Payment Discount', '收款优惠': 'Receipt Discount', '退款优惠': 'Refund Discount', + '本次退款': 'Current Refund', '收款金额': 'Amount Received', '找零': 'Change', '单据金额': 'Document Amount', + '多账户明细': 'Multiple Account Details', '扣除订金': 'Deposit Applied', '请输入优惠率': 'Enter discount rate', + '请输入优惠后金额': 'Enter amount after discount', '请输入其它费用': 'Enter other charges', '请输入本次欠款': 'Enter current balance', + '序列号': 'Serial No.', '批号': 'Batch No.', '制造商': 'Manufacturer', '颜色': 'Color', '品牌': 'Brand', + '类别': 'Category', '基础重量': 'Base Weight', '保质期': 'Shelf Life', '仓位货架': 'Bin / Shelf', '单位': 'Unit', + '有无序列号': 'Serial Number', '有无批号': 'Batch Number', '请输入颜色': 'Enter color', '请输入品牌': 'Enter brand', + '请输入制造商': 'Enter manufacturer', '条码|名称|规格|型号': 'Barcode | Name | Specification | Model', + '来源类型': 'Source Type', '手工备货': 'Manual Stock Preparation', '保存后自动生成': 'Generated after saving', + '销售订单号': 'Sales Order No.', '请选择销售订单': 'Select a sales order', '销售成品行': 'Sales Product Line', + '请选择要生产的销售商品': 'Select the sales product to produce', '生产方案': 'Production BOM', '请选择生产方案': 'Select a production BOM', + '计划生产数量': 'Planned Production Qty.', '计划开始日期': 'Planned Start Date', '计划结束日期': 'Planned End Date', + '选择销售订单': 'Select Sales Order', '订单编号': 'Order No.', '请输入订单编号': 'Enter order number', + '请输入商品名称/规格': 'Enter product name or specification', '请选择来源类型': 'Select a source type', + '请选择生产成品': 'Select a finished product', '请输入计划生产数量': 'Enter planned production quantity', + '新增成功': 'Added successfully', '修改成功': 'Updated successfully', '确认': 'Confirm', '取消': 'Cancel', '保存': 'Save', + '关闭': 'Close', '确定': 'OK', '重置': 'Reset', '查询': 'Search', '新增': 'Add', '编辑': 'Edit', '删除': 'Delete', + '名称': 'Name', '编号': 'Code', '备注': 'Remarks', '状态': 'Status', '客户': 'Customer', '供应商': 'Supplier', + '商品信息': 'Product', '单据编号': 'Document No.', '单据日期': 'Document Date', '结算账户': 'Settlement Account', + '销售人员': 'Salesperson', '财务人员': 'Finance Officer', '操作员': 'Operator', '数量': 'Quantity', '单价': 'Unit Price', + '税率': 'Tax Rate', '税额': 'Tax Amount', '合计': 'Total', '规格': 'Specification', '型号': 'Model', '条码': 'Barcode', + '请选择': 'Please select', '请输入': 'Enter a value', '暂无数据': 'No data', '加载中': 'Loading' + ,'清空': 'Clear', '每隔': 'Every', '到': 'To', '从': 'From', '秒': 'Seconds', '分': 'Minutes', '天': 'Days', + '结算金额': 'Settlement Amount', '请输入金额': 'Enter amount', '请选择关联单据': 'Select a related document', '请选择关联订单': 'Select a related order', + '周期从': 'Period From', '传真': 'Fax', '请输入传真': 'Enter fax', '纳税人识别号': 'Taxpayer ID', '请输入纳税人识别号': 'Enter taxpayer ID', + '请输入税率': 'Enter tax rate', '开户行': 'Bank', '请输入开户行': 'Enter bank', '账号': 'Account No.', '地址': 'Address', '请输入地址': 'Enter address', + '请输入姓名': 'Enter name', '字典标签': 'Dictionary Label', '请输入字典标签': 'Enter dictionary label', '字典键值': 'Dictionary Value', + '请输入字典键值': 'Enter dictionary value', '字典排序': 'Dictionary Order', '请输入字典排序': 'Enter dictionary order', + '样式属性': 'Style Class', '请输入样式属性': 'Enter style class', '回显样式': 'Display Style', '请选择回显样式': 'Select a display style', + '机器码': 'Machine Code', '请输入登录名称': 'Enter login name', '选择角色': 'Select Roles', '请输入名称、规格、型号': 'Enter name, specification, or model', + '请输入基础重量(kg)': 'Enter base weight (kg)', '请输入保质期(天)': 'Enter shelf life (days)', '请输入仓位货架': 'Enter bin or shelf', + '请输入价格': 'Enter price', '请输入数量': 'Enter quantity', '请输入属性值': 'Enter attribute value', '付款会员': 'Paying Member', + '合计金额': 'Total Amount', '实付金额': 'Amount Paid', '收入账户': 'Income Account', '收入金额': 'Income Amount', + '支出账户': 'Expense Account', '支出金额': 'Expense Amount', '合计收款': 'Total Receipt', '实际收款': 'Actual Receipt', + '合计付款': 'Total Payment', '实际付款': 'Actual Payment', '请输入合计收款': 'Enter total receipt', '新增收支项目': 'Add Income / Expense Item', + '请选择收款账户': 'Select a receipt account', '请输入优惠金额': 'Enter discount amount', '选择单据': 'Select Document', '选择期初': 'Select Opening Balance', + '请选择待入库单据': 'Select a pending receipt document', '请输入退款优惠': 'Enter refund discount', '请输入本次退款': 'Enter current refund', + '请输入付款优惠': 'Enter payment discount', '新增会员': 'Add Member', '请输入收款优惠': 'Enter receipt discount', '移除': 'Remove', + '请输入期初金额': 'Enter opening balance', '请选择客户分类': 'Select a customer category', '请输入期初应收': 'Enter opening receivable', + '请输入岗位,如采购、财务': 'Enter position, such as Purchasing or Finance', '请输入手机号': 'Enter mobile', '请输入邮箱': 'Enter email', + '确定删除此联系人?': 'Delete this contact?', '联系人管理': 'Contact Management', '添加联系人': 'Add Contact', + '请输入仓库名称': 'Enter warehouse name', '请输入仓库地址': 'Enter warehouse address', '请输入仓储费': 'Enter storage fee', + '请输入搬运费': 'Enter handling fee', '选择负责人': 'Select Manager', '请选择字典名称': 'Select a dictionary name', + '请输入会员卡号': 'Enter member card number', '人员类型管理': 'Personnel Type Management', '请输入新的人员类型': 'Enter a new personnel type', + '查询类型名称': 'Search Type Name', '类型名称:': 'Type Name:', '新增类型': 'Add Type', '请输入配置名称': 'Enter configuration name', + '请输入配置值': 'Enter configuration value', '手机端激活码': 'Mobile Activation Code', '请输入手机端激活码': 'Enter mobile activation code', + '插件激活码': 'Plugin Activation Code', '请输入插件激活码': 'Enter plugin activation code', '请输入角色名称': 'Enter role name', + '请选择数据类型': 'Select a data scope', '请选择价格屏蔽': 'Select price masking', '全部数据': 'All Data', '本部门数据': 'Department Data', + '个人数据': 'Personal Data', '权限管理': 'Permission Management', '用户数量限制': 'User Limit', '请输入用户数量限制': 'Enter user limit', + '租户角色': 'Tenant Role', '请选择租户角色': 'Select a tenant role', '租户类型': 'Tenant Type', '请选择租户类型': 'Select a tenant type', + '到期时间': 'Expiration Date', '请输入单据编号查询': 'Enter document number', '扫描录入': 'Scan Entry', + '新手引导': 'Getting Started', '输入条码或名称': 'Enter barcode or name', + '需在商品管理先新增才能使用': 'Add the product in Product Management before selecting it here.', + '此处最多显示20条,如需更多请点击放大镜查询': 'Up to 20 results are shown. Use the search button for more.', + '请点开弹窗': 'Open the selection dialog', '插入行': 'Add Row', '移除行': 'Remove Row', + '清空选择': 'Clear Selection', '确定移除选中项吗?': 'Remove the selected rows?', + '向上移': 'Move Up', '向下移': 'Move Down', '点击不放可以拖动': 'Hold and drag to reorder', + '上传完成': 'Upload complete', '上传失败': 'Upload failed', '下载': 'Download', '更多': 'More', + '上传文件': 'Upload File', '上传图片': 'Upload Image', '无图片': 'No image', '统计': 'Summary', + '请选择字段': 'Select {field}', '请输入字段': 'Enter {field}', '字段不能为空': '{field} is required' +} + +const zhCN = Object.keys(enUS).reduce((messages, key) => { + messages[key] = key + return messages +}, {}) + +zhCN['请选择字段'] = '请选择{field}' +zhCN['请输入字段'] = '请输入{field}' +zhCN['字段不能为空'] = '{field}不能为空' + +export { enUS, zhCN } diff --git a/smtERP-web/src/locales/zh-CN.js b/smtERP-web/src/locales/zh-CN.js new file mode 100644 index 0000000..25b2a26 --- /dev/null +++ b/smtERP-web/src/locales/zh-CN.js @@ -0,0 +1,113 @@ +import { zhCN as businessUi } from './business-ui' +import { zhCN as modalUi } from './modal-ui' + +export default { + pagination: { total: '{from}-{to} 共{total}条' }, + ui: { + ...businessUi, + ...modalUi, + '新增': '新增', '删除': '删除', '审核': '审核', '反审核': '反审核', '更多操作': '更多操作', '列设置': '列设置', + '查看': '查看', '编辑': '编辑', '复制': '复制', '查询': '查询', '重置': '重置', '展开': '展开', '收起': '收起', + '导出': '导出', '导入': '导入', '打印': '打印', '保存': '保存', '确定': '确定', '取消': '取消', '关闭': '关闭', + '刷新列表': '刷新列表', '批量删除': '批量删除', '强制结单': '强制结单', '修正欠款': '修正欠款', + '转销售出库': '转销售出库', '转销售退货': '转销售退货', '转采购订单-以销定购': '转采购订单-以销定购', + '转采购订单': '转采购订单', '转采购入库': '转采购入库', '转采购退货': '转采购退货', '转交货计划': '转交货计划', + '转发货管理': '转发货管理', '转零售退货': '转零售退货', '修改备注': '修改备注', '修正剩余订金': '修正剩余订金', + '强制结单-以销定购': '强制结单-以销定购', '恢复默认': '恢复默认', '恢复默认列配置:': '恢复默认列配置:', + '单据编号': '单据编号', '商品信息': '商品信息', '单据日期': '单据日期', '操作员': '操作员', '状态': '状态', + '客户': '客户', '供应商': '供应商', '仓库': '仓库', '单据状态': '单据状态', '单据备注': '单据备注', + '开始时间': '开始时间', '结束时间': '结束时间', '请选择': '请选择', + '未审核': '未审核', '已审核': '已审核', '审核中': '审核中', '完成销售': '完成销售', '部分销售': '部分销售', + '未销售': '未销售', '已完成': '已完成', '进行中': '进行中', '已关闭': '已关闭', '启用': '启用', '禁用': '禁用', + '未采购': '未采购', '部分采购': '部分采购', '完成采购': '完成采购', '部分入库': '部分入库', '完成入库': '完成入库', + '部分出库': '部分出库', '完成出库': '完成出库', '待发货': '待发货', '部分发货': '部分发货', '已发货': '已发货', + '待审核': '待审核', '待审批': '待审批', '已驳回': '已驳回', '驳回': '驳回', '正常': '正常', '异常': '异常', + '结算账户': '结算账户', '销售人员': '销售人员', '采购人员': '采购人员', '财务人员': '财务人员', + '请输入操作员': '请输入操作员', '请选择操作员': '请选择操作员', '请选择结算账户': '请选择结算账户', + '请选择销售人员': '请选择销售人员', '请选择采购人员': '请选择采购人员', + '确定删除吗?': '确定删除吗?', '请选择单据状态': '请选择单据状态', '请输入单据编号': '请输入单据编号', + '请输入单据备注': '请输入单据备注', '请输入条码、名称、助记码、规格、型号': '请输入条码、名称、助记码、规格、型号', + '刷新': '刷新', '是': '是', '否': '否', '有': '有', '无': '无', '停用': '停用', '批量': '批量', + '批量启用': '批量启用', '批量停用': '批量停用', '批量编辑': '批量编辑', 'Excel导入': 'Excel导入', '下载导入模板': '下载导入模板', + '修正库存': '修正库存', '修正成本': '修正成本', '添加类别': '添加类别', '类型管理': '类型管理', '新增分类': '新增分类', + '全部勾选': '全部勾选', '取消全选': '取消全选', '展开所有': '展开所有', '合并所有': '合并所有', '父子关联': '父子关联', '取消关联': '取消关联', + '树操作': '树操作', '刷新缓存': '刷新缓存', '取消选择': '取消选择', '当前选择:': '当前选择:', + '分配用户': '分配用户', '分配仓库': '分配仓库', '分配菜单': '分配菜单', '分配客户': '分配客户', '分配按钮': '分配按钮', '分配角色': '分配角色', + '重置密码': '重置密码', '设为默认': '设为默认', '取消(ESC)': '取消(ESC)', '关闭(ESC)': '关闭(ESC)', + '新增设备': '新增设备', '新增资产': '新增资产', '新建盘点计划': '新建盘点计划', '新增报工': '新增报工', '开始盘点': '开始盘点', + '待付款': '待付款', '待收款': '待收款', '待入库': '待入库', '待出库': '待出库', + '普通': '普通', '紧急': '紧急', '待确认': '待确认', '提审': '提审', '审批': '审批', '通过': '通过', + '开工': '开工', '审批下达': '审批下达', '已下达': '已下达', '已发料': '已发料', '确认发料': '确认发料', '生产中': '生产中', + '关结': '关结', '确认发货': '确认发货', '返回单据列表': '返回单据列表', '查看明细': '查看明细', '生成领料单': '生成领料单', + '无欠款': '无欠款', '有欠款': '有欠款', '未盘点': '未盘点', '已盘点': '已盘点', '盘盈': '盘盈', '盘亏': '盘亏', + '销售出库': '销售出库', '零售出库': '零售出库', '采购订单': '采购订单', '销售订单': '销售订单', '商品管理': '商品管理' + }, + common: { + home: '首页', + functionList: '功能列表', + chooseLanguage: '选择语言', + simplifiedChinese: '简体中文', + english: 'English', + operation: '操作', + search: '查询', + reset: '重置', + add: '新增', + edit: '编辑', + delete: '删除', + save: '保存', + cancel: '取消', + confirm: '确定', + loading: '加载中...' + }, + header: { + searchMenu: '搜索菜单', noMatchingMenu: '暂无匹配菜单', welcome: '欢迎您,', interfaceSettings: '界面设置', + changePassword: '密码修改', logout: '退出登录', logoutPrompt: '提示', logoutConfirm: '真的要退出登录吗?', + departmentSwitch: '部门切换', systemSettings: '系统设置', error: '错误' + }, + settings: { + overallStyle: '整体风格设置', darkMenu: '暗色菜单风格', lightMenu: '亮色菜单风格', themeColor: '主题色', + fixedHeader: '固定 Header', autoHideHeader: '下滑时隐藏 Header', fixedSidebar: '固定侧边菜单', language: '语言设置', + otherSettings: '其他设置', colorWeak: '色弱模式', + colors: { dustRed: '薄暮', volcano: '火山', sunset: '日暮', cyan: '明青', green: '极光绿', blue: '拂晓蓝(默认)', geekBlue: '极客蓝', purple: '酱紫' } + }, + password: { + title: '修改密码', old: '旧密码', oldPlaceholder: '请输入旧密码', new: '新密码', newPlaceholder: '新密码至少6位,区分大小写', + confirm: '确认新密码', confirmPlaceholder: '请确认新密码', oldRequired: '请输入旧密码!', newRequired: '请输入新密码!', + confirmRequired: '请确认新密码!', noUser: '当前系统无登录用户!', sameAsOld: '新密码和旧密码不能相同!', + strength: '用户密码至少要有数字和小写字母,并且长度至少6位!', mismatch: '两次密码不一致!' + }, + notice: { notifications: '通知', viewMore: '查看更多', reminder: '消息提醒', viewDetails: '查看详情' }, + table: { + index: '序号', + name: '名称', + code: '编码', + status: '状态', + remark: '备注', + createTime: '创建时间', + updateTime: '更新时间' + }, + finance: { + pendingReceipts: '待收款', pendingPayments: '待付款', pendingReceiptList: '待收款明细', pendingPaymentList: '待付款明细', + businessPartner: '往来单位', sourceType: '来源类型', sourceDocument: '来源单据', occurredAt: '发生时间', occurredBy: '发生人', + receivableAmount: '待收金额', payableAmount: '待付金额', createReceipt: '生成收款单', createPayment: '生成付款单', close: '关闭' + }, + columns: { + action: '操作', rowIndex: '序号', name: '名称', serialNo: '编号', number: '单据编号', + code: '编码', remark: '备注', status: '状态', enabled: '状态', sort: '排序', + createTime: '创建时间', updateTime: '更新时间', createTimeStr: '创建时间', + billNo: '单据编号', billTimeStr: '单据日期', userName: '操作员', username: '用户姓名', + organName: '往来单位', supplier: '供应商', customer: '客户', accountName: '账户', + initialAmount: '期初金额', totalPrice: '合计金额', discountMoney: '优惠金额', + changeAmount: '实际金额', standard: '规格', model: '型号', color: '颜色', brand: '品牌', + mfrs: '制造商', mUnit: '单位', materialUnit: '单位', unit: '单位', barCode: '条码', + quantity: '数量', operNumber: '数量', unitPrice: '单价', allPrice: '金额', taxRate: '税率(%)', + taxMoney: '税额', currentNumber: '库存', lowSafeStock: '最低安全库存', + highSafeStock: '最高安全库存', lowCritical: '建议入库量', highCritical: '建议出库量', + planStartDate: '计划开始', planEndDate: '计划结束', priority: '优先级', + loginName: '登录名称', userType: '用户类型', roleName: '角色', orgAbr: '部门', + phonenum: '电话号码', isDefault: '是否默认', categoryName: '分类名称', level: '层级', + materialsList: '商品信息', operTimeStr: '单据日期', materialCount: '数量', discountLastMoney: '含税合计', + lastDeposit: '剩余订金', handsPersonName: '财务人员', sourceType: '来源类型', sourceNumber: '来源单据', + sourceTime: '发生时间', sourceUser: '发生人', debt: '待处理金额', finishDebt: '已处理金额', needDebt: '应付/应收金额' + } +} diff --git a/smtERP-web/src/main.js b/smtERP-web/src/main.js new file mode 100644 index 0000000..258f119 --- /dev/null +++ b/smtERP-web/src/main.js @@ -0,0 +1,142 @@ +import Vue from 'vue' +import App from './App.vue' +import Storage from 'vue-ls' +import router from './router' +import store from './store/' + +import { VueAxios } from "@/utils/request" + +import Antd from 'ant-design-vue' +import Viser from 'viser-vue' +import 'ant-design-vue/dist/antd.less'; // or 'ant-design-vue/dist/antd.less' + +import '@/permission' // permission control +import '@/utils/filter' // base filter +import Print from 'vue-print-nb-jeecg' +/*import '@babel/polyfill'*/ +import preview from 'vue-photo-preview' +import 'vue-photo-preview/dist/skin.css' +import 'intro.js/introjs.css' + +import { + ACCESS_TOKEN, + DEFAULT_COLOR, + DEFAULT_THEME, + DEFAULT_LAYOUT_MODE, + DEFAULT_COLOR_WEAK, + SIDEBAR_TYPE, + DEFAULT_FIXED_HEADER, + DEFAULT_FIXED_HEADER_HIDDEN, + DEFAULT_FIXED_SIDEMENU, + DEFAULT_CONTENT_WIDTH_TYPE, + DEFAULT_MULTI_PAGE +} from "@/store/mutation-types" +import config from '@/defaultSettings' + +import hasPermission from '@/utils/hasPermission' +import vueBus from '@/utils/vueBus'; +import JeecgComponents from '@/components/jeecg/index' +import '@/assets/less/JAreaLinkage.less' +import VueAreaLinkage from 'vue-area-linkage' +import DictData from '@/components/DictData' +import DictTag from '@/components/DictTag' +import JCustomerTreeSelect from '@/components/jeecgbiz/JCustomerTreeSelect' +import { initializeLanguage } from '@/utils/language' +import { LANGUAGE_CHANGED_EVENT } from '@/utils/language' +import i18n from '@/locales' + +Vue.prototype.$tt = function (text, values) { + const key = 'ui.' + text + return this.$te(key) ? this.$t(key, values) : text +} + +// Keep table columns inside dialogs synchronized with the active language. +// Selection dialogs also keep the action column at the left so it remains reachable +// when wide business data requires horizontal scrolling. +Vue.mixin({ + mounted () { + this.$nextTick(this.$refreshDialogColumns) + this.__dialogLanguageHandler = () => this.$nextTick(this.$refreshDialogColumns) + window.addEventListener(LANGUAGE_CHANGED_EVENT, this.__dialogLanguageHandler) + }, + beforeDestroy () { + window.removeEventListener(LANGUAGE_CHANGED_EVENT, this.__dialogLanguageHandler) + }, + methods: { + $refreshDialogColumns () { + const columnGroups = [] + const appendColumns = columns => { + if (Array.isArray(columns) && columnGroups.indexOf(columns) === -1) { + columnGroups.push(columns) + } + } + appendColumns(this.columns) + appendColumns(this.defColumns) + appendColumns(this.detailColumns) + Object.keys(this.$data || {}).forEach(key => { + const table = this.$data[key] + if (table && typeof table === 'object') appendColumns(table.columns) + }) + columnGroups.forEach(columns => { + columns.forEach(column => { + if (!column || typeof column.title !== 'string' || column.title === '#') return + if (!column.__sourceTitle) { + const sourceTitle = column._i18nTitle && column._i18nTitle.fallback + ? column._i18nTitle.fallback + : column.title.trim() + this.$set(column, '__sourceTitle', sourceTitle) + } + this.$set(column, 'title', this.$tt(column.__sourceTitle)) + }) + }) + const componentName = (this.$options && this.$options.name) || '' + if (Array.isArray(this.columns) && /Modal|Select|Picker/i.test(componentName)) { + const actionIndex = this.columns.findIndex(column => column && (column.dataIndex === 'action' || column.key === 'action')) + if (actionIndex > 0) { + const actionColumn = this.columns.splice(actionIndex, 1)[0] + actionColumn.fixed = 'left' + actionColumn.width = Math.max(Number(actionColumn.width) || 0, 76) + this.columns.unshift(actionColumn) + } + } + } + } +}) + +Vue.config.productionTip = false +Vue.component('DictTag', DictTag) +Vue.component('JCustomerTreeSelect', JCustomerTreeSelect) +Vue.use(Storage, config.storageOptions) +Vue.use(Antd) +Vue.use(VueAxios, router) +Vue.use(Viser) +Vue.use(hasPermission) +Vue.use(Print) +Vue.use(preview) +Vue.use(vueBus); +Vue.use(JeecgComponents) +Vue.use(VueAreaLinkage) +DictData.install() +const currentLanguage = initializeLanguage() +store.commit('SET_LANGUAGE', currentLanguage) + +new Vue({ + router, + store, + i18n, + mounted () { + // store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true)) + store.commit('SET_SIDEBAR_TYPE', true) + store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme)) + store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout)) + store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader)) + store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar)) + store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth)) + store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader)) + store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak)) + store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor)) + store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN)) + store.commit('SET_MULTI_PAGE',Vue.ls.get(DEFAULT_MULTI_PAGE,config.multipage)) + }, + render: h => h(App) +}).$mount('#app') diff --git a/smtERP-web/src/mixins/JEditableTableMixin.js b/smtERP-web/src/mixins/JEditableTableMixin.js new file mode 100644 index 0000000..484ccd0 --- /dev/null +++ b/smtERP-web/src/mixins/JEditableTableMixin.js @@ -0,0 +1,164 @@ +import JEditableTable from '@/components/jeecg/JEditableTable' +import { VALIDATE_NO_PASSED, getRefPromise, validateFormAndTables } from '@/utils/JEditableTableUtil' +import { httpAction, getAction } from '@/api/manage' + +export const JEditableTableMixin = { + components: { + JEditableTable + }, + data() { + return { + title: '操作', + visible: false, + form: this.$form.createForm(this), + confirmLoading: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 } + } + } + }, + methods: { + + /** 获取所有的editableTable实例 */ + getAllTable() { + if (!(this.refKeys instanceof Array)) { + throw this.throwNotArray('refKeys') + } + let values = this.refKeys.map(key => getRefPromise(this, key)) + return Promise.all(values) + }, + + /** 遍历所有的JEditableTable实例 */ + eachAllTable(callback) { + // 开始遍历 + this.getAllTable().then(tables => { + tables.forEach((item, index) => { + if (typeof callback === 'function') { + callback(item, index) + } + }) + }) + }, + + /** 当点击新增按钮时调用此方法 */ + add() { + if (typeof this.addBefore === 'function') this.addBefore() + // 默认新增空数据 + let rowNum = this.addDefaultRowNum + if (typeof rowNum !== 'number') { + rowNum = 1 + console.warn('由于你没有在 data 中定义 addDefaultRowNum 或 addDefaultRowNum 不是数字,所以默认添加一条空数据,如果不想默认添加空数据,请将定义 addDefaultRowNum 为 0') + } + this.eachAllTable((item) => { + item.add(rowNum) + }) + if (typeof this.addAfter === 'function') this.addAfter(this.model) + this.edit({}) + }, + /** 当点击了编辑(修改)按钮时调用此方法 */ + edit(record) { + if (typeof this.editBefore === 'function') this.editBefore(record) + this.visible = true + this.activeKey = this.refKeys[0] + this.form.resetFields() + this.model = Object.assign({}, record) + if (typeof this.editAfter === 'function') this.editAfter(this.model) + }, + /** 关闭弹窗,并将所有JEditableTable实例回归到初始状态 */ + close() { + this.visible = false + this.eachAllTable((item) => { + item.initialize() + }) + this.$emit('close') + }, + + /** 查询某个tab的数据 */ + requestSubTableData(url, params, tab, success) { + tab.loading = true + getAction(url, params).then(res => { + if(res && res.code === 200){ + tab.dataSource = res.data.rows + typeof success === 'function' ? success(res) : '' + } + }).finally(() => { + tab.loading = false + }) + }, + /** 发起请求,自动判断是执行新增还是修改操作 */ + request(formData) { + let url = this.url.add, method = 'post' + if (this.model.id) { + url = this.url.edit + method = 'put' + } + this.confirmLoading = true + httpAction(url, formData, method).then((res) => { + if(res.code === 200){ + this.$emit('ok') + this.confirmLoading = false + this.close() + } else { + this.$message.warning(res.data.message); + this.confirmLoading = false + } + }).finally(() => { + }) + }, + + /* --- handle 事件 --- */ + + /** ATab 选项卡切换事件 */ + handleChangeTabs(key) { + // 自动重置scrollTop状态,防止出现白屏 + getRefPromise(this, key).then(editableTable => { + editableTable.resetScrollTop() + }) + }, + /** 关闭按钮点击事件 */ + handleCancel() { + this.close() + }, + /** 确定按钮点击事件 */ + handleOk() { + /** 触发表单验证 */ + this.getAllTable().then(tables => { + /** 一次性验证主表和所有的次表 */ + return validateFormAndTables(this.form, tables) + }).then(allValues => { + if (typeof this.classifyIntoFormData !== 'function') { + throw this.throwNotFunction('classifyIntoFormData') + } + let formData = this.classifyIntoFormData(allValues) + // 发起请求 + return this.request(formData) + }).catch(e => { + if (e.error === VALIDATE_NO_PASSED) { + // 如果有未通过表单验证的子表,就自动跳转到它所在的tab + this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index] + } else { + console.error(e) + } + }) + }, + + /* --- throw --- */ + + /** not a function */ + throwNotFunction(name) { + return `${name} 未定义或不是一个函数` + }, + + /** not a array */ + throwNotArray(name) { + return `${name} 未定义或不是一个数组` + } + + } +} \ No newline at end of file diff --git a/smtERP-web/src/mixins/JeecgListMixin.js b/smtERP-web/src/mixins/JeecgListMixin.js new file mode 100644 index 0000000..5cea4f2 --- /dev/null +++ b/smtERP-web/src/mixins/JeecgListMixin.js @@ -0,0 +1,817 @@ +/** + * 新增修改完成调用 modalFormOk方法 编辑弹框组件ref定义为modalForm + * 高级查询按钮调用 superQuery方法 高级查询组件ref定义为superQueryModal + * data中url定义 list为查询列表 delete为删除单条记录 deleteBatch为批量删除 + */ +import { filterObj, getMpListShort, getNowFormatStr } from '@/utils/util' +import { deleteAction, getAction, postAction, downFile, downFilePost, getFileAccessHttpUrl } from '@/api/manage' +import Vue from 'vue' +import VueDraggableResizable from 'vue-draggable-resizable' +import { ACCESS_TOKEN } from "@/store/mutation-types" +import {mixinDevice} from '@/utils/mixin.js' +import { LANGUAGE_CHANGED_EVENT } from '@/utils/language' + +export const JeecgListMixin = { + mixins: [mixinDevice], + components: { + VueDraggableResizable + }, + data(){ + return { + //token header + tokenHeader: {'X-Access-Token': Vue.ls.get(ACCESS_TOKEN)}, + /*卡片样式 */ + cardStyle: '', + /* 查询条件-请不要在queryParam中声明非字符串值的属性 */ + queryParam: {}, + /* 数据源 */ + dataSource:[], + // 实际列 + columns:[], + // 实际索引 + settingDataIndex:[], + /* 分页参数 */ + ipagination:{ + current: 1, + pageSize: 10, + pageSizeOptions: ['10', '20', '30', '50', '100'], + showTotal: (total, range) => { + return this.$t('pagination.total', { from: range[0], to: range[1], total }) + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, + /* 控制table高度 */ + scroll: {}, + /* 排序参数 */ + isorter:{ + column: 'createTime', + order: 'desc', + }, + /* 筛选参数 */ + filters: {}, + /* table加载状态 */ + loading:false, + /* table选中keys*/ + selectedRowKeys: [], + /* table选中records*/ + selectionRows: [], + /* 查询折叠 */ + toggleSearchStatus:false, + /* 高级查询条件生效状态 */ + superQueryFlag:false, + /* 高级查询条件 */ + superQueryParams: '', + /** 高级查询拼接方式 */ + superQueryMatchType: 'and', + /** 是否加载时就执行 */ + disableMixinCreated: false, + /* 按钮权限 */ + btnEnableList: '', + } + }, + created() { + this.refreshColumnI18n() + window.addEventListener(LANGUAGE_CHANGED_EVENT, this.refreshColumnI18n) + if(this.isDesktop()) { + this.cardStyle = 'height:' + (document.documentElement.clientHeight-100) + 'px' + } + if(!this.disableMixinCreated){ + //console.log(' -- mixin created -- ') + this.loadData(); + //初始化字典配置 在自己页面定义 + this.initDictConfig(); + //初始化按钮权限 + this.initActiveBtnStr(); + } + }, + mounted () { + this.refreshColumnI18n() + this.initScroll() + }, + beforeDestroy () { + window.removeEventListener(LANGUAGE_CHANGED_EVENT, this.refreshColumnI18n) + }, + methods:{ + refreshColumnI18n () { + const translate = columns => { + if (!columns) return + columns.forEach(column => { + if (!column || typeof column.title !== 'string' || column.title === '#') return + if (!column._i18nTitle) { + this.$set(column, '_i18nTitle', { + key: column.dataIndex || column.key || column.title, + fallback: column.title + }) + } + const key = 'columns.' + this._i18nColumnKey(column._i18nTitle.key) + if (this.$te(key)) { + this.$set(column, 'title', this.$t(key)) + } else { + this.$set(column, 'title', this.$tt(column._i18nTitle.fallback.trim())) + } + }) + } + translate(this.defColumns) + translate(this.columns) + }, + _i18nColumnKey (value) { + return String(value || '').replace(/[^a-zA-Z0-9_]/g, '') || 'unknown' + }, + loadData(arg) { + if(!this.url.list){ + this.$message.error("请设置url.list属性!") + return + } + //加载数据 若传入参数1则加载第一页的内容 + if (arg === 1) { + this.ipagination.current = 1 + } + let params = this.getQueryParams() //查询条件 + this.loading = true + getAction(this.url.list, params).then((res) => { + if (res.code===200) { + this.dataSource = res.data.rows + this.ipagination.total = res.data.total + this.tableAddTotalRow(this.columns, this.dataSource) + } else if(res.code===510){ + this.$message.warning(res.data) + } else { + this.$message.warning(res.data.message) + } + this.loading = false + this.onClearSelected() + }) + }, + initDictConfig(){ + //console.log("--这是一个假的方法!") + }, + handleSuperQuery(params, matchType) { + //高级查询方法 + if(!params){ + this.superQueryParams='' + this.superQueryFlag = false + }else{ + this.superQueryFlag = true + this.superQueryParams=JSON.stringify(params) + this.superQueryMatchType = matchType + } + this.loadData(1) + }, + getQueryParams() { + //获取查询条件 + let sqp = {} + if(this.superQueryParams){ + sqp['superQueryParams']=encodeURI(this.superQueryParams) + sqp['superQueryMatchType'] = this.superQueryMatchType + } + let searchObj = {} + searchObj.search = JSON.stringify(this.queryParam); + var param = Object.assign(sqp, searchObj, this.isorter ,this.filters); + param.field = this.getQueryField(); + param.currentPage = this.ipagination.current; + param.pageSize = this.ipagination.pageSize; + return filterObj(param); + }, + getQueryField() { + var str = "id,"; + this.columns.forEach(function (value) { + str += "," + value.dataIndex; + }); + return str; + }, + onSelectChange(selectedRowKeys, selectionRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectionRows = selectionRows; + }, + onClearSelected() { + this.selectedRowKeys = [] + this.selectionRows = [] + }, + searchQuery() { + this.loadData(1); + }, + superQuery() { + this.$refs.superQueryModal.show(); + }, + searchReset() { + this.queryParam = {} + this.loadData(1); + }, + batchSetStatus: function (status) { + if(!this.url.batchSetStatusUrl){ + this.$message.error("请设置url.batchSetStatusUrl属性!") + return + } + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!'); + return; + } else { + var ids = ""; + for (var a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ","; + } + var that = this; + this.$confirm({ + title: "确认操作", + content: "是否操作选中数据?", + onOk: function () { + that.loading = true; + postAction(that.url.batchSetStatusUrl, {status: status, ids: ids}).then((res) => { + if(res.code === 200){ + that.loadData() + } else { + that.$message.warning(res.data.message); + } + }).finally(() => { + that.loading = false; + }); + } + }); + } + }, + batchDel: function () { + if(!this.url.deleteBatch){ + this.$message.error("请设置url.deleteBatch属性!") + return + } + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!'); + return; + } else { + var ids = ""; + for (var a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ","; + } + var that = this; + this.$confirm({ + title: "确认删除", + content: "是否删除选中数据?", + onOk: function () { + that.loading = true; + deleteAction(that.url.deleteBatch, {ids: ids}).then((res) => { + if(res.code === 200){ + that.loadData() + } else { + that.$message.warning(res.data.message); + } + }).finally(() => { + that.loading = false; + }); + } + }); + } + }, + handleDelete: function (id) { + if(!this.url.delete){ + this.$message.error("请设置url.delete属性!") + return + } + var that = this; + deleteAction(that.url.delete, {id: id}).then((res) => { + if(res.code === 200){ + that.loadData(); + } else { + that.$message.warning(res.data.message); + } + }); + }, + handleEdit: function (record) { + this.$refs.modalForm.edit(record); + this.$refs.modalForm.title = this.$tt('编辑'); + this.$refs.modalForm.disableSubmit = false; + }, + handleAdd: function () { + this.$refs.modalForm.add(); + this.$refs.modalForm.title = this.$tt('新增'); + this.$refs.modalForm.disableSubmit = false; + }, + handleTableChange(pagination, filters, sorter) { + //分页、排序、筛选变化时触发 + if (Object.keys(sorter).length > 0) { + if(sorter.order) { + this.isorter.column = sorter.field + this.isorter.order = 'ascend' === sorter.order ? 'asc' : 'desc' + } else { + this.isorter.column = 'createTime' + this.isorter.order = 'desc' + } + } + if(pagination && pagination.current) { + this.ipagination = pagination; + } + this.loadData(); + }, + handleToggleSearch(){ + this.toggleSearchStatus = !this.toggleSearchStatus; + }, + // 给popup查询使用(查询区域不支持回填多个字段,限制只返回一个字段) + getPopupField(fields){ + return fields.split(',')[0] + }, + modalFormOk() { + // 新增/修改 成功时,重载列表 + this.loadData() + }, + modalFormClose() { + // 关闭页面时,重载列表 + this.loadData() + }, + handleDetail:function(record, type, prefixNo){ + this.$refs.modalDetail.show(record, type, prefixNo); + this.$refs.modalDetail.title=type+"-详情"; + }, + //加载初始化列 + initColumnsSetting(){ + let columnsStr = Vue.ls.get(this.pageName) + if(columnsStr && columnsStr.indexOf(',')>-1) { + this.settingDataIndex = columnsStr.split(',') + } else { + this.settingDataIndex = this.defDataIndex + } + this.columns = this.normalizeTableColumns(this.defColumns.filter(item => { + return this.settingDataIndex.includes(item.dataIndex) + })) + this.syncTableScrollX() + }, + //列设置更改事件 + onColChange (checkedValues) { + this.columns = this.normalizeTableColumns(this.defColumns.filter(item => { + return checkedValues.includes(item.dataIndex) + })) + this.syncTableScrollX() + let columnsStr = checkedValues.join() + Vue.ls.set(this.pageName, columnsStr) + }, + //恢复默认 + handleRestDefault() { + Vue.ls.remove(this.pageName) + this.initColumnsSetting() + }, + /* 导出 */ + handleExportXls2(){ + let paramsStr = encodeURI(JSON.stringify(this.getQueryParams())); + let url = `${window._CONFIG['domianURL']}/${this.url.exportXlsUrl}?paramsStr=${paramsStr}`; + window.location.href = url; + }, + //通过get方式导出Excel + handleExportXls(fileName){ + if(!fileName || typeof fileName != "string"){ + fileName = "导出文件" + } + let param = {...this.queryParam}; + if(this.selectedRowKeys && this.selectedRowKeys.length>0){ + param['selections'] = this.selectedRowKeys.join(",") + } + console.log("导出参数",param) + downFile(this.url.exportXlsUrl,param).then((data)=>{ + if (!data) { + this.$message.warning("文件下载失败") + return + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls') + }else{ + let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'})) + let link = document.createElement('a') + link.style.display = 'none' + link.href = url + link.setAttribute('download', fileName + '_' + getNowFormatStr()+'.xls') + document.body.appendChild(link) + link.click() + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + } + }) + }, + //通过post方式导出Excel + handleExportXlsPost(fileName, title, head, tip, list) { + if(!fileName || typeof fileName != "string"){ + fileName = "导出文件" + } + let paramObj = {'title': title, 'head': head, 'tip': tip, 'list': list} + console.log("导出参数", paramObj) + downFilePost(paramObj).then((data)=>{ + if (!data) { + this.$message.warning("文件下载失败") + return + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls') + }else{ + let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'})) + let link = document.createElement('a') + link.style.display = 'none' + link.href = url + link.setAttribute('download', fileName + '_' + getNowFormatStr()+'.xls') + document.body.appendChild(link) + link.click() + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + } + }) + }, + /* 导入 */ + handleImportExcel(info){ + this.confirmLoading = true + if (info.file.status !== 'uploading') { + console.log(info.file, info.fileList); + } + if (info.file.status === 'done') { + if (info.file.response) { + // this.$message.success(`${info.file.name} 文件上传成功`); + if (info.file.response.code === 200) { + const importResult = info.file.response.data + this.$message.success((importResult && importResult.message) || importResult || `${info.file.name} 文件上传成功`) + } else { + this.$message.warning(info.file.response.data, 8) + } + this.confirmLoading = false + this.visible = false + this.$emit('ok') + } else { + this.$message.error(`${info.file.name} ${info.file.response.data}.`); + this.confirmLoading = false + } + } else if (info.file.status === 'error') { + this.$message.error(`文件上传失败: ${info.file.msg} `) + this.confirmLoading = false + } + }, + /* 图片预览 */ + getImgView(text){ + if(text && text.indexOf(",")>0){ + text = text.substring(0,text.indexOf(",")) + } + return getFileAccessHttpUrl(text) + }, + /* 文件下载 */ + uploadFile(text){ + if(!text){ + this.$message.warning("未知的文件") + return; + } + if(text.indexOf(",")>0){ + text = text.substring(0,text.indexOf(",")) + } + let url = getFileAccessHttpUrl(text) + window.open(url); + }, + /* 按钮权限 */ + initActiveBtnStr() { + let btnStrList = Vue.ls.get('winBtnStrList'); //按钮功能列表 JSON字符串 + this.btnEnableList = ""; //按钮列表 + if (this.urlPath && btnStrList) { + for (let i = 0; i < btnStrList.length; i++) { + if (btnStrList[i].url === this.urlPath) { + if (btnStrList[i].btnStr) { + this.btnEnableList = btnStrList[i].btnStr + } + } + } + } + }, + /* 初始化表格横向或纵向滚动 */ + initScroll() { + if (this.isMobile()) { + this.scroll.y = '' + } else { + let basicWidth = 150 + let basicLength = 274 + let searchWrapperDomLen=0, operatorDomLen=0 + //搜索区域 + let searchWrapperDom = document.getElementsByClassName('table-page-search-wrapper') + //操作按钮区域 + let operatorDom = document.getElementsByClassName('table-operator') + if(searchWrapperDom && searchWrapperDom[0]) { + searchWrapperDomLen = searchWrapperDom[0].offsetHeight + } + if(operatorDom && operatorDom[0]) { + operatorDomLen = operatorDom[0].offsetHeight+10 + } + this.syncTableScrollX() + this.scroll.y = document.documentElement.clientHeight-searchWrapperDomLen-operatorDomLen-basicLength + } + }, + normalizeTableColumns(columns) { + if (!columns || columns.length === 0) { + return [] + } + const storedWidths = this.getStoredColumnWidths() + return columns.map(col => { + const nextCol = Object.assign({}, col) + const columnKey = this.getColumnStorageKey(nextCol) + const storedWidth = storedWidths[columnKey] + if (storedWidth) { + nextCol.width = storedWidth + } else if (!nextCol.width) { + nextCol.width = this.getDefaultColumnWidth(nextCol) + } else if (typeof nextCol.width === 'string') { + const parsedWidth = parseFloat(nextCol.width.replace('px', '')) + nextCol.width = isNaN(parsedWidth) ? this.getDefaultColumnWidth(nextCol) : parsedWidth + } + if (!nextCol.key && nextCol.dataIndex) { + nextCol.key = nextCol.dataIndex + } + nextCol.width = Math.max(parseFloat(nextCol.width) || this.getDefaultColumnWidth(nextCol), this.getMinColumnWidth(nextCol)) + nextCol.customHeaderCell = this.buildResizableHeaderCell(nextCol) + return nextCol + }) + }, + getTableWidthStorageKey() { + return 'tableColumnWidths:' + (this.pageName || this.prefixNo || this.urlPath || (this.$route && this.$route.path) || this.$options.name || 'default') + }, + getColumnStorageKey(col) { + return String(col.dataIndex || col.key || col.title || '') + }, + getStoredColumnWidths() { + const cache = Vue.ls.get(this.getTableWidthStorageKey()) + if (!cache) { + return {} + } + if (typeof cache === 'string') { + try { + return JSON.parse(cache) + } catch (e) { + return {} + } + } + return cache + }, + saveColumnWidth(columnKey, width) { + if (!columnKey) { + return + } + const cache = this.getStoredColumnWidths() + cache[columnKey] = width + Vue.ls.set(this.getTableWidthStorageKey(), cache) + }, + getMinColumnWidth(col) { + const dataIndex = col.dataIndex || col.key || '' + if (dataIndex === 'action') { + return 120 + } + if (dataIndex === 'rowIndex') { + return 48 + } + return 70 + }, + buildResizableHeaderCell(col) { + const columnKey = this.getColumnStorageKey(col) + const originCustomHeaderCell = col.customHeaderCell + return column => { + const originProps = typeof originCustomHeaderCell === 'function' ? (originCustomHeaderCell(column) || {}) : {} + const originOn = originProps.on || {} + return Object.assign({}, originProps, { + attrs: Object.assign({}, originProps.attrs, { + 'data-column-key': columnKey + }), + props: Object.assign({}, originProps.props, { + width: col.width, + columnKey: columnKey + }), + on: Object.assign({}, originOn, { + resize: width => { + if (typeof originOn.resize === 'function') { + originOn.resize(width) + } + this.resizeTableColumn(columnKey, width) + } + }) + }) + } + }, + resizeTableColumn(columnKey, width) { + const target = (this.columns || []).find(col => this.getColumnStorageKey(col) === columnKey) + if (!target) { + return + } + const nextWidth = Math.max(Math.round(width), this.getMinColumnWidth(target)) + this.$set(target, 'width', nextWidth) + this.saveColumnWidth(columnKey, nextWidth) + this.syncTableScrollX() + }, + getDefaultColumnWidth(col) { + const dataIndex = col.dataIndex || col.key || '' + const compactMap = { + action: 170, + status: 110, + rowIndex: 58, + operTimeStr: 150, + billTime: 150, + createTime: 150, + number: 170, + billNo: 170, + organName: 140, + supplier: 140, + userName: 96, + creator: 96, + materialCount: 80, + totalPrice: 100, + allPrice: 100, + taxLastMoney: 110, + materialsList: 260, + materialParam: 220, + materialName: 180, + name: 180, + standard: 150, + model: 150, + barCode: 170, + linkNumber: 150, + sourceType: 130, + sourceNumber: 180, + sourceTime: 170, + sourceUser: 110, + remark: 200 + } + if (compactMap[dataIndex]) { + return compactMap[dataIndex] + } + return 120 + }, + getColumnsScrollX() { + if (!this.columns || this.columns.length === 0) { + return 0 + } + const columnsWidth = this.columns.reduce((sum, col) => { + let width = col.width + if (typeof width === 'string') { + width = width.replace('px', '') + } + width = parseFloat(width) + if (isNaN(width)) { + width = 120 + } + return sum + width + }, 0) + return columnsWidth + this.getTableControlColumnWidth() + }, + getTableControlColumnWidth() { + let width = 0 + if (Object.prototype.hasOwnProperty.call(this, 'selectedRowKeys')) { + // ant-design-vue uses a 60px selection column. + width += 60 + } + if (Object.prototype.hasOwnProperty.call(this, 'expandedRowKeys')) { + // The expand column is 34px in vc-table. + width += 34 + } + return width + }, + getAvailableTableWidth() { + let tableWrapper = null + if (this.$refs && this.$refs.table && this.$refs.table.$el) { + tableWrapper = this.$refs.table.$el + } else if (this.$el) { + tableWrapper = this.$el.querySelector('.ant-table-wrapper') + } + if (tableWrapper && tableWrapper.clientWidth) { + return tableWrapper.clientWidth + } + return document.documentElement.clientWidth - 214 + }, + syncTableScrollX() { + const scrollX = this.getColumnsScrollX() + if (scrollX > 0) { + this.$set(this.scroll, 'x', Math.max(scrollX, this.getAvailableTableWidth())) + } + }, + //拖拽组件 + handleDrag(column){ + return { + header: { + cell: (h, props, children) => { + const { key, ...restProps } = props + const resizeProps = props.props || {} + const attrs = props.attrs || {} + const columnKey = resizeProps.columnKey || attrs['data-column-key'] || key + // 父表格列宽拖拽逻辑 + const col = column.find((col) => { + return this.getColumnStorageKey(col) === String(columnKey) + }) + if (!col || !col.width) { + return h('th', { ...restProps }, children) + } + const width = parseFloat(resizeProps.width || col.width) + + const dragProps = { + key: this.getColumnStorageKey(col), + class: 'table-draggable-handle', + props: { + w: 10, + h: 36, + x: isNaN(width) ? col.width : width, + y: 0, + z: 1, + axis: 'x', + draggable: true, + resizable: false, + }, + on: { + dragging: (x, y) => { + const nextWidth = Math.max(Math.round(x), this.getMinColumnWidth(col)) + if (props.on && typeof props.on.resize === 'function') { + props.on.resize(nextWidth) + } else { + this.resizeTableColumn(this.getColumnStorageKey(col), nextWidth) + } + }, + }, + } + const drag = h(VueDraggableResizable, { ...dragProps }) + // Keep the header cell width in lockstep with the table colgroup. + // Without an explicit width, the extra resize handle can make the + // header and body columns drift apart in tables with scrollable + // content or selection/expand control columns. + const cellStyle = Object.assign({}, restProps.style, { + width: `${width}px`, + minWidth: `${width}px`, + maxWidth: `${width}px`, + boxSizing: 'border-box' + }) + return h('th', { + ...restProps, + style: cellStyle, + class: [restProps.class, 'resize-table-th'] + }, [children, drag]) + }, + } + } + }, + /** 表格增加合计行 */ + tableAddTotalRow(columns, dataSource) { + if(dataSource.length>0 && this.ipagination.pageSize%10===1) { + //分页条数为11、21、31等的时候增加合计行 + let numKey = 'rowIndex' + let totalRow = { [numKey]: '合计' } + //需要合计的列,记住最后的逗号不要删除 + let parseCols = 'initialStock,currentStock,currentStockPrice,currentWeight,initialAmount,thisMonthAmount,currentAmount,inSum,inSumPrice,' + + 'inOutSumPrice,outSum,outSumPrice,outInSumPrice,operNumber,allPrice,numSum,priceSum,prevSum,thisSum,thisAllPrice,changeAmount,' + + 'allPrice,taxMoney,currentNumber,lowCritical,highCritical,preNeed,debtMoney,backMoney,allNeed,' + + 'needDebt,realNeedDebt,finishDebt,debt,' + columns.forEach(column => { + let { key, dataIndex } = column + if (![key, dataIndex].includes(numKey)) { + let total = 0 + dataSource.forEach(data => { + if(parseCols.indexOf(dataIndex+',')>-1) { + if(data[dataIndex]) { + total += Number.parseFloat(data[dataIndex]) + } else { + total += 0 + } + } else { + total = '-' + } + }) + if (total !== '-') { + total = total.toFixed(2) + } + totalRow[dataIndex] = total + } + }) + dataSource.push(totalRow) + //总数要增加合计的行数,每页都有一行合计,所以总数要加上 + let size = Math.ceil(this.ipagination.total/(this.ipagination.pageSize-1)) + this.ipagination.total = this.ipagination.total + size + } + }, + //动态替换扩展字段 + handleChangeOtherField(showQuery) { + let mpStr = getMpListShort(Vue.ls.get('materialPropertyList')) + if(mpStr) { + let mpArr = mpStr.split(',') + if(mpArr.length ===3) { + if(showQuery) { + this.queryTitle.mp1 = mpArr[0] + this.queryTitle.mp2 = mpArr[1] + this.queryTitle.mp3 = mpArr[2] + } + for (let i = 0; i < this.defColumns.length; i++) { + if(this.defColumns[i].dataIndex === 'otherField1') { + this.defColumns[i].title = mpArr[0] + } + if(this.defColumns[i].dataIndex === 'otherField2') { + this.defColumns[i].title = mpArr[1] + } + if(this.defColumns[i].dataIndex === 'otherField3') { + this.defColumns[i].title = mpArr[2] + } + } + } + } + }, + paginationChange(page, pageSize) { + this.ipagination.current = page + this.ipagination.pageSize = pageSize + this.loadData(this.ipagination.current); + }, + paginationShowSizeChange(current, size) { + this.ipagination.current = current + this.ipagination.pageSize = size + this.loadData(this.ipagination.current); + } + } + +} diff --git a/smtERP-web/src/permission.js b/smtERP-web/src/permission.js new file mode 100644 index 0000000..788d8ee --- /dev/null +++ b/smtERP-web/src/permission.js @@ -0,0 +1,67 @@ +import Vue from 'vue' +import router from './router' +import store from './store' +import NProgress from 'nprogress' // progress bar +import 'nprogress/nprogress.css' // progress bar style +import { USER_ID,INDEX_MAIN_PAGE_PATH } from '@/store/mutation-types' +import { generateIndexRouter } from "@/utils/util" + +NProgress.configure({ showSpinner: false }) // NProgress Configuration + +const whiteList = ['/user/login'] // no redirect whitelist + +router.beforeEach((to, from, next) => { + NProgress.start() // start progress bar + if (Vue.ls.get(USER_ID)) { + /* has token */ + if (to.path === '/' || to.path === '/user/login') { + next({ path: INDEX_MAIN_PAGE_PATH }) + NProgress.done() + } else { + if (store.getters.permissionList.length === 0) { + store.dispatch('GetPermissionList').then(res => { + const menuData = res; + if (menuData === null || menuData === "" || menuData === undefined) { + return; + } + // 缓存用户的按钮权限 + store.dispatch('GetUserBtnList').then(res => { + Vue.ls.set('winBtnStrList', res.data.userBtn, 100 * 24 * 60 * 60 * 1000) + }) + let constRoutes = []; + constRoutes = generateIndexRouter(menuData); + // 添加主界面路由 + store.dispatch('UpdateAppRouter', { constRoutes }).then(() => { + // 根据roles权限生成可访问的路由表 + // 动态添加可访问路由表 + router.addRoutes(store.getters.addRouters) + const redirect = decodeURIComponent(from.query.redirect || to.path) + next({ path: redirect }) + }) + }) + .catch(() => { + store.dispatch('Logout').then(() => { + next({ path: '/user/login' }) + }) + }) + } else { + if (to.path) { + _hmt.push(['_trackPageview', '/#' + to.fullPath]); + } + next() + } + } + } else { + if (whiteList.indexOf(to.path) !== -1) { + // 在免登录白名单,直接进入 + next() + } else { + next({ path: '/user/login' }) + NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it + } + } +}) + +router.afterEach(() => { + NProgress.done() // finish progress bar +}) diff --git a/smtERP-web/src/router/README.md b/smtERP-web/src/router/README.md new file mode 100644 index 0000000..d725135 --- /dev/null +++ b/smtERP-web/src/router/README.md @@ -0,0 +1,126 @@ +路由/菜单说明 +==== + + + +配置文件路径 +---- + +`@/config/router.config.js` + + + +格式和说明 +---- + +```javascript +/** + * 路由配置说明: + * 建议:sider menu 请不要超过三级菜单,若超过三级菜单,则应该设计为顶部主菜单 配合左侧次级菜单 + * + **/ + { + redirect: noredirect, + name: 'router-name', + hidden: true, + meta: { + title: 'title', + icon: 'a-icon', + keepAlive: true, + hiddenHeaderContent: true, + } +} +``` + + + +`{ Route }` 对象 + +| 参数 | 说明 | 类型 | 默认值 | +| -------- | ----------------------------------------- | ------- | ------ | +| hidden | 控制路由是否显示在 sidebar | boolean | falase | +| redirect | 重定向地址, 访问这个路由时,自定进行重定向 | string | - | +| name | 路由名称, 建议设置,且不能重名 | string | - | +| meta | 路由元信息(路由附带扩展信息) | object | {} | + + + +`{ Meta }` 路由元信息对象 + +| 参数 | 说明 | 类型 | 默认值 | +| ------------------- | ------------------------------------------------------------ | ------- | ------ | +| title | 路由标题, 用于显示面包屑, 页面标题 *推荐设置 | string | - | +| icon | 路由在 menu 上显示的图标 | string | - | +| keepAlive | 缓存该路由 | boolean | false | +| hiddenHeaderContent | *特殊 隐藏 [PageHeader](https://github.com/sendya/ant-design-pro-vue/blob/master/src/components/layout/PageHeader.vue#L14) 组件中的页面带的 面包屑和页面标题栏 | boolean | false | +| permission | 与项目提供的权限拦截匹配的权限,如果不匹配,则会被禁止访问该路由页面 | array | [] | + + + +路由例子 +---- + +```ecmascript 6 +const asyncRouterMap = [ + { + path: '/', + name: 'index', + component: BasicLayout, + meta: { title: '首页' }, + redirect: '/dashboard/analysis', + children: [ + { + path: '/dashboard', + component: Layout, + name: 'dashboard', + redirect: '/dashboard/workplace', + meta: {title: '仪表盘', icon: 'dashboard', permission: ['dashboard']}, + children: [ + { + path: '/dashboard/analysis', + name: 'Analysis', + component: () => import('@/views/dashboard/Analysis'), + meta: {title: '分析页', permission: ['dashboard']} + } + ] + }, + + // result + { + path: '/result', + name: 'result', + component: PageView, + redirect: '/result/success', + meta: { title: '结果页', icon: 'check-circle-o', permission: [ 'result' ] }, + children: [ + { + path: '/result/success', + name: 'ResultSuccess', + component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), + // 该页面隐藏面包屑和页面标题栏 + meta: { title: '成功', hiddenHeaderContent: true, permission: [ 'result' ] } + }, + { + path: '/result/fail', + name: 'ResultFail', + component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), + // 该页面隐藏面包屑和页面标题栏 + meta: { title: '失败', hiddenHeaderContent: true, permission: [ 'result' ] } + } + ] + }, + ... + ] + }, +] +``` + +> 1. 请注意 `component: () => import('..') ` 方式引入路由的页面组件为 懒加载模式。具体可以看 [Vue 官方文档](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html) +> 2. 增加新的路由应该增加在 '/' (index) 路由的 `children` 内 +> 3. `permission` 可以进行自定义修改,只需要对这个模块进行自定义修改即可 [src/store/modules/permission.js#L10](https://github.com/sendya/ant-design-pro-vue/blob/master/src/store/modules/permission.js#L10) + + + +附权限路由结构: + +![权限结构](https://static-2.loacg.com/open/static/github/permissions.png) \ No newline at end of file diff --git a/smtERP-web/src/router/index.js b/smtERP-web/src/router/index.js new file mode 100644 index 0000000..d6a2a29 --- /dev/null +++ b/smtERP-web/src/router/index.js @@ -0,0 +1,22 @@ +import Vue from 'vue' +import Router from 'vue-router' +import { constantRouterMap } from '@/config/router.config' + +//update-begin-author:taoyan date:20191011 for:TASK #3214 【优化】访问online功能测试 浏览器控制台抛出异常 +try { + const originalPush = Router.prototype.push + Router.prototype.push = function push(location) { + return originalPush.call(this, location).catch(err => err) + } +} catch (e) { +} +//update-end-author:taoyan date:20191011 for:TASK #3214 【优化】访问online功能测试 浏览器控制台抛出异常 + +Vue.use(Router) + +export default new Router({ + mode: 'history', + base: process.env.BASE_URL, + scrollBehavior: () => ({ y: 0 }), + routes: constantRouterMap +}) \ No newline at end of file diff --git a/smtERP-web/src/store/getters.js b/smtERP-web/src/store/getters.js new file mode 100644 index 0000000..10a6e68 --- /dev/null +++ b/smtERP-web/src/store/getters.js @@ -0,0 +1,24 @@ +import Vue from 'vue' +import { USER_INFO, ENHANCE_PRE } from "@/store/mutation-types" +const getters = { + device: state => state.app.device, + currentLanguage: state => state.app.language, + dict: state => state.dict.dict, + theme: state => state.app.theme, + color: state => state.app.color, + token: state => state.user.token, + // avatar: state => {state.user.avatar = Vue.ls.get(USER_INFO).avatar; return state.user.avatar}, + username: state => state.user.username, + nickname: state => {state.user.username = Vue.ls.get(USER_INFO).username; return state.user.username}, + welcome: state => state.user.welcome, + permissionList: state => state.user.permissionList, + userInfo: state => {state.user.info = Vue.ls.get(USER_INFO); return state.user.info}, + addRouters: state => state.permission.addRouters, + enhanceJs:(state) => (code) => { + state.enhance.enhanceJs[code] = Vue.ls.get(ENHANCE_PRE+code); + return state.enhance.enhanceJs[code] + } + +} + +export default getters diff --git a/smtERP-web/src/store/index.js b/smtERP-web/src/store/index.js new file mode 100644 index 0000000..0547d64 --- /dev/null +++ b/smtERP-web/src/store/index.js @@ -0,0 +1,31 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +import app from './modules/app' +import dict from './modules/dict' +import user from './modules/user' +import permission from './modules/permission' +import enhance from './modules/enhance' +import getters from './getters' + +Vue.use(Vuex) + +export default new Vuex.Store({ + modules: { + app, + dict, + user, + permission, + enhance + }, + state: { + + }, + mutations: { + + }, + actions: { + + }, + getters +}) diff --git a/smtERP-web/src/store/modules/app.js b/smtERP-web/src/store/modules/app.js new file mode 100644 index 0000000..503d21e --- /dev/null +++ b/smtERP-web/src/store/modules/app.js @@ -0,0 +1,142 @@ +import Vue from 'vue' +import { + SIDEBAR_TYPE, + DEFAULT_THEME, + DEFAULT_LAYOUT_MODE, + DEFAULT_COLOR, + DEFAULT_COLOR_WEAK, + DEFAULT_FIXED_HEADER, + DEFAULT_FIXED_SIDEMENU, + DEFAULT_FIXED_HEADER_HIDDEN, + DEFAULT_CONTENT_WIDTH_TYPE, + DEFAULT_MULTI_PAGE +} from "@/store/mutation-types" +import { getLanguage } from '@/utils/language' + +const app = { + state: { + sidebar: { + opened: true, + withoutAnimation: false, + width: 220 + }, + device: 'desktop', + theme: '', + layout: '', + contentWidth: '', + fixedHeader: false, + fixSiderbar: true, + autoHideHeader: false, + color: null, + weak: false, + language: getLanguage(), + multipage: true //默认多页签模式 + }, + mutations: { + SET_LANGUAGE: (state, language) => { + state.language = language + }, + SET_SIDEBAR_TYPE: (state, type) => { + state.sidebar.opened = type + Vue.ls.set(SIDEBAR_TYPE, type) + }, + CLOSE_SIDEBAR: (state, withoutAnimation) => { + Vue.ls.set(SIDEBAR_TYPE, true) + state.sidebar.opened = false + state.sidebar.withoutAnimation = withoutAnimation + }, + SET_SIDEBAR_WIDTH: (state, width) => { + state.sidebar.width = width + Vue.ls.set('SIDEBAR_WIDTH', width) + }, + TOGGLE_DEVICE: (state, device) => { + state.device = device + }, + TOGGLE_THEME: (state, theme) => { + // setStore('_DEFAULT_THEME', theme) + Vue.ls.set(DEFAULT_THEME, theme) + state.theme = theme + }, + TOGGLE_LAYOUT_MODE: (state, layout) => { + Vue.ls.set(DEFAULT_LAYOUT_MODE, layout) + state.layout = layout + }, + TOGGLE_FIXED_HEADER: (state, fixed) => { + Vue.ls.set(DEFAULT_FIXED_HEADER, fixed) + state.fixedHeader = fixed + }, + TOGGLE_FIXED_SIDERBAR: (state, fixed) => { + Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed) + state.fixSiderbar = fixed + }, + TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => { + Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show) + state.autoHideHeader = show + }, + TOGGLE_CONTENT_WIDTH: (state, type) => { + Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type) + state.contentWidth = type + }, + TOGGLE_COLOR: (state, color) => { + Vue.ls.set(DEFAULT_COLOR, color) + state.color = color + }, + TOGGLE_WEAK: (state, flag) => { + Vue.ls.set(DEFAULT_COLOR_WEAK, flag) + state.weak = flag + }, + SET_MULTI_PAGE (state, multipageFlag) { + Vue.ls.set(DEFAULT_MULTI_PAGE, multipageFlag) + state.multipage = multipageFlag + } + }, + actions: { + setSidebar: ({ commit }, type) => { + commit('SET_SIDEBAR_TYPE', type) + }, + setSidebarWidth: ({ commit }, width) => { + commit('SET_SIDEBAR_WIDTH', width) + }, + CloseSidebar({ commit }, { withoutAnimation }) { + commit('CLOSE_SIDEBAR', withoutAnimation) + }, + ToggleDevice({ commit }, device) { + commit('TOGGLE_DEVICE', device) + }, + ToggleTheme({ commit }, theme) { + commit('TOGGLE_THEME', theme) + }, + ToggleLayoutMode({ commit }, mode) { + commit('TOGGLE_LAYOUT_MODE', mode) + }, + ToggleFixedHeader({ commit }, fixedHeader) { + if (!fixedHeader) { + commit('TOGGLE_FIXED_HEADER_HIDDEN', false) + } + commit('TOGGLE_FIXED_HEADER', fixedHeader) + }, + ToggleFixSiderbar({ commit }, fixSiderbar) { + commit( 'TOGGLE_FIXED_SIDERBAR', fixSiderbar) + }, + ToggleFixedHeaderHidden({ commit }, show) { + commit('TOGGLE_FIXED_HEADER_HIDDEN', show) + }, + ToggleContentWidth({ commit }, type) { + commit('TOGGLE_CONTENT_WIDTH', type) + }, + ToggleColor({ commit }, color) { + commit('TOGGLE_COLOR', color) + }, + ToggleWeak({ commit }, weakFlag) { + commit('TOGGLE_WEAK', weakFlag) + }, + SetLanguage({ commit }, language) { + commit('SET_LANGUAGE', language) + }, + ToggleMultipage({ commit }, multipageFlag) { + commit('SET_MULTI_PAGE', multipageFlag) + } + } +} + +export default app diff --git a/smtERP-web/src/store/modules/dict.js b/smtERP-web/src/store/modules/dict.js new file mode 100644 index 0000000..f95bead --- /dev/null +++ b/smtERP-web/src/store/modules/dict.js @@ -0,0 +1,50 @@ +const state = { + dict: new Array() +} +const mutations = { + SET_DICT: (state, { key, value }) => { + if (key !== null && key !== "") { + state.dict.push({ + key: key, + value: value + }) + } + }, + REMOVE_DICT: (state, key) => { + try { + for (let i = 0; i < state.dict.length; i++) { + if (state.dict[i].key == key) { + state.dict.splice(i, i) + return true + } + } + } catch (e) { + } + }, + CLEAN_DICT: (state) => { + state.dict = new Array() + } +} + +const actions = { + // 设置字典 + setDict({ commit }, data) { + commit('SET_DICT', data) + }, + // 删除字典 + removeDict({ commit }, key) { + commit('REMOVE_DICT', key) + }, + // 清空字典 + cleanDict({ commit }) { + commit('CLEAN_DICT') + } +} + +export default { + namespaced: true, + state, + mutations, + actions +} + diff --git a/smtERP-web/src/store/modules/enhance.js b/smtERP-web/src/store/modules/enhance.js new file mode 100644 index 0000000..e7c254d --- /dev/null +++ b/smtERP-web/src/store/modules/enhance.js @@ -0,0 +1,37 @@ +import Vue from 'vue' +const enhance = { + state: { + enhanceJs:{ + + } + }, + mutations: { + ADD_TABLE_ENHANCE: (state, record) => { + if(!state.enhanceJs){ + let obj = {} + let arr = [] + arr.push({...record}) + obj[record.code] = arr + state.enhanceJs = obj + }else{ + if(!state.enhanceJs[record.code]){ + let arr = [] + arr.push({...record}) + state.enhanceJs[record.code] = arr + } + state.enhanceJs[record.code].push({...record}) + } + let arr = state.enhanceJs[record.code] + while(arr.length>16){ + arr.shift() + } + Vue.ls.set('enhance_'+record['code'], arr) + } + }, + actions: { + addEhanceRecord({ commit }, record) { + commit('ADD_TABLE_ENHANCE', record) + } + } +} +export default enhance \ No newline at end of file diff --git a/smtERP-web/src/store/modules/permission.js b/smtERP-web/src/store/modules/permission.js new file mode 100644 index 0000000..7c900e6 --- /dev/null +++ b/smtERP-web/src/store/modules/permission.js @@ -0,0 +1,91 @@ +import { asyncRouterMap, constantRouterMap } from "@/config/router.config" + +/** + * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除 + * + * @param permission + * @param route + * @returns {boolean} + */ +function hasPermission(permission, route) { + if (route.meta && route.meta.permission) { + let flag = -1 + for (let i = 0, len = permission.length; i < len; i++) { + flag = route.meta.permission.indexOf(permission[i]) + if (flag >= 0) { + return true + } + } + return false + } + return true +} + +/** + * 单账户多角色时,使用该方法可过滤角色不存在的菜单 + * + * @param roles + * @param route + * @returns {*} + */ +// eslint-disable-next-line +function hasRole(roles, route) { + if (route.meta && route.meta.roles) { + return route.meta.roles.indexOf(roles.id) + } else { + return true + } +} + +function filterAsyncRouter(routerMap, roles) { + const accessedRouters = routerMap.filter(route => { + if (hasPermission(roles.permissionList, route)) { + if (route.children && route.children.length) { + route.children = filterAsyncRouter(route.children, roles) + } + return true + } + return false + }) + return accessedRouters +} + + +const permission = { + state: { + routers: constantRouterMap, + addRouters: [] + }, + mutations: { + SET_ROUTERS: (state, data) => { + //console.log('-----mutations---SET_ROUTERS----', data) + state.addRouters = data + state.routers = constantRouterMap.concat(data) + // console.log('-----mutations last ---SET_ROUTERS----', state.routers) + } + }, + actions: { + GenerateRoutes({ commit }, data) { + return new Promise(resolve => { + const { roles } = data + console.log('-----mutations---data----', data) + let accessedRouters + accessedRouters = filterAsyncRouter(asyncRouterMap, roles) + console.log('-----mutations---accessedRouters----', accessedRouters) + commit('SET_ROUTERS', accessedRouters) + resolve() + }) + }, + // 动态添加主界面路由,需要缓存 + UpdateAppRouter({ commit }, routes) { + return new Promise(resolve => { + //const [ roles ] = routes.constRoutes + let routelist = routes.constRoutes; + commit('SET_ROUTERS', routelist) + resolve() + }) + } + } +} + +export default permission \ No newline at end of file diff --git a/smtERP-web/src/store/modules/user.js b/smtERP-web/src/store/modules/user.js new file mode 100644 index 0000000..61c24a5 --- /dev/null +++ b/smtERP-web/src/store/modules/user.js @@ -0,0 +1,163 @@ +import Vue from 'vue' +import { login, logout } from "@/api/login" +import { ACCESS_TOKEN, USER_NAME,USER_INFO,UI_CACHE_DB_DICT_DATA,USER_ID,USER_LOGIN_NAME,CACHE_INCLUDED_ROUTES } from "@/store/mutation-types" +import { welcome } from "@/utils/util" +import { queryPermissionsByUser, getUserBtnByCurrentUser } from '@/api/api' +import { getAction } from '@/api/manage' + +const user = { + state: { + token: '', + username: '', + realname: '', + welcome: '', + avatar: '', + permissionList: [], + info: {} + }, + + mutations: { + SET_TOKEN: (state, token) => { + state.token = token + }, + SET_NAME: (state, { username, realname, welcome }) => { + state.username = username + state.realname = realname + state.welcome = welcome + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar + }, + SET_PERMISSIONLIST: (state, permissionList) => { + state.permissionList = permissionList + }, + SET_INFO: (state, info) => { + state.info = info + }, + }, + + actions: { + // CAS验证登录 + ValidateLogin({ commit }, userInfo) { + return new Promise((resolve, reject) => { + getAction("/cas/client/validateLogin",userInfo).then(response => { + console.log("----cas 登录--------",response); + if(response.success){ + const result = response.result + const userInfo = result.userInfo + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result.token) + commit('SET_INFO', userInfo) + commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() }) + commit('SET_AVATAR', userInfo.avatar) + resolve(response) + }else{ + resolve(response) + } + }).catch(error => { + reject(error) + }) + }) + }, + // 登录 + Login({ commit }, userInfo) { + return new Promise((resolve, reject) => { + login(userInfo).then(response => { + if(response.code === 200){ + if(response.data.msgTip === 'user can login'){ + const result = response.data + Vue.ls.set(USER_ID, result.user.id, 7 * 24 * 60 * 60 * 1000); + Vue.ls.set(USER_LOGIN_NAME, result.user.loginName, 7 * 24 * 60 * 60 * 1000); + //前端7天有效期,后端默认1天,只要用户在1天内有访问页面就可以一直续期直到7天结束 + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, result.user, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result.token) + } + commit('SET_INFO', userInfo) + resolve(response) + } else{ + resolve(response) + } + }).catch(error => { + reject(error) + }) + }) + }, + // 获取用户信息 + GetPermissionList({ commit }) { + return new Promise((resolve, reject) => { + //let v_token = Vue.ls.get(ACCESS_TOKEN); + let params = {pNumber:0,userId: Vue.ls.get(USER_ID)}; + queryPermissionsByUser(params).then(response => { + const menuData = response; + if (menuData && menuData.length > 0) { + commit('SET_PERMISSIONLIST', menuData) + } else { + reject('getPermissionList: permissions must be a non-null array !') + } + resolve(response) + }).catch(error => { + reject(error) + }) + }) + }, + + // 获取用户的按钮权限 + GetUserBtnList({ commit }) { + return new Promise((resolve, reject) => { + getUserBtnByCurrentUser().then(response => { + resolve(response) + }).catch(error => { + reject(error) + }) + }) + }, + + // 登出 + Logout({ commit, state }) { + return new Promise((resolve) => { + //let logoutToken = state.token; + commit('SET_TOKEN', '') + commit('SET_PERMISSIONLIST', []) + Vue.ls.remove(USER_ID) + Vue.ls.remove(USER_LOGIN_NAME) + Vue.ls.remove(USER_INFO) + Vue.ls.remove(UI_CACHE_DB_DICT_DATA) + Vue.ls.remove(CACHE_INCLUDED_ROUTES) + logout().then(() => { + resolve() + }).catch(() => { + resolve() + }) + }) + }, + // 第三方登录 + ThirdLogin({ commit }, token) { + return new Promise((resolve, reject) => { + thirdLogin(token).then(response => { + if(response.code =='200'){ + const result = response.result + const userInfo = result.userInfo + Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) + Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) + commit('SET_TOKEN', result.token) + commit('SET_INFO', userInfo) + commit('SET_NAME', { username: userInfo.username,realname: userInfo.realname, welcome: welcome() }) + commit('SET_AVATAR', userInfo.avatar) + resolve(response) + }else{ + reject(response) + } + }).catch(error => { + reject(error) + }) + }) + }, + + } +} + +export default user \ No newline at end of file diff --git a/smtERP-web/src/store/mutation-types.js b/smtERP-web/src/store/mutation-types.js new file mode 100644 index 0000000..3f2508a --- /dev/null +++ b/smtERP-web/src/store/mutation-types.js @@ -0,0 +1,27 @@ +export const ACCESS_TOKEN = 'Access-Token' +export const SIDEBAR_TYPE = 'SIDEBAR_TYPE' +export const DEFAULT_THEME = 'DEFAULT_THEME' +export const DEFAULT_LAYOUT_MODE = 'DEFAULT_LAYOUT_MODE' +export const DEFAULT_COLOR = 'DEFAULT_COLOR' +export const DEFAULT_COLOR_WEAK = 'DEFAULT_COLOR_WEAK' +export const DEFAULT_FIXED_HEADER = 'DEFAULT_FIXED_HEADER' +export const DEFAULT_FIXED_SIDEMENU= 'DEFAULT_FIXED_SIDEMENU' +export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN' +export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE' +export const DEFAULT_MULTI_PAGE = 'DEFAULT_MULTI_PAGE' +export const USER_ID = 'Login_userId' +export const USER_LOGIN_NAME = 'Login_loginName' +export const USER_NAME = 'Login_Username' +export const USER_INFO = 'Login_Userinfo' +export const USER_AUTH = 'LOGIN_USER_BUTTON_AUTH' +export const SYS_BUTTON_AUTH = 'SYS_BUTTON_AUTH' +export const ENCRYPTED_STRING = 'ENCRYPTED_STRING' +export const ENHANCE_PRE = 'enhance_' +export const UI_CACHE_DB_DICT_DATA = 'UI_CACHE_DB_DICT_DATA' +export const INDEX_MAIN_PAGE_PATH = "/dashboard/analysis" +//路由缓存问题,关闭了tab页时再打开就不刷新 #842 +export const CACHE_INCLUDED_ROUTES = 'CACHE_INCLUDED_ROUTES' +export const CONTENT_WIDTH_TYPE = { + Fluid: 'Fluid', + Fixed: 'Fixed' +} \ No newline at end of file diff --git a/smtERP-web/src/utils/JEditableTableUtil.js b/smtERP-web/src/utils/JEditableTableUtil.js new file mode 100644 index 0000000..6331609 --- /dev/null +++ b/smtERP-web/src/utils/JEditableTableUtil.js @@ -0,0 +1,176 @@ +const FormTypes = { + normal: 'normal', + input: 'input', + inputNumber: 'inputNumber', + checkbox: 'checkbox', + select: 'select', + date: 'date', + datetime: 'datetime', + upload: 'upload', + file: 'file', + image: 'image', + popup:'popup', + popupJsh:'popupJsh', + list_multi:"list_multi", + sel_search:"sel_search", + radio:'radio', + checkbox_meta:"checkbox_meta", + input_pop:'input_pop', + slot: 'slot', + hidden: 'hidden' +} +const VALIDATE_NO_PASSED = Symbol() +export { FormTypes, VALIDATE_NO_PASSED } + +/** + * 获取指定的 $refs 对象 + * 有时候可能会遇到组件未挂载到页面中的情况,导致无法获取 $refs 中的某个对象 + * 这个方法可以等待挂载完成之后再返回 $refs 的对象,避免报错 + * @author sunjianlei + **/ +export function getRefPromise(vm, name) { + return new Promise((resolve) => { + (function next() { + let ref = vm.$refs[name] + if (ref) { + resolve(ref) + } else { + setTimeout(() => { + next() + }, 10) + } + })() + }) +} + +/** + * 一次性验证主表单和所有的次表单 + * @param form 主表单 form 对象 + * @param cases 接收一个数组,每项都是一个JEditableTable实例 + * @returns {Promise} + * @author sunjianlei + */ +export function validateFormAndTables(form, cases) { + + if (!(form && typeof form.validateFields === 'function')) { + throw `form 参数需要的是一个form对象,而传入的却是${typeof form}` + } + + let options = {} + return new Promise((resolve, reject) => { + // 验证主表表单 + form.validateFields((err, values) => { + err ? reject({ error: VALIDATE_NO_PASSED }) : resolve(values) + }) + }).then(values => { + Object.assign(options, { formValue: values }) + // 验证所有子表的表单 + return validateTables(cases) + }).then(all => { + Object.assign(options, { tablesValue: all }) + return Promise.resolve(options) + }).catch(error => { + return Promise.reject(error) + }) + +} + +/** + * 验证并获取一个或多个表格的所有值 + * @param cases 接收一个数组,每项都是一个JEditableTable实例 + * @param deleteTempId 是否删除临时ID,如果设为true,行编辑就不返回新增行的ID,ID需要后台生成 + * @author sunjianlei + */ +export function validateTables(cases, deleteTempId) { + if (!(cases instanceof Array)) { + throw `'validateTables'函数的'cases'参数需要的是一个数组,而传入的却是${typeof cases}` + } + return new Promise((resolve, reject) => { + let tables = [] + let index = 0; + if(!cases || cases.length==0){ + resolve() + } + (function next() { + let vm = cases[index] + vm.getAll(true, deleteTempId).then(all => { + tables[index] = all + // 判断校验是否全部完成,完成返回成功,否则继续进行下一步校验 + if (++index === cases.length) { + resolve(tables) + } else ( + next() + ) + }, error => { + // 出现未验证通过的表单,不再进行下一步校验,直接返回失败并跳转到该表格 + if (error === VALIDATE_NO_PASSED) { + reject({ error: VALIDATE_NO_PASSED, index }) + } + reject(error) + }) + })() + }) +} + +/** + * 一次性验证主表单和所有的次表单-只校验单号 + * @param form 主表单 form 对象 + * @param cases 接收一个数组,每项都是一个JEditableTable实例 + * @returns {Promise} + * @author sunjianlei + */ +export function getListData(form, cases) { + let options = {} + return new Promise((resolve, reject) => { + // 验证主表表单 + form.validateFields(['number'],(err, values) => { + err ? reject({ error: VALIDATE_NO_PASSED }) : resolve(values) + }) + }).then(values => { + Object.assign(options, { formValue: values }) + // 验证所有子表的表单 + return getListTables(cases) + }).then(all => { + Object.assign(options, { tablesValue: all }) + return Promise.resolve(options) + }).catch(error => { + return Promise.reject(error) + }) +} + +/** + * 不验证直接获取一个或多个表格的所有值 + * @param cases 接收一个数组,每项都是一个JEditableTable实例 + * @param deleteTempId 是否删除临时ID,如果设为true,行编辑就不返回新增行的ID,ID需要后台生成 + * @author sunjianlei + */ +export function getListTables(cases, deleteTempId) { + if (!(cases instanceof Array)) { + throw `'validateTables'函数的'cases'参数需要的是一个数组,而传入的却是${typeof cases}` + } + return new Promise((resolve, reject) => { + let tables = [] + let index = 0; + if(!cases || cases.length==0){ + resolve() + } + (function next() { + let vm = cases[index] + vm.getAll(false, deleteTempId).then(all => { + tables[index] = all + // 判断校验是否全部完成,完成返回成功,否则继续进行下一步校验 + if (++index === cases.length) { + resolve(tables) + } else ( + next() + ) + }, error => { + // 出现未验证通过的表单,不再进行下一步校验,直接返回失败并跳转到该表格 + if (error === VALIDATE_NO_PASSED) { + reject({ error: VALIDATE_NO_PASSED, index }) + } + reject(error) + }) + })() + }) +} \ No newline at end of file diff --git a/smtERP-web/src/utils/LunarFullCalendarUtil.js b/smtERP-web/src/utils/LunarFullCalendarUtil.js new file mode 100644 index 0000000..e68eb63 --- /dev/null +++ b/smtERP-web/src/utils/LunarFullCalendarUtil.js @@ -0,0 +1,107 @@ +/** + * LunarFullCalendar 公共 js + * + * @version 1.0.0 + * @author sunjianlei + * + * */ + +import { getRefPromise } from '@/utils/JEditableTableUtil' + +/* 日历的视图类型 */ +const calendarViewType = { + month: 'month', // 月视图 + basicWeek: 'basicWeek', // 基础周视图 + basicDay: 'basicDay',// 基础天视图 + agendaWeek: 'agendaWeek', // 议程周视图 + agendaDay: 'agendaDay', // 议程天视图 +} + +/* 定义默认视图 */ +const defaultView = calendarViewType.month + +/* 定义日历默认配置 */ +const defaultSettings = { + locale: 'zh-cn', + // 按钮文字 + buttonText: { + today: '今天', + month: '月', + week: '周', + day: '日' + }, + // 头部排列方式 + header: { + left: 'prev,next, today', + center: 'title', + right: 'hide, custom, month,agendaWeek,agendaDay' + }, + //点击今天日列表图 + eventLimitClick: 'day', + // 隐藏超出的事件 + eventLimit: true, + // 设置每周开始日期为周日 + firstDay: 0, + // 默认显示视图 + defaultView, + timeFormat: 'H:mm', + axisFormat: 'H:mm', + // agenda视图下是否显示all-day + allDaySlot: true, + // agenda视图下all-day的显示文本 + allDayText: '全天', + // 时区默认本地的 + timezone: 'local', + // 周视图和日视同的左侧时间显示 + slotLabelFormat: 'HH:mm', + // 设置第二天阈值 + nextDayThreshold: '00:00:00', +} + +/** 提供了一些增强方法 */ +const CalendarMixins = { + data() { + return { + calenderCurrentViewType: defaultView + } + }, + methods: { + + getCalendarConfigEventHandler() { + return { + // 处理 view changed 事件 + viewRender: (view, element) => { + let { type } = view + + let lastViewType = this.calenderCurrentViewType + this.calenderCurrentViewType = type + + if (typeof this.handleViewRender === 'function') { + this.handleViewRender(type, view, element) + } + + if (lastViewType !== this.calenderCurrentViewType && typeof this.handleViewChanged === 'function') { + this.handleViewChanged(type, view, element) + } + + }, + } + }, + + /** 获取 LunarFullCalendar 实例,ref = baseCalendar */ + getCalendar(fn) { + return getRefPromise(this, 'baseCalendar').then(fn) + }, + + calendarEmit(name, data) { + this.getCalendar(ref => ref.$emit(name, data)) + }, + + /** 强制重新加载所有的事件(日程)*/ + calendarReloadEvents() { + this.calendarEmit('reload-events') + } + } +} + +export { defaultSettings, calendarViewType, CalendarMixins } \ No newline at end of file diff --git a/smtERP-web/src/utils/auth.js b/smtERP-web/src/utils/auth.js new file mode 100644 index 0000000..03ae469 --- /dev/null +++ b/smtERP-web/src/utils/auth.js @@ -0,0 +1,19 @@ +/** + * 弃用 + */ +import { setStore, getStore, clearStore } from "@/utils/storage" + +export const TokenKey = 'Access-Token' + +export function getToken() { + return getStore(TokenKey) +} + +export function setToken(token) { + // key, token, timeout = 86400s + return setStore(TokenKey, token, 86400) +} + +export function removeToken() { + return clearStore(TokenKey) +} \ No newline at end of file diff --git a/smtERP-web/src/utils/authFilter.js b/smtERP-web/src/utils/authFilter.js new file mode 100644 index 0000000..7200e24 --- /dev/null +++ b/smtERP-web/src/utils/authFilter.js @@ -0,0 +1,243 @@ +import { USER_AUTH,SYS_BUTTON_AUTH } from "@/store/mutation-types" + +export function disabledAuthFilter(code,formData) { + if(nodeDisabledAuth(code,formData)){ + return true; + }else{ + return globalDisabledAuth(code); + } +} + +function nodeDisabledAuth(code,formData){ + console.log("页面权限禁用--NODE--开始"); + let permissionList = []; + try { + console.log("页面权限禁用--NODE--开始",formData); + if (formData) { + let bpmList = formData.permissionList; + permissionList = bpmList.filter(item=>item.type=='2') + // for (let bpm of bpmList) { + // if(bpm.type == '2') { + // permissionList.push(bpm); + // } + // } + }else{ + return false; + } + } catch (e) { + //console.log("页面权限异常----", e); + } + if (permissionList.length == 0) { + return false; + } + + console.log("流程节点页面权限禁用--NODE--开始"); + let permissions = []; + for (let item of permissionList) { + if(item.type == '2') { + permissions.push(item.action); + } + } + //console.log("页面权限----"+code); + if (!permissions.includes(code)) { + return false; + }else{ + for (let item2 of permissionList) { + if(code === item2.action){ + console.log("流程节点页面权限禁用--NODE--生效"); + return true; + } + } + } + return false; +} + +function globalDisabledAuth(code){ + console.log("全局页面禁用权限--Global--开始"); + + let permissionList = []; + let allPermissionList = []; + + //let authList = Vue.ls.get(USER_AUTH); + let authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); + for (let auth of authList) { + if(auth.type == '2') { + permissionList.push(auth); + } + } + //console.log("页面禁用权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH)); + let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); + for (let gauth of allAuthList) { + if(gauth.type == '2') { + allPermissionList.push(gauth); + } + } + //设置全局配置是否有命中 + let gFlag = false;//禁用命中 + let invalidFlag = false;//无效命中 + if(allPermissionList != null && allPermissionList != "" && allPermissionList != undefined && allPermissionList.length > 0){ + for (let itemG of allPermissionList) { + if(code === itemG.action){ + if(itemG.status == '0'){ + invalidFlag = true; + break; + }else{ + gFlag = true; + break; + } + } + } + } + if(invalidFlag){ + return false; + } + if (permissionList === null || permissionList === "" || permissionList === undefined||permissionList.length<=0) { + return gFlag; + } + let permissions = []; + for (let item of permissionList) { + if(item.type == '2') { + permissions.push(item.action); + } + } + //console.log("页面禁用权限----"+code); + if (!permissions.includes(code)) { + return gFlag; + }else{ + for (let item2 of permissionList) { + if(code === item2.action){ + console.log("全局页面权限解除禁用--Global--生效"); + gFlag = false; + } + } + return gFlag; + } +} + + + +export function colAuthFilter(columns,pre) { + let authList = getNoAuthCols(pre); + const cols = columns.filter(item => { + if (hasColoum(item,authList)) { + return true + } + return false + }) + return cols +} + +/** + * 【子表行编辑】实现两个功能: + * 1、隐藏JEditableTable无权限的字段 + * 2、禁用JEditableTable无权限的字段 + * @param columns + * @param pre + * @returns {*} + */ +export function colAuthFilterJEditableTable(columns,pre) { + let authList = getAllShowAndDisabledAuthCols(pre); + const cols = columns.filter(item => { + let oneAuth = authList.find(auth => { + return auth.action === pre + item.key; + }); + if(!oneAuth){ + return true + } + + //代码严谨处理,防止一个授权标识,配置多次 + if(oneAuth instanceof Array){ + oneAuth = oneAuth[0] + } + + //禁用逻辑 + if (oneAuth.type == '2' && !oneAuth.isAuth) { + item["disabled"] = true + return true + } + //隐藏逻辑逻辑 + if (oneAuth.type == '1' && !oneAuth.isAuth) { + return false + } + return true + }) + return cols +} + + +function hasColoum(item,authList){ + if (authList.includes(item.dataIndex)) { + return false + } + return true +} + +//权限无效时不做控制,有效时控制,只能控制 显示不显示 +//根据授权码前缀获取未授权的列信息 +function getNoAuthCols(pre){ + let permissionList = []; + let allPermissionList = []; + + //let authList = Vue.ls.get(USER_AUTH); + let authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); + for (let auth of authList) { + //显示策略,有效状态 + if(auth.type == '1'&&startWith(auth.action,pre)) { + permissionList.push(substrPre(auth.action,pre)); + } + } + //console.log("页面禁用权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH)); + let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); + for (let gauth of allAuthList) { + //显示策略,有效状态 + if(gauth.type == '1'&&gauth.status == '1'&&startWith(gauth.action,pre)) { + allPermissionList.push(substrPre(gauth.action,pre)); + } + } + const cols = allPermissionList.filter(item => { + if (permissionList.includes(item)) { + return false; + } + return true; + }) + return cols; +} + + + +/** + * 额外增加方法【用于行编辑组件】 + * date: 2020-04-05 + * author: scott + * @param pre + * @returns {*[]} + */ +function getAllShowAndDisabledAuthCols(pre){ + //用户拥有的权限 + let userAuthList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); + //全部权限配置 + let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); + + let newAllAuthList = allAuthList.map(function (item, index) { + let hasAuthArray = userAuthList.filter(u => u.action===item.action ); + if (hasAuthArray && hasAuthArray.length>0) { + item["isAuth"] = true + } + return item; + }) + + return newAllAuthList; +} + +function startWith(str,pre) { + if (pre == null || pre == "" || str==null|| str==""|| str.length == 0 || pre.length > str.length) + return false; + if (str.substr(0, pre.length) == pre) + return true; + else + return false; +} + +function substrPre(str,pre) { + return str.substr(pre.length); +} \ No newline at end of file diff --git a/smtERP-web/src/utils/axios.js b/smtERP-web/src/utils/axios.js new file mode 100644 index 0000000..de27d4c --- /dev/null +++ b/smtERP-web/src/utils/axios.js @@ -0,0 +1,37 @@ +const VueAxios = { + vm: {}, + // eslint-disable-next-line no-unused-vars + install(Vue, router = {}, instance) { + if (this.installed) { + return; + } + this.installed = true; + + if (!instance) { + // eslint-disable-next-line no-console + console.error('You have to install axios'); + return; + } + + Vue.axios = instance; + + Object.defineProperties(Vue.prototype, { + axios: { + get: function get() { + return instance; + } + }, + $http: { + get: function get() { + return instance; + } + } + }); + } +}; + +export { + VueAxios, + // eslint-disable-next-line no-undef + //instance as axios +} \ No newline at end of file diff --git a/smtERP-web/src/utils/commonUploadFile.js b/smtERP-web/src/utils/commonUploadFile.js new file mode 100644 index 0000000..eaa6dbb --- /dev/null +++ b/smtERP-web/src/utils/commonUploadFile.js @@ -0,0 +1,52 @@ +import { getFileAccessHttpUrl } from '@/api/manage' +const getFileName=(path)=>{ + if(path.lastIndexOf("\\")>=0){ + let reg=new RegExp("\\\\","g"); + path = path.replace(reg,"/"); + } + return path.substring(path.lastIndexOf("/")+1); +} + +const uidGenerator=()=>{ + return '-'+parseInt(Math.random()*10000+1,10); +} + +const getFilePaths=(uploadFiles)=>{ + let arr = []; + if(!uploadFiles){ + return "" + } + for(let a=0;a0){ + return arr.join(",") + } + return "" +} + +const getUploadFileList=(paths)=>{ + if(!paths){ + return []; + } + let fileList = []; + let arr = paths.split(",") + for(let a=0;a content(arg) + ' | 北京市'; // export 箭头函数也可以 +* +*/ + +/** 字段默认值官方示例:获取地址 */ +export function demoFieldDefVal_getAddress(arg) { + if (!arg) { + arg = '朝阳区' + } + return `北京市 ${arg}` +} \ No newline at end of file diff --git a/smtERP-web/src/utils/device.js b/smtERP-web/src/utils/device.js new file mode 100644 index 0000000..6bf15fc --- /dev/null +++ b/smtERP-web/src/utils/device.js @@ -0,0 +1,23 @@ +import enquireJs from 'enquire.js' + +const enquireScreen = function (call) { + // tablet + const handler = { + match: function () { + call && call(0) + }, + unmatch: function () { + call && call(-1) + } + } + // mobile + const handler2 = { + match: () => { + call && call(1) + } + } + enquireJs.register('screen and (max-width: 1087.99px)', handler) + enquireJs.register('screen and (max-width: 767.99px)', handler2) +} + +export default enquireScreen \ No newline at end of file diff --git a/smtERP-web/src/utils/dict/Dict.js b/smtERP-web/src/utils/dict/Dict.js new file mode 100644 index 0000000..4019cca --- /dev/null +++ b/smtERP-web/src/utils/dict/Dict.js @@ -0,0 +1,82 @@ +import Vue from 'vue' +import { mergeRecursive } from "@/utils/util"; +import DictMeta from './DictMeta' +import DictData from './DictData' + +const DEFAULT_DICT_OPTIONS = { + types: [], +} + +/** + * @classdesc 字典 + * @property {Object} label 标签对象,内部属性名为字典类型名称 + * @property {Object} dict 字段数组,内部属性名为字典类型名称 + * @property {Array.} _dictMetas 字典元数据数组 + */ +export default class Dict { + constructor() { + this.owner = null + this.label = {} + this.type = {} + } + + init(options) { + if (options instanceof Array) { + options = { types: options } + } + const opts = mergeRecursive(DEFAULT_DICT_OPTIONS, options) + if (opts.types === undefined) { + throw new Error('need dict types') + } + const ps = [] + this._dictMetas = opts.types.map(t => DictMeta.parse(t)) + this._dictMetas.forEach(dictMeta => { + const type = dictMeta.type + Vue.set(this.label, type, {}) + Vue.set(this.type, type, []) + if (dictMeta.lazy) { + return + } + ps.push(loadDict(this, dictMeta)) + }) + return Promise.all(ps) + } + + /** + * 重新加载字典 + * @param {String} type 字典类型 + */ + reloadDict(type) { + const dictMeta = this._dictMetas.find(e => e.type === type) + if (dictMeta === undefined) { + return Promise.reject(`the dict meta of ${type} was not found`) + } + return loadDict(this, dictMeta) + } +} + +/** + * 加载字典 + * @param {Dict} dict 字典 + * @param {DictMeta} dictMeta 字典元数据 + * @returns {Promise} + */ +function loadDict(dict, dictMeta) { + return dictMeta.request(dictMeta) + .then(response => { + const type = dictMeta.type + let dicts = dictMeta.responseConverter(response, dictMeta) + if (!(dicts instanceof Array)) { + console.error('the return of responseConverter must be Array.') + dicts = [] + } else if (dicts.filter(d => d instanceof DictData).length !== dicts.length) { + console.error('the type of elements in dicts must be DictData') + dicts = [] + } + dict.type[type].splice(0, Number.MAX_SAFE_INTEGER, ...dicts) + dicts.forEach(d => { + Vue.set(dict.label[type], d.value, d.label) + }) + return dicts + }) +} diff --git a/smtERP-web/src/utils/dict/DictConverter.js b/smtERP-web/src/utils/dict/DictConverter.js new file mode 100644 index 0000000..0cf5df8 --- /dev/null +++ b/smtERP-web/src/utils/dict/DictConverter.js @@ -0,0 +1,17 @@ +import DictOptions from './DictOptions' +import DictData from './DictData' + +export default function(dict, dictMeta) { + const label = determineDictField(dict, dictMeta.labelField, ...DictOptions.DEFAULT_LABEL_FIELDS) + const value = determineDictField(dict, dictMeta.valueField, ...DictOptions.DEFAULT_VALUE_FIELDS) + return new DictData(dict[label], dict[value], dict) +} + +/** + * 确定字典字段 + * @param {DictData} dict + * @param {...String} fields + */ +function determineDictField(dict, ...fields) { + return fields.find(f => Object.prototype.hasOwnProperty.call(dict, f)) +} diff --git a/smtERP-web/src/utils/dict/DictData.js b/smtERP-web/src/utils/dict/DictData.js new file mode 100644 index 0000000..afc763e --- /dev/null +++ b/smtERP-web/src/utils/dict/DictData.js @@ -0,0 +1,13 @@ +/** + * @classdesc 字典数据 + * @property {String} label 标签 + * @property {*} value 标签 + * @property {Object} raw 原始数据 + */ +export default class DictData { + constructor(label, value, raw) { + this.label = label + this.value = value + this.raw = raw + } +} diff --git a/smtERP-web/src/utils/dict/DictMeta.js b/smtERP-web/src/utils/dict/DictMeta.js new file mode 100644 index 0000000..f7cecf2 --- /dev/null +++ b/smtERP-web/src/utils/dict/DictMeta.js @@ -0,0 +1,38 @@ +import { mergeRecursive } from "@/utils/util"; +import DictOptions from './DictOptions' + +/** + * @classdesc 字典元数据 + * @property {String} type 类型 + * @property {Function} request 请求 + * @property {String} label 标签字段 + * @property {String} value 值字段 + */ +export default class DictMeta { + constructor(options) { + this.type = options.type + this.request = options.request + this.responseConverter = options.responseConverter + this.labelField = options.labelField + this.valueField = options.valueField + this.lazy = options.lazy === true + } +} + + +/** + * 解析字典元数据 + * @param {Object} options + * @returns {DictMeta} + */ +DictMeta.parse= function(options) { + let opts = null + if (typeof options === 'string') { + opts = DictOptions.metas[options] || {} + opts.type = options + } else if (typeof options === 'object') { + opts = options + } + opts = mergeRecursive(DictOptions.metas['*'], opts) + return new DictMeta(opts) +} diff --git a/smtERP-web/src/utils/dict/DictOptions.js b/smtERP-web/src/utils/dict/DictOptions.js new file mode 100644 index 0000000..ec43c1d --- /dev/null +++ b/smtERP-web/src/utils/dict/DictOptions.js @@ -0,0 +1,51 @@ +import { mergeRecursive } from "@/utils/util"; +import dictConverter from './DictConverter' + +export const options = { + metas: { + '*': { + /** + * 字典请求,方法签名为function(dictMeta: DictMeta): Promise + */ + request: (dictMeta) => { + console.log(`load dict ${dictMeta.type}`) + return Promise.resolve([]) + }, + /** + * 字典响应数据转换器,方法签名为function(response: Object, dictMeta: DictMeta): DictData + */ + responseConverter, + labelField: 'label', + valueField: 'value', + }, + }, + /** + * 默认标签字段 + */ + DEFAULT_LABEL_FIELDS: ['label', 'name', 'title'], + /** + * 默认值字段 + */ + DEFAULT_VALUE_FIELDS: ['value', 'id', 'uid', 'key'], +} + +/** + * 映射字典 + * @param {Object} response 字典数据 + * @param {DictMeta} dictMeta 字典元数据 + * @returns {DictData} + */ +function responseConverter(response, dictMeta) { + const dicts = response.content instanceof Array ? response.content : response + if (dicts === undefined) { + console.warn(`no dict data of "${dictMeta.type}" found in the response`) + return [] + } + return dicts.map(d => dictConverter(d, dictMeta)) +} + +export function mergeOptions(src) { + mergeRecursive(options, src) +} + +export default options diff --git a/smtERP-web/src/utils/dict/index.js b/smtERP-web/src/utils/dict/index.js new file mode 100644 index 0000000..215eb9e --- /dev/null +++ b/smtERP-web/src/utils/dict/index.js @@ -0,0 +1,33 @@ +import Dict from './Dict' +import { mergeOptions } from './DictOptions' + +export default function(Vue, options) { + mergeOptions(options) + Vue.mixin({ + data() { + if (this.$options === undefined || this.$options.dicts === undefined || this.$options.dicts === null) { + return {} + } + const dict = new Dict() + dict.owner = this + return { + dict + } + }, + created() { + if (!(this.dict instanceof Dict)) { + return + } + options.onCreated && options.onCreated(this.dict) + this.dict.init(this.$options.dicts).then(() => { + options.onReady && options.onReady(this.dict) + this.$nextTick(() => { + this.$emit('dictReady', this.dict) + if (this.$options.methods && this.$options.methods.onDictReady instanceof Function) { + this.$options.methods.onDictReady.call(this, this.dict) + } + }) + }) + }, + }) +} diff --git a/smtERP-web/src/utils/encryption/aesEncrypt.js b/smtERP-web/src/utils/encryption/aesEncrypt.js new file mode 100644 index 0000000..07638cf --- /dev/null +++ b/smtERP-web/src/utils/encryption/aesEncrypt.js @@ -0,0 +1,6003 @@ +import { getAction } from '@/api/manage' +import { ENCRYPTED_STRING } from "@/store/mutation-types" +import Vue from 'vue' + +/** + * 获取加密字符串,并对结果进行缓存 + */ +export function getEncryptedString() { + return getAction("/sys/getEncryptedString",{}).then((res)=>{ + let encryptedString = {}; + encryptedString.key = res.result.key; + encryptedString.iv = res.result.iv; + Vue.ls.set(ENCRYPTED_STRING, encryptedString, 7 * 24 * 60 * 60 * 1000); + return encryptedString; + }); +} + +/** + * AES加密 :字符串 key iv 返回base64 + */ +export function encryption(word, keyStr, ivStr) { + + let key = CryptoJS.enc.Utf8.parse(keyStr) + let iv = CryptoJS.enc.Utf8.parse(ivStr) + + let srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, key, { + iv: iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + // console.log("-=-=-=-", encrypted.ciphertext) + return CryptoJS.enc.Base64.stringify(encrypted.ciphertext); + +} + + +var CryptoJS = CryptoJS || (function (Math, undefined) { + /* + * Local polyfil of Object.create + */ + var create = Object.create || (function () { + function F() {}; + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + }()) + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = C.lib = {}; + + /** + * Base object for prototypal inheritance. + */ + var Base = C_lib.Base = (function () { + + + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () { + }, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var i = 0; i < thatSigBytes; i += 4) { + thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + var r = (function (m_w) { + var m_w = m_w; + var m_z = 0x3ade68b1; + var mask = 0xffffffff; + + return function () { + m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask; + m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask; + var result = ((m_z << 0x10) + m_w) & mask; + result /= 0x100000000; + result += 0.5; + return result * (Math.random() > .5 ? 1 : -1); + } + }); + + for (var i = 0, rcache; i < nBytes; i += 4) { + var _r = r((rcache || Math.random()) * 0x100000000); + + rcache = _r() * 0x3ade67b7; + words.push((_r() * 0x100000000) | 0); + } + + return new WordArray.init(words, nBytes); + } + }); + + /** + * Encoder namespace. + */ + var C_enc = C.enc = {}; + + /** + * Hex encoding strategy. + */ + var Hex = C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(''); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + } + }; + + /** + * Latin1 encoding strategy. + */ + var Latin1 = C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(''); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + } + }; + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == 'string') { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + var processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0 + }); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512/32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + + /** + * Algorithm namespace. + */ + var C_algo = C.algo = {}; + + return C; +}(Math)); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64 encoding strategy. + */ + var Base64 = C_enc.Base64 = { + /** + * Converts a word array to a Base64 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Base64 string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64 string to a word array. + * + * @param {string} base64Str The Base64 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64.parse(base64String); + */ + parse: function (base64Str) { + // Shortcuts + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } +}()); + + +(function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var T = []; + + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + }()); + + /** + * MD5 hash algorithm. + */ + var MD5 = C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + + // Shortcuts + var H = this._hash.words; + + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; + + // Working varialbes + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); + + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); + + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); + + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) + ); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) + ); + + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; + + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); +}(Math)); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Reusable object + var W = []; + + /** + * SHA-1 hash algorithm. + */ + var SHA1 = C_algo.SHA1 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476, + 0xc3d2e1f0 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + + // Computation + for (var i = 0; i < 80; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; + W[i] = (n << 1) | (n >>> 31); + } + + var t = ((a << 5) | (a >>> 27)) + e + W[i]; + if (i < 20) { + t += ((b & c) | (~b & d)) + 0x5a827999; + } else if (i < 40) { + t += (b ^ c ^ d) + 0x6ed9eba1; + } else if (i < 60) { + t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; + } else /* if (i < 80) */ { + t += (b ^ c ^ d) - 0x359d3e2a; + } + + e = d; + d = c; + c = (b << 30) | (b >>> 2); + b = a; + a = t; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA1('message'); + * var hash = CryptoJS.SHA1(wordArray); + */ + C.SHA1 = Hasher._createHelper(SHA1); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA1(message, key); + */ + C.HmacSHA1 = Hasher._createHmacHelper(SHA1); +}()); + + +(function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Initialization and round constants tables + var H = []; + var K = []; + + // Compute constants + (function () { + function isPrime(n) { + var sqrtN = Math.sqrt(n); + for (var factor = 2; factor <= sqrtN; factor++) { + if (!(n % factor)) { + return false; + } + } + + return true; + } + + function getFractionalBits(n) { + return ((n - (n | 0)) * 0x100000000) | 0; + } + + var n = 2; + var nPrime = 0; + while (nPrime < 64) { + if (isPrime(n)) { + if (nPrime < 8) { + H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); + } + K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); + + nPrime++; + } + + n++; + } + }()); + + // Reusable object + var W = []; + + /** + * SHA-256 hash algorithm. + */ + var SHA256 = C_algo.SHA256 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init(H.slice(0)); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + var f = H[5]; + var g = H[6]; + var h = H[7]; + + // Computation + for (var i = 0; i < 64; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var gamma0x = W[i - 15]; + var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ + ((gamma0x << 14) | (gamma0x >>> 18)) ^ + (gamma0x >>> 3); + + var gamma1x = W[i - 2]; + var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ + ((gamma1x << 13) | (gamma1x >>> 19)) ^ + (gamma1x >>> 10); + + W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; + } + + var ch = (e & f) ^ (~e & g); + var maj = (a & b) ^ (a & c) ^ (b & c); + + var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); + var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); + + var t1 = h + sigma1 + ch + K[i] + W[i]; + var t2 = sigma0 + maj; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + H[5] = (H[5] + f) | 0; + H[6] = (H[6] + g) | 0; + H[7] = (H[7] + h) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA256('message'); + * var hash = CryptoJS.SHA256(wordArray); + */ + C.SHA256 = Hasher._createHelper(SHA256); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA256(message, key); + */ + C.HmacSHA256 = Hasher._createHmacHelper(SHA256); +}(Math)); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * UTF-16 BE encoding strategy. + */ + var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { + /** + * Converts a word array to a UTF-16 BE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 BE string. + * + * @static + * + * @example + * + * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 BE string to a word array. + * + * @param {string} utf16Str The UTF-16 BE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + /** + * UTF-16 LE encoding strategy. + */ + C_enc.Utf16LE = { + /** + * Converts a word array to a UTF-16 LE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 LE string. + * + * @static + * + * @example + * + * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 LE string to a word array. + * + * @param {string} utf16Str The UTF-16 LE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + function swapEndian(word) { + return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); + } +}()); + + +(function () { + // Check if typed arrays are supported + if (typeof ArrayBuffer != 'function') { + return; + } + + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + + // Reference original init + var superInit = WordArray.init; + + // Augment WordArray.init to handle typed arrays + var subInit = WordArray.init = function (typedArray) { + // Convert buffers to uint8 + if (typedArray instanceof ArrayBuffer) { + typedArray = new Uint8Array(typedArray); + } + + // Convert other array views to uint8 + if ( + typedArray instanceof Int8Array || + (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || + typedArray instanceof Int16Array || + typedArray instanceof Uint16Array || + typedArray instanceof Int32Array || + typedArray instanceof Uint32Array || + typedArray instanceof Float32Array || + typedArray instanceof Float64Array + ) { + typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); + } + + // Handle Uint8Array + if (typedArray instanceof Uint8Array) { + // Shortcut + var typedArrayByteLength = typedArray.byteLength; + + // Extract bytes + var words = []; + for (var i = 0; i < typedArrayByteLength; i++) { + words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); + } + + // Initialize this word array + superInit.call(this, words, typedArrayByteLength); + } else { + // Else call normal init + superInit.apply(this, arguments); + } + }; + + subInit.prototype = WordArray; +}()); + + +/** @preserve + (c) 2012 by Cédric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +(function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var _zl = WordArray.create([ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); + var _zr = WordArray.create([ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); + var _sl = WordArray.create([ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); + var _sr = WordArray.create([ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); + + var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); + var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); + + /** + * RIPEMD160 hash algorithm. + */ + var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ + _doReset: function () { + this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); + }, + + _doProcessBlock: function (M, offset) { + + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + // Swap + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + // Shortcut + var H = this._hash.words; + var hl = _hl.words; + var hr = _hr.words; + var zl = _zl.words; + var zr = _zr.words; + var sl = _sl.words; + var sr = _sr.words; + + // Working variables + var al, bl, cl, dl, el; + var ar, br, cr, dr, er; + + ar = al = H[0]; + br = bl = H[1]; + cr = cl = H[2]; + dr = dl = H[3]; + er = el = H[4]; + // Computation + var t; + for (var i = 0; i < 80; i += 1) { + t = (al + M[offset+zl[i]])|0; + if (i<16){ + t += f1(bl,cl,dl) + hl[0]; + } else if (i<32) { + t += f2(bl,cl,dl) + hl[1]; + } else if (i<48) { + t += f3(bl,cl,dl) + hl[2]; + } else if (i<64) { + t += f4(bl,cl,dl) + hl[3]; + } else {// if (i<80) { + t += f5(bl,cl,dl) + hl[4]; + } + t = t|0; + t = rotl(t,sl[i]); + t = (t+el)|0; + al = el; + el = dl; + dl = rotl(cl, 10); + cl = bl; + bl = t; + + t = (ar + M[offset+zr[i]])|0; + if (i<16){ + t += f5(br,cr,dr) + hr[0]; + } else if (i<32) { + t += f4(br,cr,dr) + hr[1]; + } else if (i<48) { + t += f3(br,cr,dr) + hr[2]; + } else if (i<64) { + t += f2(br,cr,dr) + hr[3]; + } else {// if (i<80) { + t += f1(br,cr,dr) + hr[4]; + } + t = t|0; + t = rotl(t,sr[i]) ; + t = (t+er)|0; + ar = er; + er = dr; + dr = rotl(cr, 10); + cr = br; + br = t; + } + // Intermediate hash value + t = (H[1] + cl + dr)|0; + H[1] = (H[2] + dl + er)|0; + H[2] = (H[3] + el + ar)|0; + H[3] = (H[4] + al + br)|0; + H[4] = (H[0] + bl + cr)|0; + H[0] = t; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | + (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) + ); + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 5; i++) { + // Shortcut + var H_i = H[i]; + + // Swap + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + + function f1(x, y, z) { + return ((x) ^ (y) ^ (z)); + + } + + function f2(x, y, z) { + return (((x)&(y)) | ((~x)&(z))); + } + + function f3(x, y, z) { + return (((x) | (~(y))) ^ (z)); + } + + function f4(x, y, z) { + return (((x) & (z)) | ((y)&(~(z)))); + } + + function f5(x, y, z) { + return ((x) ^ ((y) |(~(z)))); + + } + + function rotl(x,n) { + return (x<>>(32-n)); + } + + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.RIPEMD160('message'); + * var hash = CryptoJS.RIPEMD160(wordArray); + */ + C.RIPEMD160 = Hasher._createHelper(RIPEMD160); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacRIPEMD160(message, key); + */ + C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); +}(Math)); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var C_algo = C.algo; + + /** + * HMAC algorithm. + */ + var HMAC = C_algo.HMAC = Base.extend({ + /** + * Initializes a newly created HMAC. + * + * @param {Hasher} hasher The hash algorithm to use. + * @param {WordArray|string} key The secret key. + * + * @example + * + * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); + */ + init: function (hasher, key) { + // Init hasher + hasher = this._hasher = new hasher.init(); + + // Convert string to WordArray, else assume WordArray already + if (typeof key == 'string') { + key = Utf8.parse(key); + } + + // Shortcuts + var hasherBlockSize = hasher.blockSize; + var hasherBlockSizeBytes = hasherBlockSize * 4; + + // Allow arbitrary length keys + if (key.sigBytes > hasherBlockSizeBytes) { + key = hasher.finalize(key); + } + + // Clamp excess bits + key.clamp(); + + // Clone key for inner and outer pads + var oKey = this._oKey = key.clone(); + var iKey = this._iKey = key.clone(); + + // Shortcuts + var oKeyWords = oKey.words; + var iKeyWords = iKey.words; + + // XOR keys with pad constants + for (var i = 0; i < hasherBlockSize; i++) { + oKeyWords[i] ^= 0x5c5c5c5c; + iKeyWords[i] ^= 0x36363636; + } + oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; + + // Set initial values + this.reset(); + }, + + /** + * Resets this HMAC to its initial state. + * + * @example + * + * hmacHasher.reset(); + */ + reset: function () { + // Shortcut + var hasher = this._hasher; + + // Reset + hasher.reset(); + hasher.update(this._iKey); + }, + + /** + * Updates this HMAC with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {HMAC} This HMAC instance. + * + * @example + * + * hmacHasher.update('message'); + * hmacHasher.update(wordArray); + */ + update: function (messageUpdate) { + this._hasher.update(messageUpdate); + + // Chainable + return this; + }, + + /** + * Finalizes the HMAC computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The HMAC. + * + * @example + * + * var hmac = hmacHasher.finalize(); + * var hmac = hmacHasher.finalize('message'); + * var hmac = hmacHasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Shortcut + var hasher = this._hasher; + + // Compute HMAC + var innerHash = hasher.finalize(messageUpdate); + hasher.reset(); + var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); + + return hmac; + } + }); +}()); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA1 = C_algo.SHA1; + var HMAC = C_algo.HMAC; + + /** + * Password-Based Key Derivation Function 2 algorithm. + */ + var PBKDF2 = C_algo.PBKDF2 = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hasher to use. Default: SHA1 + * @property {number} iterations The number of iterations to perform. Default: 1 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: SHA1, + iterations: 1 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.PBKDF2.create(); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + // Shortcut + var cfg = this.cfg; + + // Init HMAC + var hmac = HMAC.create(cfg.hasher, password); + + // Initial values + var derivedKey = WordArray.create(); + var blockIndex = WordArray.create([0x00000001]); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var blockIndexWords = blockIndex.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + var block = hmac.update(salt).finalize(blockIndex); + hmac.reset(); + + // Shortcuts + var blockWords = block.words; + var blockWordsLength = blockWords.length; + + // Iterations + var intermediate = block; + for (var i = 1; i < iterations; i++) { + intermediate = hmac.finalize(intermediate); + hmac.reset(); + + // Shortcut + var intermediateWords = intermediate.words; + + // XOR intermediate with block + for (var j = 0; j < blockWordsLength; j++) { + blockWords[j] ^= intermediateWords[j]; + } + } + + derivedKey.concat(block); + blockIndexWords[0]++; + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.PBKDF2(password, salt); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.PBKDF2 = function (password, salt, cfg) { + return PBKDF2.create(cfg).compute(password, salt); + }; +}()); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var MD5 = C_algo.MD5; + + /** + * This key derivation function is meant to conform with EVP_BytesToKey. + * www.openssl.org/docs/crypto/EVP_BytesToKey.html + */ + var EvpKDF = C_algo.EvpKDF = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hash algorithm to use. Default: MD5 + * @property {number} iterations The number of iterations to perform. Default: 1 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: MD5, + iterations: 1 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.EvpKDF.create(); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + // Shortcut + var cfg = this.cfg; + + // Init hasher + var hasher = cfg.hasher.create(); + + // Initial values + var derivedKey = WordArray.create(); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + if (block) { + hasher.update(block); + } + var block = hasher.update(password).finalize(salt); + hasher.reset(); + + // Iterations + for (var i = 1; i < iterations; i++) { + block = hasher.finalize(block); + hasher.reset(); + } + + derivedKey.concat(block); + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.EvpKDF(password, salt); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.EvpKDF = function (password, salt, cfg) { + return EvpKDF.create(cfg).compute(password, salt); + }; +}()); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + + /** + * SHA-224 hash algorithm. + */ + var SHA224 = C_algo.SHA224 = SHA256.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, + 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 + ]); + }, + + _doFinalize: function () { + var hash = SHA256._doFinalize.call(this); + + hash.sigBytes -= 4; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA224('message'); + * var hash = CryptoJS.SHA224(wordArray); + */ + C.SHA224 = SHA256._createHelper(SHA224); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA224(message, key); + */ + C.HmacSHA224 = SHA256._createHmacHelper(SHA224); +}()); + + +(function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var X32WordArray = C_lib.WordArray; + + /** + * x64 namespace. + */ + var C_x64 = C.x64 = {}; + + /** + * A 64-bit word. + */ + var X64Word = C_x64.Word = Base.extend({ + /** + * Initializes a newly created 64-bit word. + * + * @param {number} high The high 32 bits. + * @param {number} low The low 32 bits. + * + * @example + * + * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); + */ + init: function (high, low) { + this.high = high; + this.low = low; + } + + /** + * Bitwise NOTs this word. + * + * @return {X64Word} A new x64-Word object after negating. + * + * @example + * + * var negated = x64Word.not(); + */ + // not: function () { + // var high = ~this.high; + // var low = ~this.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ANDs this word with the passed word. + * + * @param {X64Word} word The x64-Word to AND with this word. + * + * @return {X64Word} A new x64-Word object after ANDing. + * + * @example + * + * var anded = x64Word.and(anotherX64Word); + */ + // and: function (word) { + // var high = this.high & word.high; + // var low = this.low & word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to OR with this word. + * + * @return {X64Word} A new x64-Word object after ORing. + * + * @example + * + * var ored = x64Word.or(anotherX64Word); + */ + // or: function (word) { + // var high = this.high | word.high; + // var low = this.low | word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise XORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to XOR with this word. + * + * @return {X64Word} A new x64-Word object after XORing. + * + * @example + * + * var xored = x64Word.xor(anotherX64Word); + */ + // xor: function (word) { + // var high = this.high ^ word.high; + // var low = this.low ^ word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the left. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftL(25); + */ + // shiftL: function (n) { + // if (n < 32) { + // var high = (this.high << n) | (this.low >>> (32 - n)); + // var low = this.low << n; + // } else { + // var high = this.low << (n - 32); + // var low = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the right. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftR(7); + */ + // shiftR: function (n) { + // if (n < 32) { + // var low = (this.low >>> n) | (this.high << (32 - n)); + // var high = this.high >>> n; + // } else { + // var low = this.high >>> (n - 32); + // var high = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Rotates this word n bits to the left. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotL(25); + */ + // rotL: function (n) { + // return this.shiftL(n).or(this.shiftR(64 - n)); + // }, + + /** + * Rotates this word n bits to the right. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotR(7); + */ + // rotR: function (n) { + // return this.shiftR(n).or(this.shiftL(64 - n)); + // }, + + /** + * Adds this word with the passed word. + * + * @param {X64Word} word The x64-Word to add with this word. + * + * @return {X64Word} A new x64-Word object after adding. + * + * @example + * + * var added = x64Word.add(anotherX64Word); + */ + // add: function (word) { + // var low = (this.low + word.low) | 0; + // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; + // var high = (this.high + word.high + carry) | 0; + + // return X64Word.create(high, low); + // } + }); + + /** + * An array of 64-bit words. + * + * @property {Array} words The array of CryptoJS.x64.Word objects. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var X64WordArray = C_x64.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.x64.WordArray.create(); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ]); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ], 10); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 8; + } + }, + + /** + * Converts this 64-bit word array to a 32-bit word array. + * + * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. + * + * @example + * + * var x32WordArray = x64WordArray.toX32(); + */ + toX32: function () { + // Shortcuts + var x64Words = this.words; + var x64WordsLength = x64Words.length; + + // Convert + var x32Words = []; + for (var i = 0; i < x64WordsLength; i++) { + var x64Word = x64Words[i]; + x32Words.push(x64Word.high); + x32Words.push(x64Word.low); + } + + return X32WordArray.create(x32Words, this.sigBytes); + }, + + /** + * Creates a copy of this word array. + * + * @return {X64WordArray} The clone. + * + * @example + * + * var clone = x64WordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + + // Clone "words" array + var words = clone.words = this.words.slice(0); + + // Clone each X64Word object + var wordsLength = words.length; + for (var i = 0; i < wordsLength; i++) { + words[i] = words[i].clone(); + } + + return clone; + } + }); +}()); + + +(function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var C_algo = C.algo; + + // Constants tables + var RHO_OFFSETS = []; + var PI_INDEXES = []; + var ROUND_CONSTANTS = []; + + // Compute Constants + (function () { + // Compute rho offset constants + var x = 1, y = 0; + for (var t = 0; t < 24; t++) { + RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; + + var newX = y % 5; + var newY = (2 * x + 3 * y) % 5; + x = newX; + y = newY; + } + + // Compute pi index constants + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; + } + } + + // Compute round constants + var LFSR = 0x01; + for (var i = 0; i < 24; i++) { + var roundConstantMsw = 0; + var roundConstantLsw = 0; + + for (var j = 0; j < 7; j++) { + if (LFSR & 0x01) { + var bitPosition = (1 << j) - 1; + if (bitPosition < 32) { + roundConstantLsw ^= 1 << bitPosition; + } else /* if (bitPosition >= 32) */ { + roundConstantMsw ^= 1 << (bitPosition - 32); + } + } + + // Compute next LFSR + if (LFSR & 0x80) { + // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 + LFSR = (LFSR << 1) ^ 0x71; + } else { + LFSR <<= 1; + } + } + + ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); + } + }()); + + // Reusable objects for temporary values + var T = []; + (function () { + for (var i = 0; i < 25; i++) { + T[i] = X64Word.create(); + } + }()); + + /** + * SHA-3 hash algorithm. + */ + var SHA3 = C_algo.SHA3 = Hasher.extend({ + /** + * Configuration options. + * + * @property {number} outputLength + * The desired number of bits in the output hash. + * Only values permitted are: 224, 256, 384, 512. + * Default: 512 + */ + cfg: Hasher.cfg.extend({ + outputLength: 512 + }), + + _doReset: function () { + var state = this._state = [] + for (var i = 0; i < 25; i++) { + state[i] = new X64Word.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var state = this._state; + var nBlockSizeLanes = this.blockSize / 2; + + // Absorb + for (var i = 0; i < nBlockSizeLanes; i++) { + // Shortcuts + var M2i = M[offset + 2 * i]; + var M2i1 = M[offset + 2 * i + 1]; + + // Swap endian + M2i = ( + (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | + (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) + ); + M2i1 = ( + (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | + (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) + ); + + // Absorb message into state + var lane = state[i]; + lane.high ^= M2i1; + lane.low ^= M2i; + } + + // Rounds + for (var round = 0; round < 24; round++) { + // Theta + for (var x = 0; x < 5; x++) { + // Mix column lanes + var tMsw = 0, tLsw = 0; + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + tMsw ^= lane.high; + tLsw ^= lane.low; + } + + // Temporary values + var Tx = T[x]; + Tx.high = tMsw; + Tx.low = tLsw; + } + for (var x = 0; x < 5; x++) { + // Shortcuts + var Tx4 = T[(x + 4) % 5]; + var Tx1 = T[(x + 1) % 5]; + var Tx1Msw = Tx1.high; + var Tx1Lsw = Tx1.low; + + // Mix surrounding columns + var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); + var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + lane.high ^= tMsw; + lane.low ^= tLsw; + } + } + + // Rho Pi + for (var laneIndex = 1; laneIndex < 25; laneIndex++) { + // Shortcuts + var lane = state[laneIndex]; + var laneMsw = lane.high; + var laneLsw = lane.low; + var rhoOffset = RHO_OFFSETS[laneIndex]; + + // Rotate lanes + if (rhoOffset < 32) { + var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); + var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); + } else /* if (rhoOffset >= 32) */ { + var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); + var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); + } + + // Transpose lanes + var TPiLane = T[PI_INDEXES[laneIndex]]; + TPiLane.high = tMsw; + TPiLane.low = tLsw; + } + + // Rho pi at x = y = 0 + var T0 = T[0]; + var state0 = state[0]; + T0.high = state0.high; + T0.low = state0.low; + + // Chi + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + // Shortcuts + var laneIndex = x + 5 * y; + var lane = state[laneIndex]; + var TLane = T[laneIndex]; + var Tx1Lane = T[((x + 1) % 5) + 5 * y]; + var Tx2Lane = T[((x + 2) % 5) + 5 * y]; + + // Mix rows + lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); + lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); + } + } + + // Iota + var lane = state[0]; + var roundConstant = ROUND_CONSTANTS[round]; + lane.high ^= roundConstant.high; + lane.low ^= roundConstant.low;; + } + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + var blockSizeBits = this.blockSize * 32; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); + dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var state = this._state; + var outputLengthBytes = this.cfg.outputLength / 8; + var outputLengthLanes = outputLengthBytes / 8; + + // Squeeze + var hashWords = []; + for (var i = 0; i < outputLengthLanes; i++) { + // Shortcuts + var lane = state[i]; + var laneMsw = lane.high; + var laneLsw = lane.low; + + // Swap endian + laneMsw = ( + (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | + (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) + ); + laneLsw = ( + (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | + (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) + ); + + // Squeeze state to retrieve hash + hashWords.push(laneLsw); + hashWords.push(laneMsw); + } + + // Return final computed hash + return new WordArray.init(hashWords, outputLengthBytes); + }, + + clone: function () { + var clone = Hasher.clone.call(this); + + var state = clone._state = this._state.slice(0); + for (var i = 0; i < 25; i++) { + state[i] = state[i].clone(); + } + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA3('message'); + * var hash = CryptoJS.SHA3(wordArray); + */ + C.SHA3 = Hasher._createHelper(SHA3); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA3(message, key); + */ + C.HmacSHA3 = Hasher._createHmacHelper(SHA3); +}(Math)); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + + function X64Word_create() { + return X64Word.create.apply(X64Word, arguments); + } + + // Constants + var K = [ + X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), + X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), + X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), + X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), + X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), + X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), + X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), + X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), + X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), + X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), + X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), + X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), + X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), + X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), + X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), + X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), + X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), + X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), + X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), + X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), + X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), + X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), + X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), + X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), + X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), + X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), + X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), + X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), + X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), + X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), + X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), + X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), + X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), + X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), + X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), + X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), + X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), + X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), + X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), + X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) + ]; + + // Reusable objects + var W = []; + (function () { + for (var i = 0; i < 80; i++) { + W[i] = X64Word_create(); + } + }()); + + /** + * SHA-512 hash algorithm. + */ + var SHA512 = C_algo.SHA512 = Hasher.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), + new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), + new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), + new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var H = this._hash.words; + + var H0 = H[0]; + var H1 = H[1]; + var H2 = H[2]; + var H3 = H[3]; + var H4 = H[4]; + var H5 = H[5]; + var H6 = H[6]; + var H7 = H[7]; + + var H0h = H0.high; + var H0l = H0.low; + var H1h = H1.high; + var H1l = H1.low; + var H2h = H2.high; + var H2l = H2.low; + var H3h = H3.high; + var H3l = H3.low; + var H4h = H4.high; + var H4l = H4.low; + var H5h = H5.high; + var H5l = H5.low; + var H6h = H6.high; + var H6l = H6.low; + var H7h = H7.high; + var H7l = H7.low; + + // Working variables + var ah = H0h; + var al = H0l; + var bh = H1h; + var bl = H1l; + var ch = H2h; + var cl = H2l; + var dh = H3h; + var dl = H3l; + var eh = H4h; + var el = H4l; + var fh = H5h; + var fl = H5l; + var gh = H6h; + var gl = H6l; + var hh = H7h; + var hl = H7l; + + // Rounds + for (var i = 0; i < 80; i++) { + // Shortcut + var Wi = W[i]; + + // Extend message + if (i < 16) { + var Wih = Wi.high = M[offset + i * 2] | 0; + var Wil = Wi.low = M[offset + i * 2 + 1] | 0; + } else { + // Gamma0 + var gamma0x = W[i - 15]; + var gamma0xh = gamma0x.high; + var gamma0xl = gamma0x.low; + var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); + var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); + + // Gamma1 + var gamma1x = W[i - 2]; + var gamma1xh = gamma1x.high; + var gamma1xl = gamma1x.low; + var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); + var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); + + // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] + var Wi7 = W[i - 7]; + var Wi7h = Wi7.high; + var Wi7l = Wi7.low; + + var Wi16 = W[i - 16]; + var Wi16h = Wi16.high; + var Wi16l = Wi16.low; + + var Wil = gamma0l + Wi7l; + var Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); + var Wil = Wil + gamma1l; + var Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); + var Wil = Wil + Wi16l; + var Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); + + Wi.high = Wih; + Wi.low = Wil; + } + + var chh = (eh & fh) ^ (~eh & gh); + var chl = (el & fl) ^ (~el & gl); + var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); + var majl = (al & bl) ^ (al & cl) ^ (bl & cl); + + var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); + var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); + var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); + var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); + + // t1 = h + sigma1 + ch + K[i] + W[i] + var Ki = K[i]; + var Kih = Ki.high; + var Kil = Ki.low; + + var t1l = hl + sigma1l; + var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); + var t1l = t1l + chl; + var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); + var t1l = t1l + Kil; + var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); + var t1l = t1l + Wil; + var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); + + // t2 = sigma0 + maj + var t2l = sigma0l + majl; + var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); + + // Update working variables + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = (dl + t1l) | 0; + eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = (t1l + t2l) | 0; + ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; + } + + // Intermediate hash value + H0l = H0.low = (H0l + al); + H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); + H1l = H1.low = (H1l + bl); + H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); + H2l = H2.low = (H2l + cl); + H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); + H3l = H3.low = (H3l + dl); + H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); + H4l = H4.low = (H4l + el); + H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); + H5l = H5.low = (H5l + fl); + H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); + H6l = H6.low = (H6l + gl); + H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); + H7l = H7.low = (H7l + hl); + H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Convert hash to 32-bit word array before returning + var hash = this._hash.toX32(); + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + }, + + blockSize: 1024/32 + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA512('message'); + * var hash = CryptoJS.SHA512(wordArray); + */ + C.SHA512 = Hasher._createHelper(SHA512); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA512(message, key); + */ + C.HmacSHA512 = Hasher._createHmacHelper(SHA512); +}()); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + var SHA512 = C_algo.SHA512; + + /** + * SHA-384 hash algorithm. + */ + var SHA384 = C_algo.SHA384 = SHA512.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), + new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), + new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), + new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) + ]); + }, + + _doFinalize: function () { + var hash = SHA512._doFinalize.call(this); + + hash.sigBytes -= 16; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA384('message'); + * var hash = CryptoJS.SHA384(wordArray); + */ + C.SHA384 = SHA512._createHelper(SHA384); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA384(message, key); + */ + C.HmacSHA384 = SHA512._createHmacHelper(SHA384); +}()); + + +/** + * Cipher core components. + */ +CryptoJS.lib.Cipher || (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + + /** + * Abstract base cipher template. + * + * @property {number} keySize This cipher's key size. Default: 4 (128 bits) + * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) + * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. + * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. + */ + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + * + * @property {WordArray} iv The IV to use for this operation. + */ + cfg: Base.extend(), + + /** + * Creates this cipher in encryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); + */ + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, + + /** + * Creates this cipher in decryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); + */ + createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, + + /** + * Initializes a newly created cipher. + * + * @param {number} xformMode Either the encryption or decryption transormation mode constant. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @example + * + * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); + */ + init: function (xformMode, key, cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Store transform mode and key + this._xformMode = xformMode; + this._key = key; + + // Set initial values + this.reset(); + }, + + /** + * Resets this cipher to its initial state. + * + * @example + * + * cipher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-cipher logic + this._doReset(); + }, + + /** + * Adds data to be encrypted or decrypted. + * + * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. + * + * @return {WordArray} The data after processing. + * + * @example + * + * var encrypted = cipher.process('data'); + * var encrypted = cipher.process(wordArray); + */ + process: function (dataUpdate) { + // Append + this._append(dataUpdate); + + // Process available blocks + return this._process(); + }, + + /** + * Finalizes the encryption or decryption process. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. + * + * @return {WordArray} The data after final processing. + * + * @example + * + * var encrypted = cipher.finalize(); + * var encrypted = cipher.finalize('data'); + * var encrypted = cipher.finalize(wordArray); + */ + finalize: function (dataUpdate) { + // Final data update + if (dataUpdate) { + this._append(dataUpdate); + } + + // Perform concrete-cipher logic + var finalProcessedData = this._doFinalize(); + + return finalProcessedData; + }, + + keySize: 128/32, + + ivSize: 128/32, + + _ENC_XFORM_MODE: 1, + + _DEC_XFORM_MODE: 2, + + /** + * Creates shortcut functions to a cipher's object interface. + * + * @param {Cipher} cipher The cipher to create a helper for. + * + * @return {Object} An object with encrypt and decrypt shortcut functions. + * + * @static + * + * @example + * + * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); + */ + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, + + decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + + /** + * Abstract base stream cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) + */ + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + // Process partial blocks + var finalProcessedBlocks = this._process(!!'flush'); + + return finalProcessedBlocks; + }, + + blockSize: 1 + }); + + /** + * Mode namespace. + */ + var C_mode = C.mode = {}; + + /** + * Abstract base block cipher mode template. + */ + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + /** + * Creates this mode for encryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); + */ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, + + /** + * Creates this mode for decryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); + */ + createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, + + /** + * Initializes a newly created mode. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @example + * + * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); + */ + init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + + /** + * Cipher Block Chaining mode. + */ + var CBC = C_mode.CBC = (function () { + /** + * Abstract base CBC mode. + */ + var CBC = BlockCipherMode.extend(); + + /** + * CBC encryptor. + */ + CBC.Encryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // XOR and encrypt + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + /** + * CBC decryptor. + */ + CBC.Decryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + // Decrypt and XOR + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + // Shortcut + var iv = this._iv; + + // Choose mixing block + if (iv) { + var block = iv; + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + var block = this._prevBlock; + } + + // XOR blocks + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + + return CBC; + }()); + + /** + * Padding namespace. + */ + var C_pad = C.pad = {}; + + /** + * PKCS #5/7 padding strategy. + */ + var Pkcs7 = C_pad.Pkcs7 = { + /** + * Pads data using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to pad. + * @param {number} blockSize The multiple that the data should be padded to. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.pad(wordArray, 4); + */ + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Create padding word + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + + // Create padding + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + + // Add padding + data.concat(padding); + }, + + /** + * Unpads data that had been padded using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to unpad. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.unpad(wordArray); + */ + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + /** + * Abstract base block cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) + */ + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + /** + * Configuration options. + * + * @property {Mode} mode The block mode to use. Default: CBC + * @property {Padding} padding The padding strategy to use. Default: Pkcs7 + */ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + + reset: function () { + // Reset cipher + Cipher.reset.call(this); + + // Shortcuts + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + + // Reset block mode + if (this._xformMode == this._ENC_XFORM_MODE) { + var modeCreator = mode.createEncryptor; + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + var modeCreator = mode.createDecryptor; + // Keep at least one block in the buffer for unpadding + this._minBufferSize = 1; + } + + if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, + + _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, + + _doFinalize: function () { + // Shortcut + var padding = this.cfg.padding; + + // Finalize + if (this._xformMode == this._ENC_XFORM_MODE) { + // Pad data + padding.pad(this._data, this.blockSize); + + // Process final blocks + var finalProcessedBlocks = this._process(!!'flush'); + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + // Process final blocks + var finalProcessedBlocks = this._process(!!'flush'); + + // Unpad data + padding.unpad(finalProcessedBlocks); + } + + return finalProcessedBlocks; + }, + + blockSize: 128/32 + }); + + /** + * A collection of cipher parameters. + * + * @property {WordArray} ciphertext The raw ciphertext. + * @property {WordArray} key The key to this ciphertext. + * @property {WordArray} iv The IV used in the ciphering operation. + * @property {WordArray} salt The salt used with a key derivation function. + * @property {Cipher} algorithm The cipher algorithm. + * @property {Mode} mode The block mode used in the ciphering operation. + * @property {Padding} padding The padding scheme used in the ciphering operation. + * @property {number} blockSize The block size of the cipher. + * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. + */ + var CipherParams = C_lib.CipherParams = Base.extend({ + /** + * Initializes a newly created cipher params object. + * + * @param {Object} cipherParams An object with any of the possible cipher parameters. + * + * @example + * + * var cipherParams = CryptoJS.lib.CipherParams.create({ + * ciphertext: ciphertextWordArray, + * key: keyWordArray, + * iv: ivWordArray, + * salt: saltWordArray, + * algorithm: CryptoJS.algo.AES, + * mode: CryptoJS.mode.CBC, + * padding: CryptoJS.pad.PKCS7, + * blockSize: 4, + * formatter: CryptoJS.format.OpenSSL + * }); + */ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, + + /** + * Converts this cipher params object to a string. + * + * @param {Format} formatter (Optional) The formatting strategy to use. + * + * @return {string} The stringified cipher params. + * + * @throws Error If neither the formatter nor the default formatter is set. + * + * @example + * + * var string = cipherParams + ''; + * var string = cipherParams.toString(); + * var string = cipherParams.toString(CryptoJS.format.OpenSSL); + */ + toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + + /** + * Format namespace. + */ + var C_format = C.format = {}; + + /** + * OpenSSL formatting strategy. + */ + var OpenSSLFormatter = C_format.OpenSSL = { + /** + * Converts a cipher params object to an OpenSSL-compatible string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The OpenSSL-compatible string. + * + * @static + * + * @example + * + * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); + */ + stringify: function (cipherParams) { + // Shortcuts + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + + // Format + if (salt) { + var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + var wordArray = ciphertext; + } + + return wordArray.toString(Base64); + }, + + /** + * Converts an OpenSSL-compatible string to a cipher params object. + * + * @param {string} openSSLStr The OpenSSL-compatible string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); + */ + parse: function (openSSLStr) { + // Parse base64 + var ciphertext = Base64.parse(openSSLStr); + + // Shortcut + var ciphertextWords = ciphertext.words; + + // Test for salt + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + // Extract salt + var salt = WordArray.create(ciphertextWords.slice(2, 4)); + + // Remove salt from ciphertext + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + + return CipherParams.create({ ciphertext: ciphertext, salt: salt }); + } + }; + + /** + * A cipher wrapper that returns ciphertext as a serializable cipher params object. + */ + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + /** + * Configuration options. + * + * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL + */ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + + /** + * Encrypts a message. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Encrypt + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + + // Shortcut + var cipherCfg = encryptor.cfg; + + // Create and return serializable cipher params + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, + + /** + * Decrypts serialized ciphertext. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Decrypt + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + + return plaintext; + }, + + /** + * Converts serialized ciphertext to CipherParams, + * else assumed CipherParams already and returns ciphertext unchanged. + * + * @param {CipherParams|string} ciphertext The ciphertext. + * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. + * + * @return {CipherParams} The unserialized ciphertext. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); + */ + _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + + /** + * Key derivation function namespace. + */ + var C_kdf = C.kdf = {}; + + /** + * OpenSSL key derivation function. + */ + var OpenSSLKdf = C_kdf.OpenSSL = { + /** + * Derives a key and IV from a password. + * + * @param {string} password The password to derive from. + * @param {number} keySize The size in words of the key to generate. + * @param {number} ivSize The size in words of the IV to generate. + * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. + * + * @return {CipherParams} A cipher params object with the key, IV, and salt. + * + * @static + * + * @example + * + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); + */ + execute: function (password, keySize, ivSize, salt) { + // Generate random salt + if (!salt) { + salt = WordArray.random(64/8); + } + + // Derive key and IV + var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); + + // Separate key and IV + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + + // Return params + return CipherParams.create({ key: key, iv: iv, salt: salt }); + } + }; + + /** + * A serializable cipher wrapper that derives the key from a password, + * and returns ciphertext as a serializable cipher params object. + */ + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + /** + * Configuration options. + * + * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL + */ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + + /** + * Encrypts a message using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Encrypt + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + + // Mix in derived params + ciphertext.mixIn(derivedParams); + + return ciphertext; + }, + + /** + * Decrypts serialized ciphertext using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Decrypt + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + + return plaintext; + } + }); +}()); + + +/** + * Cipher Feedback block mode. + */ +CryptoJS.mode.CFB = (function () { + var CFB = CryptoJS.lib.BlockCipherMode.extend(); + + CFB.Encryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + CFB.Decryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { + // Shortcut + var iv = this._iv; + + // Generate keystream + if (iv) { + var keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + var keystream = this._prevBlock; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + + return CFB; +}()); + + +/** + * Electronic Codebook block mode. + */ +CryptoJS.mode.ECB = (function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + + ECB.Encryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + + ECB.Decryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + + return ECB; +}()); + + +/** + * ANSI X.923 padding strategy. + */ +CryptoJS.pad.AnsiX923 = { + pad: function (data, blockSize) { + // Shortcuts + var dataSigBytes = data.sigBytes; + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; + + // Compute last byte position + var lastBytePos = dataSigBytes + nPaddingBytes - 1; + + // Pad + data.clamp(); + data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); + data.sigBytes += nPaddingBytes; + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } +}; + + +/** + * ISO 10126 padding strategy. + */ +CryptoJS.pad.Iso10126 = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Pad + data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). + concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } +}; + + +/** + * ISO/IEC 9797-1 Padding Method 2. + */ +CryptoJS.pad.Iso97971 = { + pad: function (data, blockSize) { + // Add 0x80 byte + data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); + + // Zero pad the rest + CryptoJS.pad.ZeroPadding.pad(data, blockSize); + }, + + unpad: function (data) { + // Remove zero padding + CryptoJS.pad.ZeroPadding.unpad(data); + + // Remove one more byte -- the 0x80 byte + data.sigBytes--; + } +}; + + +/** + * Output Feedback block mode. + */ +CryptoJS.mode.OFB = (function () { + var OFB = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = OFB.Encryptor = OFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var keystream = this._keystream; + + // Generate keystream + if (iv) { + keystream = this._keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + OFB.Decryptor = Encryptor; + + return OFB; +}()); + + +/** + * A noop padding strategy. + */ +CryptoJS.pad.NoPadding = { + pad: function () { + }, + + unpad: function () { + } +}; + + +(function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var CipherParams = C_lib.CipherParams; + var C_enc = C.enc; + var Hex = C_enc.Hex; + var C_format = C.format; + + var HexFormatter = C_format.Hex = { + /** + * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The hexadecimally encoded string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.format.Hex.stringify(cipherParams); + */ + stringify: function (cipherParams) { + return cipherParams.ciphertext.toString(Hex); + }, + + /** + * Converts a hexadecimally encoded ciphertext string to a cipher params object. + * + * @param {string} input The hexadecimally encoded string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.Hex.parse(hexString); + */ + parse: function (input) { + var ciphertext = Hex.parse(input); + return CipherParams.create({ ciphertext: ciphertext }); + } + }; +}()); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Lookup tables + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + + // Compute lookup tables + (function () { + // Compute double table + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + + // Walk GF(2^8) + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + + // Compute multiplication + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t >>> 8); + SUB_MIX_1[x] = (t << 16) | (t >>> 16); + SUB_MIX_2[x] = (t << 8) | (t >>> 24); + SUB_MIX_3[x] = t; + + // Compute inv sub bytes, inv mix columns tables + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); + INV_SUB_MIX_3[sx] = t; + + // Compute next counter + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + + // Precomputed Rcon lookup + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + + /** + * AES block cipher algorithm. + */ + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + // Skip reset of nRounds has been set before and key did not change + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + // Compute number of rounds + var nRounds = this._nRounds = keySize + 6; + + // Compute number of key schedule rows + var ksRows = (nRounds + 1) * 4; + + // Compute key schedule + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + var t = keySchedule[ksRow - 1]; + + if (!(ksRow % keySize)) { + // Rot word + t = (t << 8) | (t >>> 24); + + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + + // Mix Rcon + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize > 6 && ksRow % keySize == 4) { + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + + // Compute inv key schedule + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } + + if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ + INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, + + decryptBlock: function (M, offset) { + // Swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + + // Inv swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, + + _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + // Shortcut + var nRounds = this._nRounds; + + // Get input, add round key + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + + // Key schedule row counter + var ksRow = 4; + + // Rounds + for (var round = 1; round < nRounds; round++) { + // Shift rows, sub bytes, mix columns, add round key + var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + + // Update state + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + // Shift rows, sub bytes, add round key + var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + + // Set output + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, + + keySize: 256/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); + */ + C.AES = BlockCipher._createHelper(AES); +}()); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Permuted Choice 1 constants + var PC1 = [ + 57, 49, 41, 33, 25, 17, 9, 1, + 58, 50, 42, 34, 26, 18, 10, 2, + 59, 51, 43, 35, 27, 19, 11, 3, + 60, 52, 44, 36, 63, 55, 47, 39, + 31, 23, 15, 7, 62, 54, 46, 38, + 30, 22, 14, 6, 61, 53, 45, 37, + 29, 21, 13, 5, 28, 20, 12, 4 + ]; + + // Permuted Choice 2 constants + var PC2 = [ + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 + ]; + + // Cumulative bit shift constants + var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; + + // SBOXes and round permutation constants + var SBOX_P = [ + { + 0x0: 0x808200, + 0x10000000: 0x8000, + 0x20000000: 0x808002, + 0x30000000: 0x2, + 0x40000000: 0x200, + 0x50000000: 0x808202, + 0x60000000: 0x800202, + 0x70000000: 0x800000, + 0x80000000: 0x202, + 0x90000000: 0x800200, + 0xa0000000: 0x8200, + 0xb0000000: 0x808000, + 0xc0000000: 0x8002, + 0xd0000000: 0x800002, + 0xe0000000: 0x0, + 0xf0000000: 0x8202, + 0x8000000: 0x0, + 0x18000000: 0x808202, + 0x28000000: 0x8202, + 0x38000000: 0x8000, + 0x48000000: 0x808200, + 0x58000000: 0x200, + 0x68000000: 0x808002, + 0x78000000: 0x2, + 0x88000000: 0x800200, + 0x98000000: 0x8200, + 0xa8000000: 0x808000, + 0xb8000000: 0x800202, + 0xc8000000: 0x800002, + 0xd8000000: 0x8002, + 0xe8000000: 0x202, + 0xf8000000: 0x800000, + 0x1: 0x8000, + 0x10000001: 0x2, + 0x20000001: 0x808200, + 0x30000001: 0x800000, + 0x40000001: 0x808002, + 0x50000001: 0x8200, + 0x60000001: 0x200, + 0x70000001: 0x800202, + 0x80000001: 0x808202, + 0x90000001: 0x808000, + 0xa0000001: 0x800002, + 0xb0000001: 0x8202, + 0xc0000001: 0x202, + 0xd0000001: 0x800200, + 0xe0000001: 0x8002, + 0xf0000001: 0x0, + 0x8000001: 0x808202, + 0x18000001: 0x808000, + 0x28000001: 0x800000, + 0x38000001: 0x200, + 0x48000001: 0x8000, + 0x58000001: 0x800002, + 0x68000001: 0x2, + 0x78000001: 0x8202, + 0x88000001: 0x8002, + 0x98000001: 0x800202, + 0xa8000001: 0x202, + 0xb8000001: 0x808200, + 0xc8000001: 0x800200, + 0xd8000001: 0x0, + 0xe8000001: 0x8200, + 0xf8000001: 0x808002 + }, + { + 0x0: 0x40084010, + 0x1000000: 0x4000, + 0x2000000: 0x80000, + 0x3000000: 0x40080010, + 0x4000000: 0x40000010, + 0x5000000: 0x40084000, + 0x6000000: 0x40004000, + 0x7000000: 0x10, + 0x8000000: 0x84000, + 0x9000000: 0x40004010, + 0xa000000: 0x40000000, + 0xb000000: 0x84010, + 0xc000000: 0x80010, + 0xd000000: 0x0, + 0xe000000: 0x4010, + 0xf000000: 0x40080000, + 0x800000: 0x40004000, + 0x1800000: 0x84010, + 0x2800000: 0x10, + 0x3800000: 0x40004010, + 0x4800000: 0x40084010, + 0x5800000: 0x40000000, + 0x6800000: 0x80000, + 0x7800000: 0x40080010, + 0x8800000: 0x80010, + 0x9800000: 0x0, + 0xa800000: 0x4000, + 0xb800000: 0x40080000, + 0xc800000: 0x40000010, + 0xd800000: 0x84000, + 0xe800000: 0x40084000, + 0xf800000: 0x4010, + 0x10000000: 0x0, + 0x11000000: 0x40080010, + 0x12000000: 0x40004010, + 0x13000000: 0x40084000, + 0x14000000: 0x40080000, + 0x15000000: 0x10, + 0x16000000: 0x84010, + 0x17000000: 0x4000, + 0x18000000: 0x4010, + 0x19000000: 0x80000, + 0x1a000000: 0x80010, + 0x1b000000: 0x40000010, + 0x1c000000: 0x84000, + 0x1d000000: 0x40004000, + 0x1e000000: 0x40000000, + 0x1f000000: 0x40084010, + 0x10800000: 0x84010, + 0x11800000: 0x80000, + 0x12800000: 0x40080000, + 0x13800000: 0x4000, + 0x14800000: 0x40004000, + 0x15800000: 0x40084010, + 0x16800000: 0x10, + 0x17800000: 0x40000000, + 0x18800000: 0x40084000, + 0x19800000: 0x40000010, + 0x1a800000: 0x40004010, + 0x1b800000: 0x80010, + 0x1c800000: 0x0, + 0x1d800000: 0x4010, + 0x1e800000: 0x40080010, + 0x1f800000: 0x84000 + }, + { + 0x0: 0x104, + 0x100000: 0x0, + 0x200000: 0x4000100, + 0x300000: 0x10104, + 0x400000: 0x10004, + 0x500000: 0x4000004, + 0x600000: 0x4010104, + 0x700000: 0x4010000, + 0x800000: 0x4000000, + 0x900000: 0x4010100, + 0xa00000: 0x10100, + 0xb00000: 0x4010004, + 0xc00000: 0x4000104, + 0xd00000: 0x10000, + 0xe00000: 0x4, + 0xf00000: 0x100, + 0x80000: 0x4010100, + 0x180000: 0x4010004, + 0x280000: 0x0, + 0x380000: 0x4000100, + 0x480000: 0x4000004, + 0x580000: 0x10000, + 0x680000: 0x10004, + 0x780000: 0x104, + 0x880000: 0x4, + 0x980000: 0x100, + 0xa80000: 0x4010000, + 0xb80000: 0x10104, + 0xc80000: 0x10100, + 0xd80000: 0x4000104, + 0xe80000: 0x4010104, + 0xf80000: 0x4000000, + 0x1000000: 0x4010100, + 0x1100000: 0x10004, + 0x1200000: 0x10000, + 0x1300000: 0x4000100, + 0x1400000: 0x100, + 0x1500000: 0x4010104, + 0x1600000: 0x4000004, + 0x1700000: 0x0, + 0x1800000: 0x4000104, + 0x1900000: 0x4000000, + 0x1a00000: 0x4, + 0x1b00000: 0x10100, + 0x1c00000: 0x4010000, + 0x1d00000: 0x104, + 0x1e00000: 0x10104, + 0x1f00000: 0x4010004, + 0x1080000: 0x4000000, + 0x1180000: 0x104, + 0x1280000: 0x4010100, + 0x1380000: 0x0, + 0x1480000: 0x10004, + 0x1580000: 0x4000100, + 0x1680000: 0x100, + 0x1780000: 0x4010004, + 0x1880000: 0x10000, + 0x1980000: 0x4010104, + 0x1a80000: 0x10104, + 0x1b80000: 0x4000004, + 0x1c80000: 0x4000104, + 0x1d80000: 0x4010000, + 0x1e80000: 0x4, + 0x1f80000: 0x10100 + }, + { + 0x0: 0x80401000, + 0x10000: 0x80001040, + 0x20000: 0x401040, + 0x30000: 0x80400000, + 0x40000: 0x0, + 0x50000: 0x401000, + 0x60000: 0x80000040, + 0x70000: 0x400040, + 0x80000: 0x80000000, + 0x90000: 0x400000, + 0xa0000: 0x40, + 0xb0000: 0x80001000, + 0xc0000: 0x80400040, + 0xd0000: 0x1040, + 0xe0000: 0x1000, + 0xf0000: 0x80401040, + 0x8000: 0x80001040, + 0x18000: 0x40, + 0x28000: 0x80400040, + 0x38000: 0x80001000, + 0x48000: 0x401000, + 0x58000: 0x80401040, + 0x68000: 0x0, + 0x78000: 0x80400000, + 0x88000: 0x1000, + 0x98000: 0x80401000, + 0xa8000: 0x400000, + 0xb8000: 0x1040, + 0xc8000: 0x80000000, + 0xd8000: 0x400040, + 0xe8000: 0x401040, + 0xf8000: 0x80000040, + 0x100000: 0x400040, + 0x110000: 0x401000, + 0x120000: 0x80000040, + 0x130000: 0x0, + 0x140000: 0x1040, + 0x150000: 0x80400040, + 0x160000: 0x80401000, + 0x170000: 0x80001040, + 0x180000: 0x80401040, + 0x190000: 0x80000000, + 0x1a0000: 0x80400000, + 0x1b0000: 0x401040, + 0x1c0000: 0x80001000, + 0x1d0000: 0x400000, + 0x1e0000: 0x40, + 0x1f0000: 0x1000, + 0x108000: 0x80400000, + 0x118000: 0x80401040, + 0x128000: 0x0, + 0x138000: 0x401000, + 0x148000: 0x400040, + 0x158000: 0x80000000, + 0x168000: 0x80001040, + 0x178000: 0x40, + 0x188000: 0x80000040, + 0x198000: 0x1000, + 0x1a8000: 0x80001000, + 0x1b8000: 0x80400040, + 0x1c8000: 0x1040, + 0x1d8000: 0x80401000, + 0x1e8000: 0x400000, + 0x1f8000: 0x401040 + }, + { + 0x0: 0x80, + 0x1000: 0x1040000, + 0x2000: 0x40000, + 0x3000: 0x20000000, + 0x4000: 0x20040080, + 0x5000: 0x1000080, + 0x6000: 0x21000080, + 0x7000: 0x40080, + 0x8000: 0x1000000, + 0x9000: 0x20040000, + 0xa000: 0x20000080, + 0xb000: 0x21040080, + 0xc000: 0x21040000, + 0xd000: 0x0, + 0xe000: 0x1040080, + 0xf000: 0x21000000, + 0x800: 0x1040080, + 0x1800: 0x21000080, + 0x2800: 0x80, + 0x3800: 0x1040000, + 0x4800: 0x40000, + 0x5800: 0x20040080, + 0x6800: 0x21040000, + 0x7800: 0x20000000, + 0x8800: 0x20040000, + 0x9800: 0x0, + 0xa800: 0x21040080, + 0xb800: 0x1000080, + 0xc800: 0x20000080, + 0xd800: 0x21000000, + 0xe800: 0x1000000, + 0xf800: 0x40080, + 0x10000: 0x40000, + 0x11000: 0x80, + 0x12000: 0x20000000, + 0x13000: 0x21000080, + 0x14000: 0x1000080, + 0x15000: 0x21040000, + 0x16000: 0x20040080, + 0x17000: 0x1000000, + 0x18000: 0x21040080, + 0x19000: 0x21000000, + 0x1a000: 0x1040000, + 0x1b000: 0x20040000, + 0x1c000: 0x40080, + 0x1d000: 0x20000080, + 0x1e000: 0x0, + 0x1f000: 0x1040080, + 0x10800: 0x21000080, + 0x11800: 0x1000000, + 0x12800: 0x1040000, + 0x13800: 0x20040080, + 0x14800: 0x20000000, + 0x15800: 0x1040080, + 0x16800: 0x80, + 0x17800: 0x21040000, + 0x18800: 0x40080, + 0x19800: 0x21040080, + 0x1a800: 0x0, + 0x1b800: 0x21000000, + 0x1c800: 0x1000080, + 0x1d800: 0x40000, + 0x1e800: 0x20040000, + 0x1f800: 0x20000080 + }, + { + 0x0: 0x10000008, + 0x100: 0x2000, + 0x200: 0x10200000, + 0x300: 0x10202008, + 0x400: 0x10002000, + 0x500: 0x200000, + 0x600: 0x200008, + 0x700: 0x10000000, + 0x800: 0x0, + 0x900: 0x10002008, + 0xa00: 0x202000, + 0xb00: 0x8, + 0xc00: 0x10200008, + 0xd00: 0x202008, + 0xe00: 0x2008, + 0xf00: 0x10202000, + 0x80: 0x10200000, + 0x180: 0x10202008, + 0x280: 0x8, + 0x380: 0x200000, + 0x480: 0x202008, + 0x580: 0x10000008, + 0x680: 0x10002000, + 0x780: 0x2008, + 0x880: 0x200008, + 0x980: 0x2000, + 0xa80: 0x10002008, + 0xb80: 0x10200008, + 0xc80: 0x0, + 0xd80: 0x10202000, + 0xe80: 0x202000, + 0xf80: 0x10000000, + 0x1000: 0x10002000, + 0x1100: 0x10200008, + 0x1200: 0x10202008, + 0x1300: 0x2008, + 0x1400: 0x200000, + 0x1500: 0x10000000, + 0x1600: 0x10000008, + 0x1700: 0x202000, + 0x1800: 0x202008, + 0x1900: 0x0, + 0x1a00: 0x8, + 0x1b00: 0x10200000, + 0x1c00: 0x2000, + 0x1d00: 0x10002008, + 0x1e00: 0x10202000, + 0x1f00: 0x200008, + 0x1080: 0x8, + 0x1180: 0x202000, + 0x1280: 0x200000, + 0x1380: 0x10000008, + 0x1480: 0x10002000, + 0x1580: 0x2008, + 0x1680: 0x10202008, + 0x1780: 0x10200000, + 0x1880: 0x10202000, + 0x1980: 0x10200008, + 0x1a80: 0x2000, + 0x1b80: 0x202008, + 0x1c80: 0x200008, + 0x1d80: 0x0, + 0x1e80: 0x10000000, + 0x1f80: 0x10002008 + }, + { + 0x0: 0x100000, + 0x10: 0x2000401, + 0x20: 0x400, + 0x30: 0x100401, + 0x40: 0x2100401, + 0x50: 0x0, + 0x60: 0x1, + 0x70: 0x2100001, + 0x80: 0x2000400, + 0x90: 0x100001, + 0xa0: 0x2000001, + 0xb0: 0x2100400, + 0xc0: 0x2100000, + 0xd0: 0x401, + 0xe0: 0x100400, + 0xf0: 0x2000000, + 0x8: 0x2100001, + 0x18: 0x0, + 0x28: 0x2000401, + 0x38: 0x2100400, + 0x48: 0x100000, + 0x58: 0x2000001, + 0x68: 0x2000000, + 0x78: 0x401, + 0x88: 0x100401, + 0x98: 0x2000400, + 0xa8: 0x2100000, + 0xb8: 0x100001, + 0xc8: 0x400, + 0xd8: 0x2100401, + 0xe8: 0x1, + 0xf8: 0x100400, + 0x100: 0x2000000, + 0x110: 0x100000, + 0x120: 0x2000401, + 0x130: 0x2100001, + 0x140: 0x100001, + 0x150: 0x2000400, + 0x160: 0x2100400, + 0x170: 0x100401, + 0x180: 0x401, + 0x190: 0x2100401, + 0x1a0: 0x100400, + 0x1b0: 0x1, + 0x1c0: 0x0, + 0x1d0: 0x2100000, + 0x1e0: 0x2000001, + 0x1f0: 0x400, + 0x108: 0x100400, + 0x118: 0x2000401, + 0x128: 0x2100001, + 0x138: 0x1, + 0x148: 0x2000000, + 0x158: 0x100000, + 0x168: 0x401, + 0x178: 0x2100400, + 0x188: 0x2000001, + 0x198: 0x2100000, + 0x1a8: 0x0, + 0x1b8: 0x2100401, + 0x1c8: 0x100401, + 0x1d8: 0x400, + 0x1e8: 0x2000400, + 0x1f8: 0x100001 + }, + { + 0x0: 0x8000820, + 0x1: 0x20000, + 0x2: 0x8000000, + 0x3: 0x20, + 0x4: 0x20020, + 0x5: 0x8020820, + 0x6: 0x8020800, + 0x7: 0x800, + 0x8: 0x8020000, + 0x9: 0x8000800, + 0xa: 0x20800, + 0xb: 0x8020020, + 0xc: 0x820, + 0xd: 0x0, + 0xe: 0x8000020, + 0xf: 0x20820, + 0x80000000: 0x800, + 0x80000001: 0x8020820, + 0x80000002: 0x8000820, + 0x80000003: 0x8000000, + 0x80000004: 0x8020000, + 0x80000005: 0x20800, + 0x80000006: 0x20820, + 0x80000007: 0x20, + 0x80000008: 0x8000020, + 0x80000009: 0x820, + 0x8000000a: 0x20020, + 0x8000000b: 0x8020800, + 0x8000000c: 0x0, + 0x8000000d: 0x8020020, + 0x8000000e: 0x8000800, + 0x8000000f: 0x20000, + 0x10: 0x20820, + 0x11: 0x8020800, + 0x12: 0x20, + 0x13: 0x800, + 0x14: 0x8000800, + 0x15: 0x8000020, + 0x16: 0x8020020, + 0x17: 0x20000, + 0x18: 0x0, + 0x19: 0x20020, + 0x1a: 0x8020000, + 0x1b: 0x8000820, + 0x1c: 0x8020820, + 0x1d: 0x20800, + 0x1e: 0x820, + 0x1f: 0x8000000, + 0x80000010: 0x20000, + 0x80000011: 0x800, + 0x80000012: 0x8020020, + 0x80000013: 0x20820, + 0x80000014: 0x20, + 0x80000015: 0x8020000, + 0x80000016: 0x8000000, + 0x80000017: 0x8000820, + 0x80000018: 0x8020820, + 0x80000019: 0x8000020, + 0x8000001a: 0x8000800, + 0x8000001b: 0x0, + 0x8000001c: 0x20800, + 0x8000001d: 0x820, + 0x8000001e: 0x20020, + 0x8000001f: 0x8020800 + } + ]; + + // Masks that select the SBOX input + var SBOX_MASK = [ + 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, + 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f + ]; + + /** + * DES block cipher algorithm. + */ + var DES = C_algo.DES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + + // Select 56 bits according to PC1 + var keyBits = []; + for (var i = 0; i < 56; i++) { + var keyBitPos = PC1[i] - 1; + keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; + } + + // Assemble 16 subkeys + var subKeys = this._subKeys = []; + for (var nSubKey = 0; nSubKey < 16; nSubKey++) { + // Create subkey + var subKey = subKeys[nSubKey] = []; + + // Shortcut + var bitShift = BIT_SHIFTS[nSubKey]; + + // Select 48 bits according to PC2 + for (var i = 0; i < 24; i++) { + // Select from the left 28 key bits + subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); + + // Select from the right 28 key bits + subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); + } + + // Since each subkey is applied to an expanded 32-bit input, + // the subkey can be broken into 8 values scaled to 32-bits, + // which allows the key to be used without expansion + subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); + for (var i = 1; i < 7; i++) { + subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); + } + subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); + } + + // Compute inverse subkeys + var invSubKeys = this._invSubKeys = []; + for (var i = 0; i < 16; i++) { + invSubKeys[i] = subKeys[15 - i]; + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._subKeys); + }, + + decryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._invSubKeys); + }, + + _doCryptBlock: function (M, offset, subKeys) { + // Get input + this._lBlock = M[offset]; + this._rBlock = M[offset + 1]; + + // Initial permutation + exchangeLR.call(this, 4, 0x0f0f0f0f); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeRL.call(this, 2, 0x33333333); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeLR.call(this, 1, 0x55555555); + + // Rounds + for (var round = 0; round < 16; round++) { + // Shortcuts + var subKey = subKeys[round]; + var lBlock = this._lBlock; + var rBlock = this._rBlock; + + // Feistel function + var f = 0; + for (var i = 0; i < 8; i++) { + f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; + } + this._lBlock = rBlock; + this._rBlock = lBlock ^ f; + } + + // Undo swap from last round + var t = this._lBlock; + this._lBlock = this._rBlock; + this._rBlock = t; + + // Final permutation + exchangeLR.call(this, 1, 0x55555555); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeRL.call(this, 2, 0x33333333); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeLR.call(this, 4, 0x0f0f0f0f); + + // Set output + M[offset] = this._lBlock; + M[offset + 1] = this._rBlock; + }, + + keySize: 64/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + // Swap bits across the left and right words + function exchangeLR(offset, mask) { + var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; + this._rBlock ^= t; + this._lBlock ^= t << offset; + } + + function exchangeRL(offset, mask) { + var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; + this._lBlock ^= t; + this._rBlock ^= t << offset; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); + */ + C.DES = BlockCipher._createHelper(DES); + + /** + * Triple-DES block cipher algorithm. + */ + var TripleDES = C_algo.TripleDES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + + // Create DES instances + this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2))); + this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4))); + this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6))); + }, + + encryptBlock: function (M, offset) { + this._des1.encryptBlock(M, offset); + this._des2.decryptBlock(M, offset); + this._des3.encryptBlock(M, offset); + }, + + decryptBlock: function (M, offset) { + this._des3.decryptBlock(M, offset); + this._des2.encryptBlock(M, offset); + this._des1.decryptBlock(M, offset); + }, + + keySize: 192/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); + */ + C.TripleDES = BlockCipher._createHelper(TripleDES); +}()); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + /** + * RC4 stream cipher algorithm. + */ + var RC4 = C_algo.RC4 = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + var keySigBytes = key.sigBytes; + + // Init sbox + var S = this._S = []; + for (var i = 0; i < 256; i++) { + S[i] = i; + } + + // Key setup + for (var i = 0, j = 0; i < 256; i++) { + var keyByteIndex = i % keySigBytes; + var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; + + j = (j + S[i] + keyByte) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + } + + // Counters + this._i = this._j = 0; + }, + + _doProcessBlock: function (M, offset) { + M[offset] ^= generateKeystreamWord.call(this); + }, + + keySize: 256/32, + + ivSize: 0 + }); + + function generateKeystreamWord() { + // Shortcuts + var S = this._S; + var i = this._i; + var j = this._j; + + // Generate keystream word + var keystreamWord = 0; + for (var n = 0; n < 4; n++) { + i = (i + 1) % 256; + j = (j + S[i]) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + + keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); + } + + // Update counters + this._i = i; + this._j = j; + + return keystreamWord; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); + */ + C.RC4 = StreamCipher._createHelper(RC4); + + /** + * Modified RC4 stream cipher algorithm. + */ + var RC4Drop = C_algo.RC4Drop = RC4.extend({ + /** + * Configuration options. + * + * @property {number} drop The number of keystream words to drop. Default 192 + */ + cfg: RC4.cfg.extend({ + drop: 192 + }), + + _doReset: function () { + RC4._doReset.call(this); + + // Drop + for (var i = this.cfg.drop; i > 0; i--) { + generateKeystreamWord.call(this); + } + } + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); + */ + C.RC4Drop = StreamCipher._createHelper(RC4Drop); +}()); + + +/** @preserve + * Counter block mode compatible with Dr Brian Gladman fileenc.c + * derived from CryptoJS.mode.CTR + * Jan Hruby jhruby.web@gmail.com + */ +CryptoJS.mode.CTRGladman = (function () { + var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); + + function incWord(word) + { + if (((word >> 24) & 0xff) === 0xff) { //overflow + var b1 = (word >> 16)&0xff; + var b2 = (word >> 8)&0xff; + var b3 = word & 0xff; + + if (b1 === 0xff) // overflow b1 + { + b1 = 0; + if (b2 === 0xff) + { + b2 = 0; + if (b3 === 0xff) + { + b3 = 0; + } + else + { + ++b3; + } + } + else + { + ++b2; + } + } + else + { + ++b1; + } + + word = 0; + word += (b1 << 16); + word += (b2 << 8); + word += b3; + } + else + { + word += (0x01 << 24); + } + return word; + } + + function incCounter(counter) + { + if ((counter[0] = incWord(counter[0])) === 0) + { + // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 + counter[1] = incWord(counter[1]); + } + return counter; + } + + var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + + incCounter(counter); + + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTRGladman.Decryptor = Encryptor; + + return CTRGladman; +}()); + + + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm + */ + var Rabbit = C_algo.Rabbit = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Swap endian + for (var i = 0; i < 4; i++) { + K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | + (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); + } + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); + */ + C.Rabbit = StreamCipher._createHelper(Rabbit); +}()); + + +/** + * Counter block mode. + */ +CryptoJS.mode.CTR = (function () { + var CTR = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = CTR.Encryptor = CTR.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Increment counter + counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTR.Decryptor = Encryptor; + + return CTR; +}()); + + +(function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm. + * + * This is a legacy version that neglected to convert the key to little-endian. + * This error doesn't affect the cipher's security, + * but it does affect its compatibility with other implementations. + */ + var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); + */ + C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); +}()); + + +/** + * Zero padding strategy. + */ +CryptoJS.pad.ZeroPadding = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Pad + data.clamp(); + data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); + }, + + unpad: function (data) { + // Shortcut + var dataWords = data.words; + + // Unpad + var i = data.sigBytes - 1; + while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { + i--; + } + data.sigBytes = i + 1; + } +}; + diff --git a/smtERP-web/src/utils/filter.js b/smtERP-web/src/utils/filter.js new file mode 100644 index 0000000..43c77ef --- /dev/null +++ b/smtERP-web/src/utils/filter.js @@ -0,0 +1,30 @@ +import Vue from "vue"; +import * as dayjs from "dayjs"; + +Vue.filter('NumberFormat', function (value) { + if (!value) { + return '0' + } + let intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') //将整数部分逢三一断 + return intPartFormat +}) + +Vue.filter('dayjs', function(dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { + return dayjs(dataStr).format(pattern) +}) + +Vue.filter('moment', function(dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') { + return dayjs(dataStr).format(pattern) +}) + +/** 字符串超长截取省略号显示 */ +Vue.filter('ellipsis', function (value, vlength = 25) { + if(!value){ + return ""; + } + console.log('vlength: '+ vlength); + if (value.length > vlength) { + return value.slice(0, vlength) + '...' + } + return value +}) \ No newline at end of file diff --git a/smtERP-web/src/utils/hasPermission.js b/smtERP-web/src/utils/hasPermission.js new file mode 100644 index 0000000..e38f1d5 --- /dev/null +++ b/smtERP-web/src/utils/hasPermission.js @@ -0,0 +1,120 @@ +import { USER_AUTH,SYS_BUTTON_AUTH } from "@/store/mutation-types" + +const hasPermission = { + install (Vue, options) { + //console.log(options); + Vue.directive('has', { + inserted: (el, binding, vnode)=>{ + console.log("页面权限控制----"); + //console.time() + //节点权限处理,如果命中则不进行全局权限处理 + if(!filterNodePermission(el, binding, vnode)){ + filterGlobalPermission(el, binding, vnode); + } + //console.timeEnd() //计时结束并输出时长 + } + }); + } +}; + +/** + * 流程节点权限控制 + */ +export function filterNodePermission(el, binding, vnode) { + let permissionList = []; + try { + let obj = vnode.context.$props.formData; + if (obj) { + let bpmList = obj.permissionList; + for (let bpm of bpmList) { + if(bpm.type != '2') { + permissionList.push(bpm); + } + } + }else{ + return false; + } + } catch (e) { + //console.log("页面权限异常----", e); + } + if (permissionList === null || permissionList === "" || permissionList === undefined||permissionList.length<=0) { + //el.parentNode.removeChild(el) + return false; + } + + console.log("流程节点页面权限--NODE--"); + let permissions = []; + for (let item of permissionList) { + if(item.type != '2') { + permissions.push(item.action); + } + } + //console.log("页面权限----"+permissions); + //console.log("页面权限----"+binding.value); + if (!permissions.includes(binding.value)) { + //el.parentNode.removeChild(el) + return false; + }else{ + for (let item2 of permissionList) { + if(binding.value === item2.action){ + return true; + } + } + } + return false; +} + +/** + * 全局权限控制 + */ +export function filterGlobalPermission(el, binding, vnode) { + console.log("全局页面权限--Global--"); + + let permissionList = []; + let allPermissionList = []; + + //let authList = Vue.ls.get(USER_AUTH); + let authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]"); + for (let auth of authList) { + if(auth.type != '2') { + permissionList.push(auth); + } + } + //console.log("页面权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH)); + let allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || "[]"); + for (let gauth of allAuthList) { + if(gauth.type != '2') { + allPermissionList.push(gauth); + } + } + //设置全局配置是否有命中 + let invalidFlag = false;//无效命中 + if(allPermissionList != null && allPermissionList != "" && allPermissionList != undefined && allPermissionList.length > 0){ + for (let itemG of allPermissionList) { + if(binding.value === itemG.action){ + if(itemG.status == '0'){ + invalidFlag = true; + break; + } + } + } + } + if(invalidFlag){ + return; + } + if (permissionList === null || permissionList === "" || permissionList === undefined||permissionList.length<=0) { + el.parentNode.removeChild(el); + return; + } + let permissions = []; + for (let item of permissionList) { + if(item.type != '2'){ + permissions.push(item.action); + } + } + if (!permissions.includes(binding.value)) { + el.parentNode.removeChild(el); + } +} + +export default hasPermission; diff --git a/smtERP-web/src/utils/language.js b/smtERP-web/src/utils/language.js new file mode 100644 index 0000000..d347ab8 --- /dev/null +++ b/smtERP-web/src/utils/language.js @@ -0,0 +1,42 @@ +export const LANGUAGE_CHANGED_EVENT = 'erp-language-changed' +export const LANGUAGE_ZH_CN = 'zh-CN' +export const LANGUAGE_EN_US = 'en-US' + +const supportedLanguages = [LANGUAGE_ZH_CN, LANGUAGE_EN_US] + +function browserDefaultLanguage () { + return /^en(?:-|$)/i.test(window.navigator.language || '') + ? LANGUAGE_EN_US + : LANGUAGE_ZH_CN +} + +export function normalizeLanguage (language) { + if (language === 'chinese_simplified') return LANGUAGE_ZH_CN + if (language === 'english') return LANGUAGE_EN_US + return supportedLanguages.indexOf(language) >= 0 ? language : browserDefaultLanguage() +} + +export function getLanguage () { + const savedLanguage = window.localStorage.getItem('erp-language') + if (savedLanguage) { + return normalizeLanguage(savedLanguage) + } + return browserDefaultLanguage() +} + +export function changeLanguage (language) { + const nextLanguage = normalizeLanguage(language) + window.localStorage.setItem('erp-language', nextLanguage) + document.documentElement.lang = nextLanguage === LANGUAGE_EN_US ? 'en' : 'zh-CN' + window.dispatchEvent(new CustomEvent(LANGUAGE_CHANGED_EVENT, { + detail: { language: nextLanguage } + })) + return nextLanguage +} + +export function initializeLanguage () { + const currentLanguage = getLanguage() + window.localStorage.setItem('erp-language', currentLanguage) + document.documentElement.lang = currentLanguage === LANGUAGE_EN_US ? 'en' : 'zh-CN' + return currentLanguage +} diff --git a/smtERP-web/src/utils/menuUrl.js b/smtERP-web/src/utils/menuUrl.js new file mode 100644 index 0000000..ac01d32 --- /dev/null +++ b/smtERP-web/src/utils/menuUrl.js @@ -0,0 +1,17 @@ +// Explicit mappings preserve supported URL placeholders without executing menu data. +export function resolveMenuUrl (url, browserWindow) { + const config = browserWindow._CONFIG || {} + const values = { + 'window._CONFIG.domianURL': config.domianURL, + "window._CONFIG['domianURL']": config.domianURL, + 'window._CONFIG["domianURL"]': config.domianURL, + 'window.location.origin': browserWindow.location.origin, + 'window.location.host': browserWindow.location.host, + 'window.location.protocol': browserWindow.location.protocol + } + return (url || '').replace(/{{([^}]+)}}/g, (placeholder, expression) => { + const key = expression.trim() + return Object.prototype.hasOwnProperty.call(values, key) && values[key] != null + ? String(values[key]) : placeholder + }) +} diff --git a/smtERP-web/src/utils/mixin.js b/smtERP-web/src/utils/mixin.js new file mode 100644 index 0000000..4b48deb --- /dev/null +++ b/smtERP-web/src/utils/mixin.js @@ -0,0 +1,48 @@ +// import Vue from 'vue' +import { mapState } from "vuex"; + +// const mixinsComputed = Vue.config.optionMergeStrategies.computed +// const mixinsMethods = Vue.config.optionMergeStrategies.methods + +const mixin = { + computed: { + ...mapState({ + layoutMode: state => state.app.layout, + navTheme: state => state.app.theme, + primaryColor: state => state.app.color, + colorWeak: state => state.app.weak, + multipage: state => state.app.multipage,//多页签设置 + fixedHeader: state => state.app.fixedHeader, + fixSiderbar: state => state.app.fixSiderbar, + contentWidth: state => state.app.contentWidth, + autoHideHeader: state => state.app.autoHideHeader, + sidebarOpened: state => state.app.sidebar.opened, + sidebarWidth: state => state.app.sidebar.width + }) + } +} + +const mixinDevice = { + computed: { + ...mapState({ + device: state => state.app.device, + }) + }, + methods: { + isMobile () { + return this.device === 'mobile' + }, + isDesktop () { + return this.device === 'desktop' + }, + wrapClassNameInfo () { + if(this.device === 'desktop') { + return 'ant-modal-cust-warp depot-mask' + } else { + return 'ant-modal-cust-warp' + } + } + } +} + +export { mixin, mixinDevice } diff --git a/smtERP-web/src/utils/permissions.js b/smtERP-web/src/utils/permissions.js new file mode 100644 index 0000000..e4b60bc --- /dev/null +++ b/smtERP-web/src/utils/permissions.js @@ -0,0 +1,8 @@ +export function actionToObject(json) { + try { + return JSON.parse(json) + } catch (e) { + console.log('err', e.message) + } + return [] +} \ No newline at end of file diff --git a/smtERP-web/src/utils/props-util.js b/smtERP-web/src/utils/props-util.js new file mode 100644 index 0000000..9c94200 --- /dev/null +++ b/smtERP-web/src/utils/props-util.js @@ -0,0 +1,115 @@ +/** + * 该文件截取自 "ant-design-vue/es/_util/props-util.js" 文件,并对其做出特殊修改 + */ +function classNames() { + let classes = [] + + for (let i = 0; i < arguments.length; i++) { + let arg = arguments[i] + if (!arg) continue + + let argType = typeof arg + + if (argType === 'string' || argType === 'number') { + classes.push(arg) + } else if (Array.isArray(arg) && arg.length) { + let inner = classNames.apply(null, arg) + if (inner) { + classes.push(inner) + } + } else if (argType === 'object') { + for (let key in arg) { + if (arg.hasOwnProperty(key) && arg[key]) { + classes.push(key) + } + } + } + } + return classes.join(' ') +} + +const camelizeRE = /-(\w)/g + +function camelize(str) { + return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')) +} + + +function objectCamelize(obj) { + let res = {} + Object.keys(obj).forEach(k => (res[camelize(k)] = obj[k])) + return res +} + +function parseStyleText(cssText = '', camel) { + const res = {} + const listDelimiter = /;(?![^(]*\))/g + const propertyDelimiter = /:(.+)/ + cssText.split(listDelimiter).forEach(function (item) { + if (item) { + const tmp = item.split(propertyDelimiter) + if (tmp.length > 1) { + const k = camel ? camelize(tmp[0].trim()) : tmp[0].trim() + res[k] = tmp[1].trim() + } + } + }) + return res +} + +export function getClass(ele) { + let data = {} + if (ele.data) { + data = ele.data + } else if (ele.$vnode && ele.$vnode.data) { + data = ele.$vnode.data + } + const tempCls = data.class || {} + const staticClass = data.staticClass + let cls = {} + staticClass && + staticClass.split(' ').forEach(c => { + cls[c.trim()] = true + }) + if (typeof tempCls === 'string') { + tempCls.split(' ').forEach(c => { + cls[c.trim()] = true + }) + } else if (Array.isArray(tempCls)) { + classNames(tempCls) + .split(' ') + .forEach(c => { + cls[c.trim()] = true + }) + } else { + cls = { ...cls, ...tempCls } + } + return cls +} + +export function getStyle(ele, camel) { + + getClass(ele) + + let data = {} + if (ele.data) { + data = ele.data + } else if (ele.$vnode && ele.$vnode.data) { + data = ele.$vnode.data + } + + // update-begin-author:sunjianlei date:20200303 for: style 和 staticStyle 可以共存 + let style = data.style || {} + let staticStyle = data.staticStyle + staticStyle = staticStyle ? objectCamelize(data.staticStyle) : {} + // update-end-author:sunjianlei date:20200303 for: style 和 staticStyle 可以共存 + + if (typeof style === 'string') { + style = parseStyleText(style, camel) + } else if (camel && style) { + // 驼峰化 + style = objectCamelize(style) + } + return { ...staticStyle, ...style } +} + diff --git a/smtERP-web/src/utils/request.js b/smtERP-web/src/utils/request.js new file mode 100644 index 0000000..37fa1da --- /dev/null +++ b/smtERP-web/src/utils/request.js @@ -0,0 +1,98 @@ +import Vue from 'vue' +import axios from 'axios' +import store from '@/store' +import { VueAxios } from './axios' +import {Modal, notification} from 'ant-design-vue' +import { ACCESS_TOKEN } from "@/store/mutation-types" + +/** + * 【指定 axios的 baseURL】 + * 如果手工指定 baseURL: '/apis' + * 则映射后端域名,通过 vue.config.js + * @type {*|string} + */ +let apiBaseUrl = window._CONFIG['domianURL'] || "/apis"; +//console.log("apiBaseUrl= ",apiBaseUrl) +// 创建 axios 实例 +const service = axios.create({ + baseURL: apiBaseUrl, // api base_url + timeout: 300000 // 请求超时时间 +}) + +const err = (error) => { + if (error.response) { + let data = error.response.data + const token = Vue.ls.get(ACCESS_TOKEN) + switch (error.response.status) { + case 403: + notification.error({ message: '系统提示', description: '拒绝访问',duration: 4}) + break + case 500: + if(token && data==="loginOut"){ + Modal.error({ + title: '登录已过期', + content: '很抱歉,登录已过期,请重新登录', + okText: '重新登录', + mask: false, + onOk: () => { + Vue.ls.remove(ACCESS_TOKEN) + window.location.reload() + } + }) + } + break + case 404: + notification.error({ message: '系统提示', description:'很抱歉,资源未找到!',duration: 4}) + break + case 504: + notification.error({ message: '系统提示', description: '网络超时'}) + break + case 401: + notification.error({ message: '系统提示', description:'未授权,请重新登录',duration: 4}) + if (token) { + store.dispatch('Logout').then(() => { + setTimeout(() => { + window.location.reload() + }, 1500) + }) + } + break + default: + notification.error({ + message: '系统提示', + description: data.message, + duration: 4 + }) + break + } + } + return Promise.reject(error) +}; + +// request interceptor +service.interceptors.request.use(config => { + const token = Vue.ls.get(ACCESS_TOKEN) + if (token) { + config.headers[ 'X-Access-Token' ] = token // 让每个请求携带自定义 token 请根据实际情况自行修改 + } + return config +},(error) => { + return Promise.reject(error) +}) + +// response interceptor +service.interceptors.response.use((response) => { + return response.data + }, err) + +const installer = { + vm: {}, + install (Vue, router = {}) { + Vue.use(VueAxios, router, service) + } +} + +export { + installer as VueAxios, + service as axios +} diff --git a/smtERP-web/src/utils/storage.js b/smtERP-web/src/utils/storage.js new file mode 100644 index 0000000..b3c29ab --- /dev/null +++ b/smtERP-web/src/utils/storage.js @@ -0,0 +1,78 @@ +/** + * Set storage + * + * @param name + * @param content + * @param maxAge + */ +export const setStore = (name, content, maxAge = null) => { + if (!global.window || !name) { + return; + } + + if (typeof content !== 'string') { + content = JSON.stringify(content) + } + + let storage = global.window.localStorage + + storage.setItem(name, content) + if (maxAge && !isNaN(parseInt(maxAge))) { + let timeout = parseInt(new Date().getTime() / 1000) + storage.setItem(`${name}_expire`, timeout + maxAge) + } +}; + +/** + * Get storage + * + * @param name + * @returns {*} + */ +export const getStore = name => { + if (!global.window || !name) { + return; + } + + let content = window.localStorage.getItem(name) + let _expire = window.localStorage.getItem(`${name}_expire`) + + if (_expire) { + let now = parseInt(new Date().getTime() / 1000) + if (now > _expire) { + return; + } + } + + try { + return JSON.parse(content) + } catch (e) { + return content + } +}; + +/** + * Clear storage + * + * @param name + */ +export const clearStore = name => { + if (!global.window || !name) { + return; + } + + window.localStorage.removeItem(name) + window.localStorage.removeItem(`${name}_expire`) +}; + +/** + * Clear all storage + */ +export const clearAll = () => { + if (!global.window || !name) { + return; + } + + window.localStorage.clear() +} + diff --git a/smtERP-web/src/utils/util.js b/smtERP-web/src/utils/util.js new file mode 100644 index 0000000..83e3ed5 --- /dev/null +++ b/smtERP-web/src/utils/util.js @@ -0,0 +1,770 @@ +import { isURL } from '@/utils/validate' +import { downFilePost} from '@/api/manage' +import Vue from 'vue' +import introJs from 'intro.js' +import { getLanguage, LANGUAGE_EN_US } from '@/utils/language' +import { resolveMenuUrl } from '@/utils/menuUrl' + +export function localizedMenuText (item) { + const english = getLanguage() === LANGUAGE_EN_US + return (english ? item.textEn : item.text) || item.text || item.textEn || '' +} + +export function localizedRouteTitle (route) { + const meta = (route && route.meta) || {} + const isHome = route && (route.path === '/dashboard/analysis' || route.fullPath === '/dashboard/analysis' || meta.url === '/dashboard/analysis') + const text = meta.titleZh || route.text || meta.title + const textEn = meta.titleEn || route.textEn || (isHome ? 'Home' : '') + return localizedMenuText({ text, textEn }) || meta.title || route.name || '' +} + +export function timeFix() { + const time = new Date() + const hour = time.getHours() + return hour < 9 ? '早上好' : (hour <= 11 ? '上午好' : (hour <= 13 ? '中午好' : (hour < 20 ? '下午好' : '晚上好'))) +} + +export function welcome() { + const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 DOTA', '我猜你可能累了'] + let index = Math.floor((Math.random()*arr.length)) + return arr[index] +} + +/** + * 触发 window.resize + */ +export function triggerWindowResizeEvent() { + let event = document.createEvent('HTMLEvents') + event.initEvent('resize', true, true) + event.eventType = 'message' + window.dispatchEvent(event) +} + +/** + * 过滤对象中为空的属性 + * @param obj + * @returns {*} + */ +export function filterObj(obj) { + if (!(typeof obj == 'object')) { + return; + } + + for ( let key in obj) { + if (obj.hasOwnProperty(key) + && (obj[key] == null || obj[key] == undefined || obj[key] === '')) { + delete obj[key]; + } + } + return obj; +} + +/** + * 时间格式化 + * @param value + * @param fmt + * @returns {*} + */ +export function formatDate(value, fmt) { + let regPos = /^\d+(\.\d+)?$/; + if(regPos.test(value)){ + //如果是数字 + let getDate = new Date(value); + let o = { + 'M+': getDate.getMonth() + 1, + 'd+': getDate.getDate(), + 'h+': getDate.getHours(), + 'm+': getDate.getMinutes(), + 's+': getDate.getSeconds(), + 'q+': Math.floor((getDate.getMonth() + 3) / 3), + 'S': getDate.getMilliseconds() + }; + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (getDate.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + for (let k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) + } + } + return fmt; + }else{ + //TODO + value = value.trim(); + return value.substr(0,fmt.length); + } +} + +// 生成首页路由 +export function generateIndexRouter(data) { + let indexRouter = generateChildRouters(data) + indexRouter.splice(0,0, { + path: '/', + name: localizedMenuText({ text: '首页', textEn: 'Home' }), + component: () => import('@/components/layouts/TabLayout'), + meta: { + title: localizedMenuText({ text: '首页', textEn: 'Home' }), + titleZh: '首页', + titleEn: 'Home', + icon: 'icon-present', + url: '/dashboard/analysis' + }, + redirect: '/dashboard/analysis' + }) + return indexRouter; +} + +// 生成嵌套路由(子路由) + +function generateChildRouters (data) { + const routers = []; + for (let item of data) { + let componentPath = ""; + item.route = "1"; + if(item.component.indexOf("layouts")>=0){ + componentPath = () => import('@/components'+item.component); + } else { + componentPath = () => import('@/views'+item.component); + } + // eslint-disable-next-line + let URL = resolveMenuUrl(item.url, window) + if (isURL(URL)) { + item.url = URL; + } + let componentName ='' + if(item.component) { + let index = item.component.lastIndexOf("\/"); + componentName = item.component.substring(index + 1, item.component.length); + } + let menu = { + path: item.url, + name: localizedMenuText(item), + meta: { + id: item.id, + title: localizedMenuText(item), + titleZh: item.text, + titleEn: item.textEn, + icon: item.icon, + url: item.url, + componentName:componentName, + internalOrExternal:true, + keepAlive: true + } + } + menu.text = item.text + menu.textEn = item.textEn + if(item.component.indexOf("IframePageView")>-1){ + //给带iframe的页面进行改造 + menu.iframeComponent = componentPath + } else { + menu.component = componentPath + } + if (item.children && item.children.length > 0) { + menu.children = [...generateChildRouters( item.children)]; + } + //--update-begin----author:scott---date:20190320------for:根据后台菜单配置,判断是否路由菜单字段,动态选择是否生成路由(为了支持参数URL菜单)------ + //判断是否生成路由 + if(item.route && item.route === '0'){ + //console.log(' 不生成路由 item.route: '+item.route); + //console.log(' 不生成路由 item.path: '+item.path); + }else{ + routers.push(menu); + } + //--update-end----author:scott---date:20190320------for:根据后台菜单配置,判断是否路由菜单字段,动态选择是否生成路由(为了支持参数URL菜单)------ + } + return routers +} + +/** + * 深度克隆对象、数组 + * @param obj 被克隆的对象 + * @return 克隆后的对象 + */ +export function cloneObject(obj) { + return JSON.parse(JSON.stringify(obj)) +} + +/** + * 随机生成数字 + * + * 示例:生成长度为 12 的随机数:randomNumber(12) + * 示例:生成 3~23 之间的随机数:randomNumber(3, 23) + * + * @param1 最小值 | 长度 + * @param2 最大值 + * @return int 生成后的数字 + */ +export function randomNumber() { + // 生成 最小值 到 最大值 区间的随机数 + const random = (min, max) => { + return Math.floor(Math.random() * (max - min + 1) + min) + } + if (arguments.length === 1) { + let [length] = arguments + // 生成指定长度的随机数字,首位一定不是 0 + let nums = [...Array(length).keys()].map((i) => (i > 0 ? random(0, 9) : random(1, 9))) + return parseInt(nums.join('')) + } else if (arguments.length >= 2) { + let [min, max] = arguments + return random(min, max) + } else { + return Number.NaN + } +} + +/** + * 随机生成字符串 + * @param length 字符串的长度 + * @param chats 可选字符串区间(只会生成传入的字符串中的字符) + * @return string 生成的字符串 + */ +export function randomString(length, chats) { + if (!length) length = 1 + if (!chats) chats = '0123456789qwertyuioplkjhgfdsazxcvbnm' + let str = '' + for (let i = 0; i < length; i++) { + let num = randomNumber(0, chats.length - 1) + str += chats[num] + } + return str +} + +/** + * 随机生成uuid + * @return string 生成的uuid + */ +export function randomUUID() { + let chats = '0123456789abcdef' + return randomString(32, chats) +} + +/** + * 下划线转驼峰 + * @param string + * @returns {*} + */ +export function underLine2CamelCase(string){ + return string.replace( /_([a-z])/g, function( all, letter ) { + return letter.toUpperCase(); + }); +} + +/** + * 判断是否显示办理按钮 + * @param bpmStatus + * @returns {*} + */ +export function showDealBtn(bpmStatus){ + if(bpmStatus!="1"&&bpmStatus!="3"&&bpmStatus!="4"){ + return true; + } + return false; +} + +/** + * 增强CSS,可以在页面上输出全局css + * @param css 要增强的css + * @param id style标签的id,可以用来清除旧样式 + */ +export function cssExpand(css, id) { + let style = document.createElement('style') + style.type = "text/css" + style.innerHTML = `@charset "UTF-8"; ${css}` + // 清除旧样式 + if (id) { + let $style = document.getElementById(id) + if ($style != null) $style.outerHTML = '' + style.id = id + } + // 应用新样式 + document.head.appendChild(style) +} + + +/** 用于js增强事件,运行JS代码,可以传参 */ +// options 所需参数: +// 参数名 类型 说明 +// vm VueComponent vue实例 +// event Object event对象 +// jsCode String 待执行的js代码 +// errorMessage String 执行出错后的提示(控制台) +export function jsExpand(options = {}) { + + // 绑定到window上的keyName + let windowKeyName = 'J_CLICK_EVENT_OPTIONS' + if (typeof window[windowKeyName] != 'object') { + window[windowKeyName] = {} + } + + // 随机生成JS增强的执行id,防止冲突 + let id = randomString(16, 'qwertyuioplkjhgfdsazxcvbnm'.toUpperCase()) + // 封装按钮点击事件 + let code = ` + (function (o_${id}) { + try { + (function (globalEvent, vm) { + ${options.jsCode} + })(o_${id}.event, o_${id}.vm) + } catch (e) { + o_${id}.error(e) + } + o_${id}.done() + })(window['${windowKeyName}']['EVENT_${id}']) + ` + // 创建script标签 + const script = document.createElement('script') + // 将需要传递的参数挂载到window对象上 + window[windowKeyName]['EVENT_' + id] = { + vm: options.vm, + event: options.event, + // 当执行完成时,无论如何都会调用的回调事件 + done() { + // 执行完后删除新增的 script 标签不会撤销执行结果(已产生的结果不会被撤销) + script.outerHTML = '' + delete window[windowKeyName]['EVENT_' + id] + }, + // 当js运行出错的时候调用的事件 + error(e) { + console.group(`${options.errorMessage || '用户自定义JS增强代码运行出错'}(${new Date()})`) + console.error(e) + console.groupEnd() + } + } + // 将事件挂载到document中 + script.innerHTML = code + document.body.appendChild(script) +} + +/** + * 如果值不存在就 push 进数组,反之不处理 + * @param array 要操作的数据 + * @param value 要添加的值 + * @param key 可空,如果比较的是对象,可能存在地址不一样但值实际上是一样的情况,可以传此字段判断对象中唯一的字段,例如 id。不传则直接比较实际值 + * @returns {boolean} 成功 push 返回 true,不处理返回 false + */ +export function pushIfNotExist(array, value, key) { + for (let item of array) { + if (key && (item[key] === value[key])) { + return false + } else if (item === value) { + return false + } + } + array.push(value) + return true +} + +/** + * 可用于判断是否成功 + * @type {symbol} + */ +export const succeedSymbol = Symbol() +/** + * 可用于判断是否失败 + * @type {symbol} + */ +export const failedSymbol = Symbol() + +/** + * 使 promise 无论如何都会 resolve,除非传入的参数不是一个Promise对象或返回Promise对象的方法 + * 一般用在 Promise.all 中 + * + * @param promise 可传Promise对象或返回Promise对象的方法 + * @returns {Promise} + */ +export function alwaysResolve(promise) { + return new Promise((resolve, reject) => { + let p = promise + if (typeof promise === 'function') { + p = promise() + } + if (p instanceof Promise) { + p.then(data => { + resolve({ type: succeedSymbol, data }) + }).catch(error => { + resolve({ type: failedSymbol, error }) + }) + } else { + reject('alwaysResolve: 传入的参数不是一个Promise对象或返回Promise对象的方法') + } + }) +} + +/** + * 简单实现防抖方法 + * + * 防抖(debounce)函数在第一次触发给定的函数时,不立即执行函数,而是给出一个期限值(delay),比如100ms。 + * 如果100ms内再次执行函数,就重新开始计时,直到计时结束后再真正执行函数。 + * 这样做的好处是如果短时间内大量触发同一事件,只会执行一次函数。 + * + * @param fn 要防抖的函数 + * @param delay 防抖的毫秒数 + * @returns {Function} + */ +export function simpleDebounce(fn, delay = 100) { + let timer = null + return function () { + let args = arguments + if (timer) { + clearTimeout(timer) + } + timer = setTimeout(() => { + fn.apply(null, args) + }, delay) + } +} + +/** + * 不用正则的方式替换所有值 + * @param text 被替换的字符串 + * @param checker 替换前的内容 + * @param replacer 替换后的内容 + * @returns {String} 替换后的字符串 + */ +export function replaceAll(text, checker, replacer) { + let lastText = text + text = text.replace(checker, replacer) + if (lastText !== text) { + return replaceAll(text, checker, replacer) + } + return text +} + +/** + * 转换商品扩展字段的格式 + * @param thisRows + * @param checker + * @param replacer + * @returns {string} + */ +export function getMpListShort(thisRows, checker, replacer) { + let mPropertyListShort = '' + let anotherNameStr = '' + for (let i = 0; i < thisRows.length; i++) { + anotherNameStr += thisRows[i].anotherName + ","; + } + if (anotherNameStr) { + mPropertyListShort = anotherNameStr.substring(0, anotherNameStr.length - 1); + } + return mPropertyListShort +} + +/** + * js获取当前年份, 格式“yyyy” + */ +export function getNowFormatYear() { + let date = new Date(); + return date.getFullYear(); +} + +/** + * js获取当前月份, 格式“yyyy-MM” + */ +export function getNowFormatMonth() { + let date = new Date(); + let seperator1 = "-"; + let month = date.getMonth() + 1; + if (month >= 1 && month <= 9) { + month = "0" + month; + } + return date.getFullYear() + seperator1 + month; +} + +/** + * js获取当前日期, 格式“yyyy-MM-dd” + */ +export function getFormatDate() { + let date = new Date(); + let seperator1 = "-"; + let year = date.getFullYear(); + let month = date.getMonth() + 1; + let strDate = date.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + return year + seperator1 + month + seperator1 + strDate; +} + +/** + * js获取当前时间, 格式“yyyy-MM-dd HH:MM:SS” + */ +export function getNowFormatDateTime() { + let date = new Date(); + let seperator1 = "-"; + let seperator2 = ":"; + let month = date.getMonth() + 1; + let strDate = date.getDate(); + let strHours = date.getHours(); + let strMinutes = date.getMinutes(); + let strSeconds = date.getSeconds(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + if (strHours >= 0 && strHours <= 9) { + strHours = "0" + strHours; + } + if (strMinutes >= 0 && strMinutes <= 9) { + strMinutes = "0" + strMinutes; + } + if (strSeconds >= 0 && strSeconds <= 9) { + strSeconds = "0" + strSeconds; + } + return date.getFullYear() + seperator1 + month + seperator1 + strDate + + " " + strHours + seperator2 + strMinutes + + seperator2 + strSeconds; +} + +/** + * js获取当前时间, 格式“yyyyMMddHHMMSS” + */ +export function getNowFormatStr() { + let date = new Date(); + let year = date.getFullYear(); + let month = date.getMonth() + 1; + let strDate = date.getDate(); + let strHours = date.getHours(); + let strMinutes = date.getMinutes(); + let strSeconds = date.getSeconds(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + if (strHours >= 0 && strHours <= 9) { + strHours = "0" + strHours; + } + if (strMinutes >= 0 && strMinutes <= 9) { + strMinutes = "0" + strMinutes; + } + if (strSeconds >= 0 && strSeconds <= 9) { + strSeconds = "0" + strSeconds; + } + return year +''+ month +''+ strDate +''+ strHours +''+ strMinutes +''+ strSeconds; +} + +/** + * js获取N天前的日期, 格式“yyyy-MM-dd” + */ +export function getBeforeFormatDate(day) { + let currentDate = new Date(); + let thirtyDaysAgo = new Date(currentDate.getTime() - day * 24 * 60 * 60 * 1000); + let seperator1 = "-"; + let month = thirtyDaysAgo.getMonth() + 1; + let strDate = thirtyDaysAgo.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + return thirtyDaysAgo.getFullYear() + seperator1 + month + seperator1 + strDate +} + +/** + * js获取N月前的日期, 格式“yyyy-MM-dd” + */ +export function getPrevMonthFormatDate(monthNum) { + let prevMonth = new Date(); // 当前日期 + prevMonth.setMonth(prevMonth.getMonth() - monthNum); // 设置为前一个月 + let seperator1 = "-"; + let month = prevMonth.getMonth() + 1; + let strDate = prevMonth.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + return prevMonth.getFullYear() + seperator1 + month + seperator1 + strDate +} + +/** + * 自定义大数加法函数,两个数字相加 + * @param a + * @param b + * @returns {string} + */ +export function addBigNumbers(a, b) { + a = a.toString(); + b = b.toString(); + // 反转字符串,从个位开始计算 + let aRev = a.split('').reverse(); + let bRev = b.split('').reverse(); + const maxLength = Math.max(aRev.length, bRev.length); + let result = []; + let carry = 0; + for (let i = 0; i < maxLength; i++) { + const digitA = i < aRev.length ? parseInt(aRev[i]) : 0; + const digitB = i < bRev.length ? parseInt(bRev[i]) : 0; + const sum = digitA + digitB + carry; + result.push(sum % 10); + carry = Math.floor(sum / 10); + } + // 处理最后的进位 + if (carry > 0) { + result.push(carry); + } + // 反转回来得到正确的结果 + return result.reverse().join(''); +} + +/** + * JS中根据指定值删除数组中的元素 + * @param arrylist + * @param val + */ +export function removeByVal(arrylist, val) { + for(var i = 0; i < arrylist .length; i++) { + if(arrylist [i] == val) { + arrylist .splice(i, 1); + break; + } + } +} + +export function getCheckFlag(multiBillType, multiLevelApprovalFlag, prefixNo) { + if(multiLevelApprovalFlag==='1') { + //开启 + if(multiBillType) { + let multiBillTypeArr = multiBillType.split(',') + return multiBillTypeArr.indexOf(prefixNo) <= -1 + } else { + return true + } + } else { + //关闭 + return true + } +} + +/** + * 将字符串中单个金额中的数值转为负数 + * @param str + * @returns {Array} + */ +export function changeListFmtMinus(str) { + let newArr = new Array() + if(str) { + let arr = [] + if(str.indexOf(',')>-1) { + arr = str.split(',') + } else { + arr = str + } + for(let i=0; i{ + if (!data) { + this.$message.warning("文件下载失败") + return + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls') + }else{ + let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'})) + let link = document.createElement('a') + link.style.display = 'none' + link.href = url + link.setAttribute('download', fileName + '_' + getNowFormatStr()+'.xls') + document.body.appendChild(link) + link.click() + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + } + }) +} + +/** + * 新手引导步骤 + * @param module 这个变量可以用来存取版本号, 系统更新时候改变相应值 + * @param cur_version 这个变量可以用来存取版本号, 系统更新时候改变相应值 + */ +export function handleIntroJs(module, cur_version) { + //每个页面设置不同的缓存变量名称,不可以重复,有新版本时,更新cur_version + //有新版本更新时才出现一次引导页, 第二次进入进不再出现, 这里有缓存来判断 + let introJsObj = introJs() + if(module !== 'indexChart') { + let idElement = '#' + module + introJsObj = introJs(idElement) + } + if (Vue.ls.get('intro_cache_' + module) === cur_version) { + return; + } + introJsObj.setOptions({ + prevLabel: '← 上一步', + nextLabel: '下一步 →', + doneLabel: '知道了', + exitOnOverlayClick: false //点击空白区域是否关闭提示组件 + }).oncomplete(function(){ + //点击跳过按钮后执行的事件(这里保存对应的版本号到缓存,并且设置有效期为100天) + Vue.ls.set('intro_cache_' + module, cur_version, 100 * 24 * 60 * 60 * 1000); + }).onexit(function(){ + //点击结束按钮后, 执行的事件 + Vue.ls.set('intro_cache_' + module, cur_version, 100 * 24 * 60 * 60 * 1000); + }).start() +} + +/** + * 回车后自动跳到下一个input + */ +export function autoJumpNextInput(domInfo) { + let domIndex = 0 + let inputs = document.getElementById(domInfo).getElementsByTagName('input') + inputs[domIndex].focus() + document.getElementById(domInfo).addEventListener('keydown',function(e){ + if(e.keyCode === 13){ + domIndex++ + if(domIndex === inputs.length) { + domIndex = 0 + } + inputs[domIndex].focus() + } + }) + for(let i=0; i +
    + 404 page +
    + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/asset/AssetDashboard.vue b/smtERP-web/src/views/asset/AssetDashboard.vue new file mode 100644 index 0000000..524ff6f --- /dev/null +++ b/smtERP-web/src/views/asset/AssetDashboard.vue @@ -0,0 +1,339 @@ + + + + + diff --git a/smtERP-web/src/views/asset/AssetList.vue b/smtERP-web/src/views/asset/AssetList.vue new file mode 100644 index 0000000..569dace --- /dev/null +++ b/smtERP-web/src/views/asset/AssetList.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/smtERP-web/src/views/asset/DeviceList.vue b/smtERP-web/src/views/asset/DeviceList.vue new file mode 100644 index 0000000..0de5749 --- /dev/null +++ b/smtERP-web/src/views/asset/DeviceList.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/smtERP-web/src/views/asset/InventoryList.vue b/smtERP-web/src/views/asset/InventoryList.vue new file mode 100644 index 0000000..3766d61 --- /dev/null +++ b/smtERP-web/src/views/asset/InventoryList.vue @@ -0,0 +1,334 @@ + + + + + diff --git a/smtERP-web/src/views/asset/modules/AssetCategoryModal.vue b/smtERP-web/src/views/asset/modules/AssetCategoryModal.vue new file mode 100644 index 0000000..c587edf --- /dev/null +++ b/smtERP-web/src/views/asset/modules/AssetCategoryModal.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/smtERP-web/src/views/asset/modules/AssetModal.vue b/smtERP-web/src/views/asset/modules/AssetModal.vue new file mode 100644 index 0000000..a03fc6a --- /dev/null +++ b/smtERP-web/src/views/asset/modules/AssetModal.vue @@ -0,0 +1,61 @@ + + + diff --git a/smtERP-web/src/views/asset/modules/DeviceModal.vue b/smtERP-web/src/views/asset/modules/DeviceModal.vue new file mode 100644 index 0000000..3607d5e --- /dev/null +++ b/smtERP-web/src/views/asset/modules/DeviceModal.vue @@ -0,0 +1,55 @@ + + + diff --git a/smtERP-web/src/views/asset/modules/InventoryCreateDrawer.vue b/smtERP-web/src/views/asset/modules/InventoryCreateDrawer.vue new file mode 100644 index 0000000..460b6e0 --- /dev/null +++ b/smtERP-web/src/views/asset/modules/InventoryCreateDrawer.vue @@ -0,0 +1,251 @@ + + + + + diff --git a/smtERP-web/src/views/bill/AllocationOutList.vue b/smtERP-web/src/views/bill/AllocationOutList.vue new file mode 100644 index 0000000..95558b6 --- /dev/null +++ b/smtERP-web/src/views/bill/AllocationOutList.vue @@ -0,0 +1,254 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/AssembleList.vue b/smtERP-web/src/views/bill/AssembleList.vue new file mode 100644 index 0000000..748bce8 --- /dev/null +++ b/smtERP-web/src/views/bill/AssembleList.vue @@ -0,0 +1,254 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/DeliveryPlanList.vue b/smtERP-web/src/views/bill/DeliveryPlanList.vue new file mode 100644 index 0000000..00be033 --- /dev/null +++ b/smtERP-web/src/views/bill/DeliveryPlanList.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/smtERP-web/src/views/bill/DisassembleList.vue b/smtERP-web/src/views/bill/DisassembleList.vue new file mode 100644 index 0000000..8eea1ad --- /dev/null +++ b/smtERP-web/src/views/bill/DisassembleList.vue @@ -0,0 +1,254 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/HeadquartersInList.vue b/smtERP-web/src/views/bill/HeadquartersInList.vue new file mode 100644 index 0000000..c807d63 --- /dev/null +++ b/smtERP-web/src/views/bill/HeadquartersInList.vue @@ -0,0 +1,428 @@ + + + + diff --git a/smtERP-web/src/views/bill/OtherInList.vue b/smtERP-web/src/views/bill/OtherInList.vue new file mode 100644 index 0000000..8e348c0 --- /dev/null +++ b/smtERP-web/src/views/bill/OtherInList.vue @@ -0,0 +1,367 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/OtherOutList.vue b/smtERP-web/src/views/bill/OtherOutList.vue new file mode 100644 index 0000000..5d699bd --- /dev/null +++ b/smtERP-web/src/views/bill/OtherOutList.vue @@ -0,0 +1,358 @@ + + + + diff --git a/smtERP-web/src/views/bill/PurchaseApplyList.vue b/smtERP-web/src/views/bill/PurchaseApplyList.vue new file mode 100644 index 0000000..95fac6d --- /dev/null +++ b/smtERP-web/src/views/bill/PurchaseApplyList.vue @@ -0,0 +1,260 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/PurchaseBackList.vue b/smtERP-web/src/views/bill/PurchaseBackList.vue new file mode 100644 index 0000000..91cb04b --- /dev/null +++ b/smtERP-web/src/views/bill/PurchaseBackList.vue @@ -0,0 +1,330 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/PurchaseInList.vue b/smtERP-web/src/views/bill/PurchaseInList.vue new file mode 100644 index 0000000..d13fea8 --- /dev/null +++ b/smtERP-web/src/views/bill/PurchaseInList.vue @@ -0,0 +1,372 @@ + + + + diff --git a/smtERP-web/src/views/bill/PurchaseOrderList.vue b/smtERP-web/src/views/bill/PurchaseOrderList.vue new file mode 100644 index 0000000..81c7af5 --- /dev/null +++ b/smtERP-web/src/views/bill/PurchaseOrderList.vue @@ -0,0 +1,355 @@ + + + + diff --git a/smtERP-web/src/views/bill/RetailBackList.vue b/smtERP-web/src/views/bill/RetailBackList.vue new file mode 100644 index 0000000..2c956b7 --- /dev/null +++ b/smtERP-web/src/views/bill/RetailBackList.vue @@ -0,0 +1,310 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/RetailOutList.vue b/smtERP-web/src/views/bill/RetailOutList.vue new file mode 100644 index 0000000..0790178 --- /dev/null +++ b/smtERP-web/src/views/bill/RetailOutList.vue @@ -0,0 +1,336 @@ + + + + diff --git a/smtERP-web/src/views/bill/SaleBackList.vue b/smtERP-web/src/views/bill/SaleBackList.vue new file mode 100644 index 0000000..775708a --- /dev/null +++ b/smtERP-web/src/views/bill/SaleBackList.vue @@ -0,0 +1,333 @@ + + + + diff --git a/smtERP-web/src/views/bill/SaleOrderList.vue b/smtERP-web/src/views/bill/SaleOrderList.vue new file mode 100644 index 0000000..93c6379 --- /dev/null +++ b/smtERP-web/src/views/bill/SaleOrderList.vue @@ -0,0 +1,392 @@ + + + + diff --git a/smtERP-web/src/views/bill/SaleOutList.vue b/smtERP-web/src/views/bill/SaleOutList.vue new file mode 100644 index 0000000..d08c8ee --- /dev/null +++ b/smtERP-web/src/views/bill/SaleOutList.vue @@ -0,0 +1,493 @@ + + + + diff --git a/smtERP-web/src/views/bill/SaleShipmentList.vue b/smtERP-web/src/views/bill/SaleShipmentList.vue new file mode 100644 index 0000000..cb2bd94 --- /dev/null +++ b/smtERP-web/src/views/bill/SaleShipmentList.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/smtERP-web/src/views/bill/dialog/BatchSetDepot.vue b/smtERP-web/src/views/bill/dialog/BatchSetDepot.vue new file mode 100644 index 0000000..c076729 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/BatchSetDepot.vue @@ -0,0 +1,120 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/dialog/BatchWaitBillList.vue b/smtERP-web/src/views/bill/dialog/BatchWaitBillList.vue new file mode 100644 index 0000000..d46f559 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/BatchWaitBillList.vue @@ -0,0 +1,234 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/dialog/BillDetail.vue b/smtERP-web/src/views/bill/dialog/BillDetail.vue new file mode 100644 index 0000000..9b3172b --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/BillDetail.vue @@ -0,0 +1,2123 @@ + + + + + diff --git a/smtERP-web/src/views/bill/dialog/BillPrintIframe.vue b/smtERP-web/src/views/bill/dialog/BillPrintIframe.vue new file mode 100644 index 0000000..56237f3 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/BillPrintIframe.vue @@ -0,0 +1,83 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/dialog/BillPrintProIframe.vue b/smtERP-web/src/views/bill/dialog/BillPrintProIframe.vue new file mode 100644 index 0000000..bd8a543 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/BillPrintProIframe.vue @@ -0,0 +1,80 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/dialog/HistoryBillList.vue b/smtERP-web/src/views/bill/dialog/HistoryBillList.vue new file mode 100644 index 0000000..04bdab2 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/HistoryBillList.vue @@ -0,0 +1,299 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/dialog/ImportItemModal.vue b/smtERP-web/src/views/bill/dialog/ImportItemModal.vue new file mode 100644 index 0000000..29ceee6 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/ImportItemModal.vue @@ -0,0 +1,125 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/dialog/LinkBillList.vue b/smtERP-web/src/views/bill/dialog/LinkBillList.vue new file mode 100644 index 0000000..625e572 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/LinkBillList.vue @@ -0,0 +1,463 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/dialog/ManyAccountModal.vue b/smtERP-web/src/views/bill/dialog/ManyAccountModal.vue new file mode 100644 index 0000000..0bcaf73 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/ManyAccountModal.vue @@ -0,0 +1,196 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/dialog/QuickEditModal.vue b/smtERP-web/src/views/bill/dialog/QuickEditModal.vue new file mode 100644 index 0000000..c0eb723 --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/QuickEditModal.vue @@ -0,0 +1,81 @@ +NEW_FILE_CODE + + + diff --git a/smtERP-web/src/views/bill/dialog/WaitBillList.vue b/smtERP-web/src/views/bill/dialog/WaitBillList.vue new file mode 100644 index 0000000..2fa52bd --- /dev/null +++ b/smtERP-web/src/views/bill/dialog/WaitBillList.vue @@ -0,0 +1,332 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/mixins/BillListMixin.js b/smtERP-web/src/views/bill/mixins/BillListMixin.js new file mode 100644 index 0000000..a985601 --- /dev/null +++ b/smtERP-web/src/views/bill/mixins/BillListMixin.js @@ -0,0 +1,1112 @@ +import Vue from 'vue' +import { getAction, postAction } from '@/api/manage' +import { FormTypes } from '@/utils/JEditableTableUtil' +import { findBillDetailByNumber, findBySelectSup, findBySelectCus, findBySelectRetail, getUserList, getAccount, + waitBillCount, getCurrentSystemConfig, getPlatformConfigByKey, getPersonByNumType } from '@/api/api' +import { getCheckFlag, getFormatDate, getMpListShort, getPrevMonthFormatDate } from '@/utils/util' +import moment from 'moment' +import pick from 'lodash.pick' + +export const BillListMixin = { + data () { + return { + /* 原始审核是否开启 */ + checkFlag: true, + /* 单据Excel是否开启 */ + isShowExcel: false, + //以销定购的场景开关 + purchaseBySaleFlag: false, + //商品价格含税开关 + materialPriceTaxFlag: false, + setTimeFlag: null, + waitTotal: 0, + dateFormat: 'YYYY-MM-DD', + billExcelUrl: '', + defaultDepotId: '', + supList: [], + cusList: [], + retailList: [], + salesManList: [], + userList: [], + accountList: [], + // 实际索引 + settingDataIndex: [], + // 存储展开的行key + expandedRowKeys: [], + // 实际列 + columns:[], + // 明细表头 + detailColumns:[], + // 列定义 + defDetailColumns: [], + retailOutColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '序列号', dataIndex: 'snList', width:300}, + { title: '批号', dataIndex: 'batchNumber'}, + { title: '有效期', dataIndex: 'expirationDate'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + retailBackColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '序列号', dataIndex: 'snList', width:300}, + { title: '批号', dataIndex: 'batchNumber'}, + { title: '有效期', dataIndex: 'expirationDate'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + purchaseApplyColumns: [ + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '单位', dataIndex: 'unit'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '已采购', dataIndex: 'finishNumber'}, + { title: '备注', dataIndex: 'remark'} + ], + purchaseOrderColumns: [ + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '已采购', dataIndex: 'finishNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '税率(%)', dataIndex: 'taxRate'}, + { title: '税额', dataIndex: 'taxMoney'}, + { title: '价税合计', dataIndex: 'taxLastMoney'}, + { title: '备注', dataIndex: 'remark'} + ], + purchaseInColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '序列号', dataIndex: 'snList', width:300}, + { title: '批号', dataIndex: 'batchNumber'}, + { title: '有效期', dataIndex: 'expirationDate'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '已入库', dataIndex: 'finishNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '税率(%)', dataIndex: 'taxRate'}, + { title: '税额', dataIndex: 'taxMoney'}, + { title: '价税合计', dataIndex: 'taxLastMoney'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + purchaseBackColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '序列号', dataIndex: 'snList', width:300}, + { title: '批号', dataIndex: 'batchNumber'}, + { title: '有效期', dataIndex: 'expirationDate'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '已出库', dataIndex: 'finishNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '税率(%)', dataIndex: 'taxRate'}, + { title: '税额', dataIndex: 'taxMoney'}, + { title: '价税合计', dataIndex: 'taxLastMoney'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + saleOrderColumns: [ + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '已采购', dataIndex: 'finishPurchaseNumber'}, + { title: '已销售', dataIndex: 'finishNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '税率(%)', dataIndex: 'taxRate'}, + { title: '税额', dataIndex: 'taxMoney'}, + { title: '价税合计', dataIndex: 'taxLastMoney'}, + { title: '备注', dataIndex: 'remark'} + ], + saleOutColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '序列号', dataIndex: 'snList', width:300}, + { title: '批号', dataIndex: 'batchNumber'}, + { title: '有效期', dataIndex: 'expirationDate'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '已出库', dataIndex: 'finishNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '税率(%)', dataIndex: 'taxRate'}, + { title: '税额', dataIndex: 'taxMoney'}, + { title: '价税合计', dataIndex: 'taxLastMoney'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + saleBackColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '序列号', dataIndex: 'snList', width:300}, + { title: '批号', dataIndex: 'batchNumber'}, + { title: '有效期', dataIndex: 'expirationDate'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '已入库', dataIndex: 'finishNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '税率(%)', dataIndex: 'taxRate'}, + { title: '税额', dataIndex: 'taxMoney'}, + { title: '价税合计', dataIndex: 'taxLastMoney'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + otherInColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '序列号', dataIndex: 'snList', width:300}, + { title: '批号', dataIndex: 'batchNumber'}, + { title: '有效期', dataIndex: 'expirationDate'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + otherOutColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '序列号', dataIndex: 'snList', width:300}, + { title: '批号', dataIndex: 'batchNumber'}, + { title: '有效期', dataIndex: 'expirationDate'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + allocationOutColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '调入仓库', dataIndex: 'anotherDepotName'}, + { title: '单位', dataIndex: 'unit'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '重量', dataIndex: 'weight'}, + { title: '仓位货架', dataIndex: 'position'}, + { title: '备注', dataIndex: 'remark'} + ], + assembleColumns: [ + { title: '商品类型', dataIndex: 'mType'}, + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '备注', dataIndex: 'remark'} + ], + disassembleColumns: [ + { title: '商品类型', dataIndex: 'mType'}, + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '颜色', dataIndex: 'color'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '备注', dataIndex: 'remark'} + ], + stockCheckReplayColumns: [ + { title: '仓库名称', dataIndex: 'depotName'}, + { title: '条码', dataIndex: 'barCode'}, + { title: '名称', dataIndex: 'name'}, + { title: '规格', dataIndex: 'standard'}, + { title: '型号', dataIndex: 'model'}, + { title: '品牌', dataIndex: 'brand'}, + { title: '制造商', dataIndex: 'mfrs'}, + { title: '扩展1', dataIndex: 'otherField1'}, + { title: '扩展2', dataIndex: 'otherField2'}, + { title: '扩展3', dataIndex: 'otherField3'}, + { title: '库存', dataIndex: 'stock'}, + { title: '单位', dataIndex: 'unit'}, + { title: '多属性', dataIndex: 'sku'}, + { title: '数量', dataIndex: 'operNumber'}, + { title: '单价', dataIndex: 'unitPrice'}, + { title: '金额', dataIndex: 'allPrice'}, + { title: '备注', dataIndex: 'remark'} + ], + quickBtn: { + retailBack: '', + purchaseOrder: '', + purchaseIn: '', + purchaseBack: '', + saleOut: '', + saleBack: '' + }, + queryParam: { + beginTime: getPrevMonthFormatDate(3), + endTime: getFormatDate(), + createTimeRange: [moment(getPrevMonthFormatDate(3)), moment(getFormatDate())] + } + } + }, + computed: { + importExcelUrl: function(){ + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + }, + isBatchDelEnabled: function () { + for (let i = 0; i < this.selectedRowKeys.length; i++) { + if (!this.selectionRows[i].actionsEnabled.delete) { + return false; + } + } + return true; + } + }, + created() { + this.initColumnsSetting() + this.isShowExcel = Vue.ls.get('isShowExcel'); + }, + methods: { + loadData(arg) { + // 重置展开状态 + this.expandedRowKeys = [] + if (arg === 1) { + this.ipagination.current = 1 + } + let params = this.getQueryParams() //查询条件 + this.loading = true + getAction(this.url.list, params).then((res) => { + if (res.code===200) { + this.dataSource = res.data.rows + this.ipagination.total = res.data.total + this.tableAddTotalRow(this.columns, this.dataSource) + } else if(res.code===510){ + this.$message.warning(res.data) + } else { + this.$message.warning(res.data.message) + } + this.loading = false + this.onClearSelected() + }) + }, + myHandleAdd() { + this.$refs.modalForm.action = "add"; + if(this.btnEnableList.indexOf(2)===-1) { + this.$refs.modalForm.isCanCheck = false + } + this.handleAdd(); + }, + myHandleCopyAdd(record) { + this.$refs.modalForm.action = "copyAdd"; + if(this.btnEnableList.indexOf(2)===-1) { + this.$refs.modalForm.isCanCheck = false + } + //复制单据的时候需要移除关联单据的相关信息 + record.linkNumber = '' + record.billType = '' + record.deposit = '' + this.$refs.modalForm.edit(record); + this.$refs.modalForm.title = "复制新增"; + this.$refs.modalForm.disableSubmit = false; + //开启明细的编辑模式 + this.$refs.modalForm.rowCanEdit = true + let columnIndex = record.subType === '组装单' || record.subType === '拆卸单'?2:1 + this.$refs.modalForm.materialTable.columns[columnIndex].type = FormTypes.popupJsh + }, + myHandleEdit(record) { + if(record.status === '0') { + this.$refs.modalForm.action = "edit"; + if(this.btnEnableList.indexOf(2)===-1) { + this.$refs.modalForm.isCanCheck = false + } + //查询单条单据信息 + findBillDetailByNumber({ number: record.number }).then((res) => { + if (res && res.code === 200) { + let item = res.data + this.handleEdit(item) + } + }) + } else { + this.$message.warning("抱歉,只有未审核的单据才能编辑,请先进行反审核!") + } + }, + myHandleDelete(record) { + if(record.status === '0') { + this.handleDelete(record.id) + } else { + this.$message.warning("抱歉,只有未审核的单据才能删除,请先进行反审核!") + } + }, + myHandleDetail(record, type, prefixNo) { + if(this.btnEnableList.indexOf(7)===-1) { + this.$refs.modalDetail.isCanBackCheck = false + } + this.handleDetail(record, type, prefixNo); + }, + batchForceClose: function () { + if(!this.url.forceCloseBatch){ + this.$message.error("请设置url.forceCloseBatch属性!") + return + } + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!') + } else { + let ids = ""; + for (let a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + "," + } + let that = this + this.$confirm({ + title: "确认强制结单", + content: "是否强制结单选中数据?", + onOk: function () { + that.loading = true + postAction(that.url.forceCloseBatch, {ids: ids}).then((res) => { + if(res.code === 200){ + that.loadData() + } else { + that.$message.warning(res.data.message) + } + }).finally(() => { + that.loading = false + }); + } + }); + } + }, + batchForceClosePurchase: function () { + if(!this.url.forceClosePurchaseBatch){ + this.$message.error("请设置url.forceClosePurchaseBatch属性!") + return + } + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!') + } else { + let ids = ""; + for (let a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + "," + } + let that = this + this.$confirm({ + title: "确认强制结单(以销定购)", + content: "是否强制结单选中数据?", + onOk: function () { + that.loading = true + postAction(that.url.forceClosePurchaseBatch, {ids: ids}).then((res) => { + if(res.code === 200){ + that.loadData() + } else { + that.$message.warning(res.data.message) + } + }).finally(() => { + that.loading = false + }); + } + }); + } + }, + //批量修正最终欠款 + batchSetLastDebt() { + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!') + } else { + let ids = ""; + for (let a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + "," + } + let that = this + this.$confirm({ + title: "确认修正欠款", + content: "是否对选的数据修正欠款?", + onOk: function () { + that.loading = true + postAction(that.url.batchSetLastDebtUrl, {ids: ids}).then((res) => { + if(res.code === 200){ + that.loadData() + that.$message.success('修正欠款完成') + } else { + that.$message.warning(res.data.message) + } + }).finally(() => { + that.loading = false + }); + } + }); + } + }, + //批量修正剩余订金 + batchSetLastDeposit() { + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!') + } else { + let ids = ""; + for (let a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + "," + } + let that = this + this.$confirm({ + title: "确认修正剩余订金", + content: "是否对选的数据修正剩余订金?", + onOk: function () { + that.loading = true + postAction(that.url.batchSetLastDepositUrl, {ids: ids}).then((res) => { + if(res.code === 200){ + that.loadData() + that.$message.success('修正剩余订金完成') + } else { + that.$message.warning(res.data.message) + } + }).finally(() => { + that.loading = false + }); + } + }); + } + }, + handleApprove(record) { + this.$refs.modalForm.action = "approve"; + this.$refs.modalForm.edit(record); + this.$refs.modalForm.title = "审核"; + }, + searchReset() { + this.queryParam = { + type: this.queryParam.type, + subType: this.queryParam.subType, + beginTime: getPrevMonthFormatDate(3), + endTime: getFormatDate(), + createTimeRange: [moment(getPrevMonthFormatDate(3)), moment(getFormatDate())] + } + this.loadData(1) + }, + onDateChange: function (value, dateString) { + this.queryParam.beginTime=dateString[0] + this.queryParam.endTime=dateString[1] + if(dateString[0] && dateString[1]) { + this.queryParam.createTimeRange = [moment(dateString[0]), moment(dateString[1])] + } + }, + onDateOk(value) { + console.log(value); + }, + initSystemConfig() { + getCurrentSystemConfig().then((res) => { + if(res.code === 200 && res.data){ + let multiBillType = res.data.multiBillType + let multiLevelApprovalFlag = res.data.multiLevelApprovalFlag + this.checkFlag = getCheckFlag(multiBillType, multiLevelApprovalFlag, this.prefixNo) + this.purchaseBySaleFlag = res.data.purchaseBySaleFlag==='1'?true:false + this.inOutManageFlag = res.data.inOutManageFlag==='1'?true:false + this.materialPriceTaxFlag = res.data.materialPriceTaxFlag==='1'?true:false + } + }) + getPlatformConfigByKey({ "platformKey": "bill_excel_url" }).then((res) => { + if (res && res.code === 200) { + if(res.data.platformValue) { + this.billExcelUrl = res.data.platformValue + } + } + }) + }, + initSupplier() { + let that = this; + findBySelectSup({limit:1}).then((res)=>{ + if(res) { + that.supList = res; + } + }); + }, + initCustomer() { + let that = this; + findBySelectCus({limit:1}).then((res)=>{ + if(res) { + that.cusList = res; + } + }); + }, + initRetail() { + let that = this; + findBySelectRetail({limit:1}).then((res)=>{ + if(res) { + that.retailList = res; + } + }); + }, + initSalesman() { + let that = this; + getPersonByNumType({type:1}).then((res)=>{ + if(res) { + that.salesManList = res; + } + }); + }, + getDepotData() { + getAction('/depot/findDepotByCurrentUser').then((res)=>{ + if(res.code === 200){ + this.depotList = res.data; + }else{ + this.$message.info(res.data); + } + }) + }, + initUser() { + getUserList({}).then((res)=>{ + if(res) { + this.userList = res; + } + }); + }, + initAccount() { + getAccount({}).then((res)=>{ + if(res && res.code === 200) { + this.accountList = res.data.accountList + } + }) + }, + initWaitBillCount(type, subType, status) { + waitBillCount({search: { + type: type, subType: subType, status: status + }}).then((res)=>{ + if(res && res.code === 200) { + this.waitTotal = res.data.total + } + }) + }, + //加载初始化列 + initColumnsSetting(){ + let columnsStr = Vue.ls.get(this.prefixNo) + if(columnsStr && columnsStr.indexOf(',')>-1) { + this.settingDataIndex = columnsStr.split(',') + } else { + this.settingDataIndex = this.defDataIndex + } + this.columns = this.defColumns.filter(item => { + if(this.purchaseBySaleFlag) { + //以销定购-开启 + return this.settingDataIndex.includes(item.dataIndex) + } else { + //以销定购-关闭 + if(this.prefixNo === 'CGDD') { + //采购订单只显示除了关联订单之外的列 + if(item.dataIndex!=='linkNumber') { + return this.settingDataIndex.includes(item.dataIndex) + } + } else { + return this.settingDataIndex.includes(item.dataIndex) + } + } + }) + }, + //加载快捷按钮:转入库、转出库等 + initQuickBtn() { + let btnStrList = Vue.ls.get('winBtnStrList') //按钮功能列表 JSON字符串 + if (btnStrList) { + for (let i = 0; i < btnStrList.length; i++) { + if (btnStrList[i].btnStr) { + this.quickBtn.retailBack = btnStrList[i].url === '/bill/retail_back'?btnStrList[i].btnStr:this.quickBtn.retailBack + this.quickBtn.purchaseOrder = btnStrList[i].url === '/bill/purchase_order'?btnStrList[i].btnStr:this.quickBtn.purchaseOrder + this.quickBtn.purchaseIn = btnStrList[i].url === '/bill/purchase_in'?btnStrList[i].btnStr:this.quickBtn.purchaseIn + this.quickBtn.purchaseBack = btnStrList[i].url === '/bill/purchase_back'?btnStrList[i].btnStr:this.quickBtn.purchaseBack + this.quickBtn.saleOut = btnStrList[i].url === '/bill/sale_out'?btnStrList[i].btnStr:this.quickBtn.saleOut + this.quickBtn.saleBack = btnStrList[i].url === '/bill/sale_back'?btnStrList[i].btnStr:this.quickBtn.saleBack + } + } + } + }, + handleSearchSupplier(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectSup({key: value, limit:1}).then((res) => { + if(res) { + that.supList = res; + } + }) + },500) + }, + handleSearchCustomer(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectCus({key: value, limit:1}).then((res) => { + if(res) { + that.cusList = res; + } + }) + },500) + }, + handleSearchRetail(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectRetail({key: value, limit:1}).then((res) => { + if(res) { + that.retailList = res; + } + }) + },500) + }, + handleQuickEdit() { + if (this.selectedRowKeys.length === 0) { + this.$message.warning('请选择一条数据') + return + } + if (this.selectedRowKeys.length > 1) { + this.$message.warning('只能选择一条数据进行快捷编辑') + return + } + const record = this.dataSource.find(item => item.id === this.selectedRowKeys[0]) + if (record) { + this.$refs.quickEditModal.show(record) + } + }, + getDepotByCurrentUser() { + getAction('/depot/findDepotByCurrentUser').then((res) => { + if (res.code === 200) { + if (res.data.length === 1) { + this.defaultDepotId = res.data[0].id+'' + } else { + for (let i = 0; i < res.data.length; i++) { + if(res.data[i].isDefault){ + this.defaultDepotId = res.data[i].id+'' + } + } + } + } + }) + }, + //跳转到下一个单据页面 + transferBill(type, quickBtnStr) { + if (this.selectedRowKeys.length <= 0) { + this.$message.warning('请选择一条记录!') + } else if (this.selectedRowKeys.length > 1) { + this.$message.warning('只能选择一条记录!') + } else { + let info = this.selectionRows[0] + if(info.status === '1' || info.status === '3') { + let linkType = 'basic' + if(type === '转采购订单-以销定购') { + linkType = 'purchase' + } else { + linkType = 'basic' + } + let param = { + headerId: info.id, + mpList : '', + linkType: linkType + } + getAction('/depotItem/getDetailList', param).then((res) => { + if (res.code === 200) { + let deposit = info.changeAmount - info.finishDeposit + let transferParam = { + list: res.data.rows, + number: info.number, + organId: info.organId, + discount: info.discount, + deposit: deposit, + remark: info.remark, + accountId: info.accountId, + salesMan: info.salesMan + } + if(type === '转采购订单-以销定购') { + let list = transferParam.list + list.forEach(item => { + item.finishNumber = item.finishPurchaseNumber + }) + this.$refs.transferPurchaseModalForm.action = "add" + this.$refs.transferPurchaseModalForm.transferParam = transferParam + this.$refs.transferPurchaseModalForm.defaultDepotId = this.defaultDepotId + this.$refs.transferPurchaseModalForm.add() + this.$refs.transferPurchaseModalForm.title = type + if(quickBtnStr.indexOf(2)===-1) { + this.$refs.transferPurchaseModalForm.isCanCheck = false + } + } else { + this.$refs.transferModalForm.action = "add" + this.$refs.transferModalForm.transferParam = transferParam + this.$refs.transferModalForm.defaultDepotId = this.defaultDepotId + this.$refs.transferModalForm.materialPriceTaxFlag = this.materialPriceTaxFlag + this.$refs.transferModalForm.add() + this.$refs.transferModalForm.title = type + if(quickBtnStr.indexOf(2)===-1) { + this.$refs.transferModalForm.isCanCheck = false + } + } + } + }) + } else { + this.$message.warning('该状态不能' + type + '!') + } + } + }, + //列设置更改事件 + onColChange (checkedValues) { + this.columns = this.defColumns.filter(item => { + return checkedValues.includes(item.dataIndex) + }) + let columnsStr = checkedValues.join() + Vue.ls.set(this.prefixNo, columnsStr) + }, + //恢复默认 + handleRestDefault() { + Vue.ls.remove(this.prefixNo) + this.initColumnsSetting() + }, + //导出单据 + handleExport() { + let search = this.getQueryParams().search + this.$refs.billExcelIframe.show(this.model, this.billExcelUrl + '?search=' + search + '&type=1', 150) + this.$refs.billExcelIframe.title = "确认导出" + }, + // 展开/折叠行 + onExpand(expanded, record) { + if (expanded) { + this.expandedRowKeys = [...new Set([...this.expandedRowKeys, record.id])] + let showType = 'basic' + if(record.subType === '采购' || record.subType === '采购退货' || record.subType === '销售' || record.subType === '销售退货') { + if (record.status === '3') { + showType = 'other' + } + } else { + if (record.status === '3') { + showType = 'basic' + } else if (record.purchaseStatus === '3') { + showType = 'purchase' + } + } + let params = { + headerId: record.id, + mpList: getMpListShort(Vue.ls.get('materialPropertyList')), //扩展属性 + linkType: showType, + isReadOnly: '0' + } + let url = '/depotItem/getDetailList' + this.requestSubTableData(record, url, params) + } else { + this.expandedRowKeys = this.expandedRowKeys.filter(key => key !== record.id) + } + }, + requestSubTableData(record, url, params, success) { + record.loading = true + getAction(url, params).then(res => { + if(res && res.code === 200){ + record.childrens = res.data.rows + this.initSetting(record, record.childrens) + record.loading = false + typeof success === 'function' ? success(res) : '' + } + }).finally(() => { + record.loading = false + }) + }, + initSetting(record, ds) { + if (this.prefixNo === 'LSCK') { + this.defDetailColumns = this.retailOutColumns + } else if (this.prefixNo === 'LSTH') { + this.defDetailColumns = this.retailBackColumns + } else if (this.prefixNo === 'QGD') { + this.defDetailColumns = this.purchaseApplyColumns + } else if (this.prefixNo === 'CGDD') { + this.defDetailColumns = this.purchaseOrderColumns + } else if (this.prefixNo === 'CGRK') { + this.defDetailColumns = this.purchaseInColumns + } else if (this.prefixNo === 'CGTH') { + this.defDetailColumns = this.purchaseBackColumns + } else if (this.prefixNo === 'XSDD') { + this.defDetailColumns = this.saleOrderColumns + } else if (this.prefixNo === 'XSCK') { + this.defDetailColumns = this.saleOutColumns + } else if (this.prefixNo === 'XSTH') { + this.defDetailColumns = this.saleBackColumns + } else if (this.prefixNo === 'QTRK') { + this.defDetailColumns = this.otherInColumns + } else if (this.prefixNo === 'QTCK') { + this.defDetailColumns = this.otherOutColumns + } else if (this.prefixNo === 'DBCK') { + this.defDetailColumns = this.allocationOutColumns + } else if (this.prefixNo === 'ZZD') { + this.defDetailColumns = this.assembleColumns + } else if (this.prefixNo === 'CXD') { + this.defDetailColumns = this.disassembleColumns + } else if (this.prefixNo === 'PDFP') { + this.defDetailColumns = this.stockCheckReplayColumns + } + //动态替换扩展字段 + this.handleChangeOtherField() + //判断序列号、批号、有效期、多属性、重量、仓位货架、扩展、备注等是否有值 + let needAddkeywords = [] + for (let i = 0; i < ds.length; i++) { + if(ds[i].snList) { + needAddkeywords.push('snList') + } + if(ds[i].batchNumber) { + needAddkeywords.push('batchNumber') + } + if(ds[i].expirationDate) { + needAddkeywords.push('expirationDate') + } + if(ds[i].sku) { + needAddkeywords.push('sku') + } + if(ds[i].weight) { + needAddkeywords.push('weight') + } + if(ds[i].position) { + needAddkeywords.push('position') + } + if(ds[i].brand) { + needAddkeywords.push('brand') + } + if(ds[i].mfrs) { + needAddkeywords.push('mfrs') + } + if(ds[i].otherField1) { + needAddkeywords.push('otherField1') + } + if(ds[i].otherField2) { + needAddkeywords.push('otherField2') + } + if(ds[i].otherField3) { + needAddkeywords.push('otherField3') + } + if(ds[i].taxRate) { + needAddkeywords.push('taxRate') + } + if(ds[i].remark) { + needAddkeywords.push('remark') + } + } + let currentCol = [] + if(record.status === '3' || record.purchaseStatus === '3') { + //部分采购|部分销售的时候显示全部列 + for(let i=0; i-1) { + let info = {} + info.title = this.defDetailColumns[i].title + info.dataIndex = this.defDetailColumns[i].dataIndex + if(this.defDetailColumns[i].width) { + info.width = this.defDetailColumns[i].width + } + currentCol.push(info) + } + } + this.detailColumns = currentCol + } + }, + //动态替换扩展字段 + handleChangeOtherField() { + let mpStr = getMpListShort(Vue.ls.get('materialPropertyList')) + if(mpStr) { + let mpArr = mpStr.split(',') + if(mpArr.length ===3) { + for (let i = 0; i < this.defDetailColumns.length; i++) { + if(this.defDetailColumns[i].dataIndex === 'otherField1') { + this.defDetailColumns[i].title = mpArr[0] + } + if(this.defDetailColumns[i].dataIndex === 'otherField2') { + this.defDetailColumns[i].title = mpArr[1] + } + if(this.defDetailColumns[i].dataIndex === 'otherField3') { + this.defDetailColumns[i].title = mpArr[2] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/smtERP-web/src/views/bill/mixins/BillModalMixin.js b/smtERP-web/src/views/bill/mixins/BillModalMixin.js new file mode 100644 index 0000000..4d9ff28 --- /dev/null +++ b/smtERP-web/src/views/bill/mixins/BillModalMixin.js @@ -0,0 +1,1281 @@ +import { FormTypes, getListData } from '@/utils/JEditableTableUtil' +import { findBySelectCus, findBySelectRetail, findBySelectSup, findStockByDepotAndBarCode, getAccount, + getBatchNumberList, getCurrentSystemConfig, getMaterialByBarCode, getPersonByNumType, getPlatformConfigByKey } from '@/api/api' +import { getAction } from '@/api/manage' +import { getCheckFlag, getMpListShort, getNowFormatDateTime } from '@/utils/util' +import { USER_INFO } from '@/store/mutation-types' +import Vue from 'vue' + +export const BillModalMixin = { + data() { + return { + action: '', + manyAccountBtnStatus: false, + supList: [], + cusList: [], + retailList: [], + personList: { + options: [], + value: '' + }, + currentSelectDepotId: '', + transferParam: {}, + defaultDepotId: '', + depotList: [], + accountList: [], + accountIdList: [], + accountMoneyList: [], + billUnitPirce: '', + scanBarCode: '', + scanStatus: true, + billStatus: '0', + minWidth: 1100, + isCanCheck: true, + quickBtn: { + vendor: false, + customer: false, + member: false, + account: false, + depot: false + }, + billPrintFlag: false, + /* 是否显示打印按钮 */ + isShowPrintBtn: true, + /* 原始审核是否开启 */ + checkFlag: true, + //零收付款的场景开关 + zeroChangeAmountFlag: false, + //商品价格含税开关 + materialPriceTaxFlag: false, + setTimeFlag: null, + validatorRules:{ + price:{ + rules: [ + { pattern: /^(([0-9][0-9]*)|([0]\.\d{0,4}|[0-9][0-9]*\.\d{0,4}))$/, message: '金额格式不正确!' } + ] + } + }, + spans: { + labelCol1: {span: 2}, + wrapperCol1: {span: 22}, + //1_5: 分为1.5列(相当于占了2/3) + labelCol1_5: { span: 3 }, + wrapperCol1_5: { span: 21 }, + labelCol2: {span: 4}, + wrapperCol2: {span: 20}, + labelCol3: {span: 6}, + wrapperCol3: {span: 18}, + labelCol6: {span: 12}, + wrapperCol6: {span: 12} + }, + }; + }, + created () { + let realScreenWidth = window.screen.width + this.width = realScreenWidth<1500?'1200px':'1550px' + this.minWidth = realScreenWidth<1500?1150:1500 + }, + mounted() { + document.getElementById(this.prefixNo).addEventListener('keydown', this.handleOkKey) + }, + beforeDestroy() { + document.getElementById(this.prefixNo).removeEventListener('keydown', this.handleOkKey) + }, + computed: { + readOnly: function() { + return this.action !== "add" && this.action !== "edit"; + } + }, + methods: { + // 快捷键 + handleOkKey(e) { + const key = window.event.keyCode ? window.event.keyCode : window.event.which + if (key === 83 && e.ctrlKey) { + //保存 CTRL+S + this.handleOkOnly() + e.preventDefault() + } + }, + addInit(amountNum) { + getAction('/sequence/buildNumber').then((res) => { + if (res && res.code === 200) { + this.model.defaultNumber = amountNum + res.data.defaultNumber + this.form.setFieldsValue({'number':amountNum + res.data.defaultNumber}) + } + }) + this.$nextTick(() => { + this.form.setFieldsValue({'operTime':getNowFormatDateTime(), 'discount': 0, + 'discountMoney': 0, 'discountLastMoney': 0, 'otherMoney': 0, 'changeAmount': 0, 'debt': 0}) + }) + this.$nextTick(() => { + getAccount({}).then((res)=>{ + if(res && res.code === 200) { + for (const item of res.data.accountList) { + if(item.isDefault){ + this.form.setFieldsValue({'accountId': item.id}) + } + } + //数据从前一个页面带过来的情况 + if(this.transferParam && this.transferParam.accountId) { + this.form.setFieldsValue({'accountId': this.transferParam.accountId}) + } + } + }) + }) + this.accountIdList = [] + this.accountMoneyList = [] + this.manyAccountBtnStatus = false + }, + copyAddInit(amountNum) { + getAction('/sequence/buildNumber').then((res) => { + if (res && res.code === 200) { + this.form.setFieldsValue({'number':amountNum + res.data.defaultNumber}) + } + }) + this.$nextTick(() => { + this.form.setFieldsValue({'operTime':getNowFormatDateTime()}) + }) + }, + /** 查询某个tab的数据 */ + requestSubTableData(url, params, tab, success) { + tab.loading = true + getAction(url, params).then(res => { + if(res && res.code === 200){ + tab.dataSource = res.data.rows + for(let i=0; i { + tab.loading = false + }) + }, + //改变字段的状态,1-显示 0-隐藏 + changeFormTypes(columns, key, type) { + for(let i=0; i { + if(res.code === 200 && res.data){ + let multiBillType = res.data.multiBillType + let multiLevelApprovalFlag = res.data.multiLevelApprovalFlag + this.checkFlag = getCheckFlag(multiBillType, multiLevelApprovalFlag, this.prefixNo) + this.purchaseBySaleFlag = res.data.purchaseBySaleFlag==='1'?true:false + this.inOutManageFlag = res.data.inOutManageFlag==='1'?true:false + this.zeroChangeAmountFlag = res.data.zeroChangeAmountFlag==='1'?true:false + this.materialPriceTaxFlag = res.data.materialPriceTaxFlag==='1'?true:false + if(res.data.auditPrintFlag==='1') { + if(this.model.status === '0' || this.model.status === '9') { + this.isShowPrintBtn = false + } else { + this.isShowPrintBtn = true + } + } else { + this.isShowPrintBtn = true + } + } + }) + }, + initSupplier(isChecked) { + let that = this; + findBySelectSup({organId: this.model.organId, limit:1}).then((res)=>{ + if(res) { + that.supList = res + if(isChecked && res.length>0) { + that.form.setFieldsValue({'organId': res[0].id}) + } + } + }); + }, + initCustomer(isChecked) { + let that = this; + findBySelectCus({organId: this.model.organId, limit:1}).then((res)=>{ + if(res) { + that.cusList = res + if(isChecked && res.length>0) { + that.form.setFieldsValue({'organId': res[0].id}) + } + } + }); + }, + initRetail(isChecked) { + let that = this; + findBySelectRetail({organId: this.model.organId, limit:1}).then((res)=>{ + if(res) { + that.retailList = res + if(isChecked && res.length>0) { + that.form.setFieldsValue({'organId': res[0].id}) + } + } + }); + }, + initSalesman() { + let that = this; + getPersonByNumType({type:1}).then((res)=>{ + if(res) { + that.personList.options = res; + } + }); + }, + initDepot() { + let that = this; + getAction('/depot/findDepotByCurrentUser').then((res) => { + if(res.code === 200){ + let arr = res.data + for(let item of that.materialTable.columns){ + if(item.key == 'depotId' || item.key == 'anotherDepotId') { + item.options = [] + for(let i=0; i{ + if(res && res.code === 200) { + let list = res.data.accountList + let lastId = list.length>0?list[0].id:'' + getCurrentSystemConfig().then((res) => { + if (res.code === 200 && res.data) { + let multiAccountFlag = res.data.multiAccountFlag + if(multiAccountFlag==='1') { + list.splice(0,0,{id: 0, name: '多账户'}) + } + } + that.accountList = list + if(isChecked) { + that.form.setFieldsValue({'accountId': lastId}) + } + }) + } + }) + }, + handleSearchSupplier(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectSup({key: value, limit:1}).then((res) => { + if(res) { + that.supList = res; + } + }) + },500) + }, + handleSearchCustomer(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectCus({key: value, limit:1}).then((res) => { + if(res) { + that.cusList = res; + } + }) + },500) + }, + handleSearchRetail(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectRetail({key: value, limit:1}).then((res) => { + if(res) { + that.retailList = res; + } + }) + },500) + }, + handleManyAccount(){ + this.selectAccount(0) + }, + selectAccount(value){ + if(value === 0) { //多账户 + this.$refs.manyAccountModalForm.edit(this.accountIdList, this.accountMoneyList) + this.$refs.manyAccountModalForm.title = "多账户结算" + this.manyAccountBtnStatus = true + } else { + this.accountIdList = [] + this.accountMoneyList = [] + this.manyAccountBtnStatus = false + } + }, + manyAccountModalFormOk(idList, moneyList, allPrice) { + this.accountIdList = idList + this.accountMoneyList = moneyList + let discountLastMoney = this.form.getFieldValue('discountLastMoney')-0 + let otherMoney = this.form.getFieldValue('otherMoney')?this.form.getFieldValue('otherMoney')-0:0 + let debt = (discountLastMoney + otherMoney - allPrice).toFixed(2) + this.$nextTick(() => { + this.form.setFieldsValue({'changeAmount':allPrice, 'debt':debt}) + }); + }, + addSupplier() { + this.$refs.vendorModalForm.add(); + this.$refs.vendorModalForm.title = "新增供应商"; + this.$refs.vendorModalForm.disableSubmit = false; + }, + addCustomer() { + this.$refs.customerModalForm.add(); + this.$refs.customerModalForm.title = "新增客户(提醒:如果找不到新添加的客户,请到用户管理检查是否分配了该客户权限)"; + this.$refs.customerModalForm.disableSubmit = false; + }, + addMember() { + this.$refs.memberModalForm.add(); + this.$refs.memberModalForm.title = "新增会员"; + this.$refs.memberModalForm.disableSubmit = false; + }, + handleBatchSetDepot() { + this.$refs.batchSetDepotModalForm.add(); + this.$refs.batchSetDepotModalForm.title = "批量切换仓库"; + this.$refs.batchSetDepotModalForm.disableSubmit = false; + }, + addDepot() { + this.$refs.depotModalForm.add(); + this.$refs.depotModalForm.title = "新增仓库"; + this.$refs.depotModalForm.disableSubmit = false; + }, + addAccount() { + this.$refs.accountModalForm.add(); + this.$refs.accountModalForm.title = "新增结算账户"; + this.$refs.accountModalForm.disableSubmit = false; + }, + vendorModalFormOk() { + this.initSupplier(1) + }, + customerModalFormOk() { + this.initCustomer(1) + if (this.$refs.customerTreeSelect) { + this.$refs.customerTreeSelect.reload() + } + }, + memberModalFormOk() { + this.initRetail(1) + }, + batchSetDepotModalFormOk(depotId) { + this.getAllTable().then(tables => { + return getListData(this.form, tables) + }).then(allValues => { + //获取单据明细列表信息 + let detailArr = allValues.tablesValue[0].values + let barCodes = '' + for(let detail of detailArr){ + barCodes += detail.barCode + ',' + } + if(barCodes) { + barCodes = barCodes.substring(0, barCodes.length-1) + } + let param = { + barCode: barCodes, + organId: this.form.getFieldValue('organId'), + depotId: depotId, + mpList: getMpListShort(Vue.ls.get('materialPropertyList')), //扩展属性 + prefixNo: this.prefixNo + } + getMaterialByBarCode(param).then((res) => { + if (res && res.code === 200) { + let mList = res.data + //构造新的列表数组,用于存放单据明细信息 + let newDetailArr = [] + if(mList && mList.length) { + for (let i = 0; i < detailArr.length; i++) { + let item = detailArr[i] + item.depotId = depotId + for (let j = 0; j < mList.length; j++) { + if(mList[j].mBarCode === item.barCode) { + item.stock = mList[j].stock + } + } + newDetailArr.push(item) + } + } else { + for (let i = 0; i < detailArr.length; i++) { + let item = detailArr[i] + item.depotId = depotId + newDetailArr.push(item) + } + } + this.materialTable.dataSource = newDetailArr + } + }) + }) + }, + depotModalFormOk() { + this.initDepot() + }, + accountModalFormOk() { + this.initAccount(1) + }, + workflowModalFormOk() { + this.close() + }, + onAdded(event) { + let that = this + const { row, target } = event + target.setValues([{rowKey: row.id, values: {operNumber:0}}]) + //自动下滑到最后一行 + setTimeout(function(){ + that.$refs.materialDataTable.resetScrollTop((target.rows.length+1)*that.$refs.materialDataTable.rowHeight) + },1000) + if(this.currentSelectDepotId) { + //如果单据选择过仓库,则直接从当前选择的仓库加载 + target.setValues([{rowKey: row.id, values: {depotId: this.currentSelectDepotId}}]) + } else { + getAction('/depot/findDepotByCurrentUser').then((res) => { + if (res.code === 200) { + let arr = res.data + if(arr.length===1) { + target.setValues([{rowKey: row.id, values: {depotId: arr[0].id+''}}]) + } else { + for (let i = 0; i < arr.length; i++) { + if(arr[i].isDefault){ + target.setValues([{rowKey: row.id, values: {depotId: arr[i].id+''}}]) + } + } + } + } + }) + } + }, + //单元值改变一个字符就触发一次 + onValueChange(event) { + let that = this + const { type, row, column, value, target } = event + let param,snList,batchNumber,operNumber,unitPrice,allPrice,taxRate,taxMoney,taxLastMoney + switch(column.key) { + case "depotId": + that.currentSelectDepotId = row.depotId + if(row.barCode){ + that.getStockByDepotBarCode(row, target) + } + break; + case "barCode": + param = { + barCode: value, + organId: this.form.getFieldValue('organId'), + mpList: getMpListShort(Vue.ls.get('materialPropertyList')), //扩展属性 + prefixNo: this.prefixNo + } + getMaterialByBarCode(param).then((res) => { + if (res && res.code === 200) { + let mList = res.data + if (value.indexOf(',') > -1) { + //多个条码 + this.$refs.materialDataTable.getValues((error, values) => { + values.pop() //移除最后一行数据 + let mArr = values + for (let i = 0; i < mList.length; i++) { + let mInfo = mList[i] + this.changeColumnShow(mInfo) + let mObj = this.parseInfoToObj(mInfo) + mObj.depotId = mInfo.depotId + mObj.stock = mInfo.stock + mObj.snList = '' + mObj.batchNumber = '' + mObj.expirationDate = '' + mArr.push(mObj) + } + let allPriceTotal = 0 + let taxLastMoneyTotal = 0 + for (let j = 0; j < mArr.length; j++) { + allPriceTotal += mArr[j].allPrice-0 + taxLastMoneyTotal += mArr[j].taxLastMoney-0 + //组合和拆分单据给商品类型进行重新赋值 + if(j===0) { + mArr[0].mType = '组合件' + } else { + mArr[j].mType = '普通子件' + } + } + this.materialTable.dataSource = mArr + if(this.prefixNo ==='LSCK' || this.prefixNo ==='LSTH') { + target.statisticsColumns.allPrice = allPriceTotal + } else { + target.statisticsColumns.taxLastMoney = taxLastMoneyTotal + } + that.autoChangePrice(target) + //强制渲染 + target.$forceUpdate() + }) + } else { + //单个条码 + let depotIdSelected = this.prefixNo !== 'CGDD' && this.prefixNo !== 'XSDD'? row.depotId: '' + findStockByDepotAndBarCode({ depotId: depotIdSelected, barCode: row.barCode }).then((res) => { + if (res && res.code === 200) { + let mArr = [] + let mInfo = mList[0] + this.changeColumnShow(mInfo) + let mInfoEx = this.parseInfoToObj(mInfo) + mInfoEx.stock = res.data.stock + mInfoEx.snList = '' + mInfoEx.batchNumber = '' + mInfoEx.expirationDate = '' + let mObj = { + rowKey: row.id, + values: mInfoEx + } + mArr.push(mObj) + target.setValues(mArr); + target.recalcAllStatisticsColumns() + that.autoChangePrice(target) + target.autoSelectBySpecialKey('operNumber', row.orderNum) + //强制渲染 + target.$forceUpdate() + } + }) + } + } + }); + break; + case "snList": + snList = value + if(snList) { + snList = snList.replaceAll(',',',') + let snArr = snList.split(',') + operNumber = snArr.length + taxRate = row.taxRate-0 //税率 + unitPrice = row.unitPrice-0 //单价 + allPrice = (unitPrice*operNumber).toFixed(2)-0 + if(this.materialPriceTaxFlag) { + let realAllPrice = (allPrice/(1+taxRate*0.01)).toFixed(2)-0 + taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + taxLastMoney = allPrice + } else { + taxMoney =((taxRate*0.01)*allPrice).toFixed(2)-0 + taxLastMoney = (allPrice + taxMoney).toFixed(2)-0 + } + target.setValues([{rowKey: row.id, values: {operNumber: operNumber, allPrice: allPrice, taxMoney: taxMoney, taxLastMoney: taxLastMoney}}]) + target.recalcAllStatisticsColumns() + that.autoChangePrice(target) + } + break; + case "batchNumber": + //只针对零售出库、销售出库、采购退货、其它出库 + if(this.prefixNo === 'LSCK' || this.prefixNo === 'XSCK' || this.prefixNo === 'CGTH' || this.prefixNo === 'QTCK') { + batchNumber = value + let depotItemId = '' + if(this.model.id) { + //只有在保存之后的编辑页面下才获取明细id + let rowId = row.id + if(rowId.length<=19) { + depotItemId = rowId-0 + } + } + getBatchNumberList({name:'', depotItemId: depotItemId, depotId: row.depotId, barCode: row.barCode, batchNumber: batchNumber}).then((res) => { + if (res && res.code === 200) { + if(res.data && res.data.rows) { + let info = res.data.rows[0] + let preNumber = row.preNumber-0 //原数量 + let finishNumber = row.finishNumber-0 //已出库 + let totalNum = info.totalNum-0 //批次数量 + if(preNumber > 0) { + if(totalNum > preNumber - finishNumber) { + operNumber = preNumber - finishNumber + } else { + operNumber = totalNum + } + } else { + operNumber = totalNum + } + taxRate = row.taxRate-0 //税率 + unitPrice = row.unitPrice-0 //单价 + allPrice = (unitPrice*operNumber).toFixed(2)-0 + if(this.materialPriceTaxFlag) { + let realAllPrice = (allPrice/(1+taxRate*0.01)).toFixed(2)-0 + taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + taxLastMoney = allPrice + } else { + taxMoney =((taxRate*0.01)*allPrice).toFixed(2)-0 + taxLastMoney = (allPrice + taxMoney).toFixed(2)-0 + } + target.setValues([{rowKey: row.id, values: {expirationDate: info.expirationDateStr, operNumber: operNumber, + allPrice: allPrice, taxMoney: taxMoney, taxLastMoney: taxLastMoney}}]) + target.recalcAllStatisticsColumns() + that.autoChangePrice(target) + } + } + }) + } + break; + case "operNumber": + operNumber = value-0 + taxRate = row.taxRate-0 //税率 + unitPrice = row.unitPrice-0 //单价 + allPrice = (unitPrice*operNumber).toFixed(2)-0 + if(this.materialPriceTaxFlag) { + let realAllPrice = (allPrice/(1+taxRate*0.01)).toFixed(2)-0 + taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + taxLastMoney = allPrice + } else { + taxMoney =((taxRate*0.01)*allPrice).toFixed(2)-0 + taxLastMoney = (allPrice + taxMoney).toFixed(2)-0 + } + target.setValues([{rowKey: row.id, values: {allPrice: allPrice, taxMoney: taxMoney, taxLastMoney: taxLastMoney}}]) + target.recalcAllStatisticsColumns() + that.autoChangePrice(target) + break; + case "unitPrice": + operNumber = row.operNumber-0 //数量 + unitPrice = value-0 //单价 + taxRate = row.taxRate-0 //税率 + allPrice = (unitPrice*operNumber).toFixed(2)-0 + if(this.materialPriceTaxFlag) { + let realAllPrice = (allPrice/(1+taxRate*0.01)).toFixed(2)-0 + taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + taxLastMoney = allPrice + } else { + taxMoney =((taxRate*0.01)*allPrice).toFixed(2)-0 + taxLastMoney = (allPrice + taxMoney).toFixed(2)-0 + } + target.setValues([{rowKey: row.id, values: {allPrice: allPrice, taxMoney: taxMoney, taxLastMoney: taxLastMoney}}]) + target.recalcAllStatisticsColumns() + that.autoChangePrice(target) + break; + case "allPrice": + operNumber = row.operNumber-0 //数量 + taxRate = row.taxRate-0 //税率 + allPrice = value-0 + unitPrice = (allPrice/operNumber).toFixed(4)-0 //单价 + if(this.materialPriceTaxFlag) { + let realAllPrice = (allPrice/(1+taxRate*0.01)).toFixed(2)-0 + taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + taxLastMoney = allPrice + } else { + taxMoney =((taxRate*0.01)*allPrice).toFixed(2)-0 + taxLastMoney = (allPrice + taxMoney).toFixed(2)-0 + } + target.setValues([{rowKey: row.id, values: {unitPrice: unitPrice, taxMoney: taxMoney, taxLastMoney: taxLastMoney}}]) + target.recalcAllStatisticsColumns() + that.autoChangePrice(target) + break; + case "taxRate": + operNumber = row.operNumber-0 //数量 + allPrice = row.allPrice-0 + unitPrice = row.unitPrice-0 + taxRate = value-0 //税率 + if(this.materialPriceTaxFlag) { + let realAllPrice = (allPrice/(1+taxRate*0.01)).toFixed(2)-0 + taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + taxLastMoney = allPrice + } else { + taxMoney =((taxRate*0.01)*allPrice).toFixed(2)-0 + taxLastMoney = (allPrice + taxMoney).toFixed(2)-0 + } + target.setValues([{rowKey: row.id, values: {taxMoney: taxMoney, taxLastMoney: taxLastMoney}}]) + target.recalcAllStatisticsColumns() + that.autoChangePrice(target) + break; + case "taxLastMoney": + operNumber = row.operNumber-0 //数量 + taxLastMoney = value-0 + taxRate = row.taxRate-0 //税率 + if(this.materialPriceTaxFlag) { + allPrice = taxLastMoney + unitPrice = (taxLastMoney/operNumber).toFixed(4)-0 + if(taxRate) { + let realAllPrice = (allPrice/(1+taxRate*0.01)).toFixed(2)-0 + taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + } else { + //税率为0的情况,特殊处理 + taxMoney = 0 + } + } else { + if(taxRate) { + unitPrice = (taxLastMoney/operNumber/(1+taxRate*0.01)).toFixed(4)-0 + allPrice = (unitPrice*operNumber).toFixed(2)-0 + taxMoney =(taxLastMoney-allPrice).toFixed(2)-0 + } else { + //税率为0的情况,特殊处理 + allPrice = taxLastMoney + unitPrice = (allPrice/operNumber).toFixed(4)-0 //单价 + taxMoney = 0 + } + } + target.setValues([{rowKey: row.id, values: {unitPrice: unitPrice, allPrice: allPrice, taxMoney: taxMoney}}]) + target.recalcAllStatisticsColumns() + that.autoChangePrice(target) + break; + } + }, + //转为商品对象 + parseInfoToObj(mInfo) { + return { + barCode: mInfo.mBarCode, + name: mInfo.name, + standard: mInfo.standard, + model: mInfo.model, + color: mInfo.color, + brand: mInfo.brand, + mfrs: mInfo.mfrs, + otherField1: mInfo.otherField1, + otherField2: mInfo.otherField2, + otherField3: mInfo.otherField3, + unit: mInfo.commodityUnit, + sku: mInfo.sku, + operNumber: 1, + unitPrice: mInfo.billPrice, + allPrice: mInfo.billPrice, + taxRate: mInfo.taxRate, + taxMoney: mInfo.taxMoney, + taxLastMoney: mInfo.taxLastMoney + } + }, + //使得型号、颜色、扩展信息、sku等为隐藏 + changeColumnHide() { + this.changeFormTypes(this.materialTable.columns, 'model', 0) + this.changeFormTypes(this.materialTable.columns, 'color', 0) + this.changeFormTypes(this.materialTable.columns, 'brand', 0) + this.changeFormTypes(this.materialTable.columns, 'mfrs', 0) + this.changeFormTypes(this.materialTable.columns, 'otherField1', 0) + this.changeFormTypes(this.materialTable.columns, 'otherField2', 0) + this.changeFormTypes(this.materialTable.columns, 'otherField3', 0) + this.changeFormTypes(this.materialTable.columns, 'sku', 0) + }, + //使得sku、序列号、批号、到期日等为显示 + changeColumnShow(info) { + if(info.model) { + this.changeFormTypes(this.materialTable.columns, 'model', 1) + } + if(info.color) { + this.changeFormTypes(this.materialTable.columns, 'color', 1) + } + if(info.brand) { + this.changeFormTypes(this.materialTable.columns, 'brand', 1) + } + if(info.mfrs) { + this.changeFormTypes(this.materialTable.columns, 'mfrs', 1) + } + if(info.otherField1) { + this.changeFormTypes(this.materialTable.columns, 'otherField1', 1) + } + if(info.otherField2) { + this.changeFormTypes(this.materialTable.columns, 'otherField2', 1) + } + if(info.otherField3) { + this.changeFormTypes(this.materialTable.columns, 'otherField3', 1) + } + if(info.sku) { + this.changeFormTypes(this.materialTable.columns, 'sku', 1) + } + if(info.enableSerialNumber === "1") { + //如果开启出入库管理,并且类型等于采购、采购退货、销售、销售退货,则跳过 + if(this.inOutManageFlag && (this.prefixNo === 'CGRK' || this.prefixNo === 'CGTH' || this.prefixNo === 'XSCK' || this.prefixNo === 'XSTH')) { + //跳过 + } else { + this.changeFormTypes(this.materialTable.columns, 'snList', 1) + } + } + if(info.enableBatchNumber === "1") { + //如果开启出入库管理,并且类型等于采购、采购退货、销售、销售退货,则跳过 + if(this.inOutManageFlag && (this.prefixNo === 'CGRK' || this.prefixNo === 'CGTH' || this.prefixNo === 'XSCK' || this.prefixNo === 'XSTH')) { + //跳过 + } else { + this.changeFormTypes(this.materialTable.columns, 'batchNumber', 1) + this.changeFormTypes(this.materialTable.columns, 'expirationDate', 1) + } + } + }, + //删除一行或多行的时候触发 + onDeleted(ids, target) { + target.recalcAllStatisticsColumns() + this.autoChangePrice(target) + }, + //根据仓库和条码查询库存 + getStockByDepotBarCode(row, target){ + findStockByDepotAndBarCode({ depotId: row.depotId, barCode: row.barCode }).then((res) => { + if (res && res.code === 200) { + target.setValues([{rowKey: row.id, values: {stock: res.data.stock}}]) + target.recalcAllStatisticsColumns() + } + }) + }, + //改变优惠、本次付款、欠款的值 + autoChangePrice(target) { + let allTaxLastMoney = target.statisticsColumns.taxLastMoney-0 + let discount = this.form.getFieldValue('discount')-0 + let otherMoney = this.form.getFieldValue('otherMoney')?this.form.getFieldValue('otherMoney')-0:0 + let deposit = this.form.getFieldValue('deposit') + let discountMoney = (discount*0.01*allTaxLastMoney).toFixed(2)-0 + let discountLastMoney = (allTaxLastMoney-discountMoney).toFixed(2)-0 + let changeAmountNew = (discountLastMoney + otherMoney).toFixed(2)-0 + if(deposit) { + changeAmountNew = (changeAmountNew - deposit).toFixed(2)-0 + } + this.$nextTick(() => { + changeAmountNew = this.prefixNo === 'CGDD' || this.prefixNo === 'XSDD'?0:changeAmountNew + this.form.setFieldsValue({'discount':discount,'discountMoney':discountMoney,'discountLastMoney':discountLastMoney, + 'changeAmount':changeAmountNew,'debt':0}) + this.setZeroChangeAmount() + }); + }, + //改变优惠率 + onChangeDiscount(e) { + const value = e.target.value-0 + let otherMoney = this.form.getFieldValue('otherMoney')?this.form.getFieldValue('otherMoney')-0:0 + let deposit = this.form.getFieldValue('deposit') + let allTaxLastMoney = this.$refs.materialDataTable.statisticsColumns.taxLastMoney-0 + let discountMoneyNew = (allTaxLastMoney*value*0.01).toFixed(2)-0 + let discountLastMoneyNew = (allTaxLastMoney - discountMoneyNew).toFixed(2)-0 + let changeAmountNew = (discountLastMoneyNew + otherMoney).toFixed(2)-0 + if(deposit) { + changeAmountNew = (changeAmountNew - deposit).toFixed(2)-0 + } + this.$nextTick(() => { + changeAmountNew = this.prefixNo === 'CGDD' || this.prefixNo === 'XSDD'?0:changeAmountNew + this.form.setFieldsValue({'discountMoney':discountMoneyNew,'discountLastMoney':discountLastMoneyNew, + 'changeAmount':changeAmountNew,'debt':0}) + this.setZeroChangeAmount() + }); + }, + //改变付款优惠 + onChangeDiscountMoney(e) { + const value = e.target.value-0 + let otherMoney = this.form.getFieldValue('otherMoney')?this.form.getFieldValue('otherMoney')-0:0 + let deposit = this.form.getFieldValue('deposit') + let allTaxLastMoney = this.$refs.materialDataTable.statisticsColumns.taxLastMoney-0 + let discountNew = (value/allTaxLastMoney*100).toFixed(2)-0 + let discountLastMoneyNew = (allTaxLastMoney - value).toFixed(2)-0 + let changeAmountNew = (discountLastMoneyNew + otherMoney).toFixed(2)-0 + if(deposit) { + changeAmountNew = (changeAmountNew - deposit).toFixed(2)-0 + } + this.$nextTick(() => { + changeAmountNew = this.prefixNo === 'CGDD' || this.prefixNo === 'XSDD'?0:changeAmountNew + this.form.setFieldsValue({'discount':discountNew,'discountLastMoney':discountLastMoneyNew, + 'changeAmount':changeAmountNew,'debt':0}) + this.setZeroChangeAmount() + }); + }, + //其它费用 + onChangeOtherMoney(e) { + const value = e.target.value-0 + let discountLastMoney = this.form.getFieldValue('discountLastMoney')-0 + let deposit = this.form.getFieldValue('deposit') + let changeAmountNew = (discountLastMoney + value).toFixed(2)-0 + if(deposit) { + changeAmountNew = (changeAmountNew - deposit).toFixed(2)-0 + } + this.$nextTick(() => { + this.form.setFieldsValue({'changeAmount':changeAmountNew, 'debt':0}) + this.setZeroChangeAmount() + }); + }, + //改变扣除订金 + onChangeDeposit(e){ + const value = e.target.value-0 + let discountLastMoney = this.form.getFieldValue('discountLastMoney')-0 + let otherMoney = this.form.getFieldValue('otherMoney')?this.form.getFieldValue('otherMoney')-0:0 + let changeAmountNew = (discountLastMoney + otherMoney).toFixed(2)-0 + if(value) { + changeAmountNew = (changeAmountNew - value).toFixed(2)-0 + } + this.$nextTick(() => { + this.form.setFieldsValue({'changeAmount':changeAmountNew, 'debt':0}) + this.setZeroChangeAmount() + }); + }, + //改变本次付款 + onChangeChangeAmount(e) { + const value = e.target.value-0 + let discountLastMoney = this.form.getFieldValue('discountLastMoney')-0 + let otherMoney = this.form.getFieldValue('otherMoney')?this.form.getFieldValue('otherMoney')-0:0 + let deposit = this.form.getFieldValue('deposit') + let debtNew = (discountLastMoney + otherMoney - value).toFixed(2)-0 + if(deposit) { + debtNew = (debtNew - deposit).toFixed(2)-0 + } + this.$nextTick(() => { + this.form.setFieldsValue({'debt':debtNew}) + }); + }, + //切换客户信息改变商品单价 + handleOrganChange(value) { + let organId = value + this.getAllTable().then(tables => { + return getListData(this.form, tables) + }).then(allValues => { + let detailArr = allValues.tablesValue[0].values + let barCodeStr = '' + for(let detail of detailArr){ + if(detail.barCode) { + barCodeStr += detail.barCode + ',' + } + } + if(barCodeStr) { + let param = { + barCode: barCodeStr, + organId: organId, + mpList: getMpListShort(Vue.ls.get('materialPropertyList')), //扩展属性 + prefixNo: this.prefixNo + } + getMaterialByBarCode(param).then((res) => { + if (res && res.code === 200) { + let allLastMoney = 0 + let allTaxLastMoney = 0 + //获取单据明细列表信息 + let detailArr = allValues.tablesValue[0].values + //构造新的列表数组,用于存放单据明细信息 + let newDetailArr = [] + for(let detail of detailArr){ + if(detail.barCode) { + //如果条码重复,就在给原来的数量加1 + let mList = res.data + for (let i = 0; i < mList.length; i++) { + if(detail.barCode === mList[i].mBarCode) { + //由于改变了商品单价,需要同时更新相关金额和价税合计 + let taxRate = detail.taxRate-0 //税率 + detail.unitPrice = mList[i].billPrice-0 //单价 + detail.allPrice = (detail.unitPrice*detail.operNumber).toFixed(2)-0 + if(this.materialPriceTaxFlag) { + let realAllPrice = (detail.allPrice/(1+taxRate*0.01)).toFixed(2)-0 + detail.taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + detail.taxLastMoney = detail.allPrice + } else { + detail.taxMoney = ((taxRate*0.01)*detail.allPrice).toFixed(2)-0 + detail.taxLastMoney = (detail.allPrice + detail.taxMoney).toFixed(2)-0 + } + } + } + newDetailArr.push(detail) + } + } + this.materialTable.dataSource = newDetailArr + //更新优惠后金额、本次付款等信息 + for(let newDetail of newDetailArr){ + allLastMoney = allLastMoney + (newDetail.allPrice-0) + allTaxLastMoney = allTaxLastMoney + (newDetail.taxLastMoney-0) + } + let discount = this.form.getFieldValue('discount')-0 + let otherMoney = this.form.getFieldValue('otherMoney')?this.form.getFieldValue('otherMoney')-0:0 + let deposit = this.form.getFieldValue('deposit') + let discountMoney = (discount*0.01*allTaxLastMoney).toFixed(2)-0 + let discountLastMoney = (allTaxLastMoney-discountMoney).toFixed(2)-0 + let changeAmountNew = (discountLastMoney + otherMoney).toFixed(2)-0 + if(deposit) { + changeAmountNew = (changeAmountNew - deposit).toFixed(2)-0 + } + this.$nextTick(() => { + changeAmountNew = this.prefixNo === 'XSDD'?0:changeAmountNew + this.form.setFieldsValue({'discount':discount,'discountMoney':discountMoney,'discountLastMoney':discountLastMoney, + 'changeAmount':changeAmountNew,'debt':0}) + this.setZeroChangeAmount() + }); + } + }) + } + }) + }, + //切换收付款的金额为0 + setZeroChangeAmount() { + if(this.prefixNo === 'CGRK'||this.prefixNo === 'CGTH'||this.prefixNo === 'XSCK'||this.prefixNo === 'XSTH') { + if(this.zeroChangeAmountFlag) { + let oldChangeAmount = this.form.getFieldValue('changeAmount')-0 + this.form.setFieldsValue({'changeAmount':0, 'debt':oldChangeAmount}) + } + } + }, + scanEnter() { + this.scanStatus = false + this.$nextTick(() => { + this.$refs.scanBarCode.focus() + }) + }, + //扫码之后回车 + scanPressEnter() { + let that = this + if(this.scanBarCode) { + this.getAllTable().then(tables => { + return getListData(this.form, tables) + }).then(allValues => { + let param = { + barCode: this.scanBarCode.trim(), + organId: this.form.getFieldValue('organId'), + mpList: getMpListShort(Vue.ls.get('materialPropertyList')), //扩展属性 + prefixNo: this.prefixNo + } + getMaterialByBarCode(param).then((res) => { + if (res && res.code === 200) { + let hasFinished = false + let allLastMoney = 0 + let allTaxLastMoney = 0 + //获取单据明细列表信息 + let detailArr = allValues.tablesValue[0].values + //构造新的列表数组,用于存放单据明细信息 + let newDetailArr = [] + let hasAdd = false + for(let detail of detailArr){ + if(detail.barCode) { + //如果扫码结果和条码重复,就在给原来的数量加1 + if(detail.barCode === this.scanBarCode.trim() && !hasAdd) { + detail.operNumber = (detail.operNumber-0)+1 + //由于改变了商品数量,需要同时更新相关金额和价税合计 + let taxRate = detail.taxRate-0 //税率 + let unitPrice = detail.unitPrice-0 //单价 + detail.allPrice = (unitPrice*detail.operNumber).toFixed(2)-0 + if(this.materialPriceTaxFlag) { + let realAllPrice = (detail.allPrice/(1+taxRate*0.01)).toFixed(2)-0 + detail.taxMoney = (realAllPrice*taxRate*0.01).toFixed(2)-0 + detail.taxLastMoney = detail.allPrice + } else { + detail.taxMoney = ((taxRate*0.01)*detail.allPrice).toFixed(2)-0 + detail.taxLastMoney = (detail.allPrice + detail.taxMoney).toFixed(2)-0 + } + hasFinished = true + hasAdd = true + } + //如果扫码结果和序列号重复,就直接跳过 + if(detail.snList === this.scanBarCode.trim()) { + this.$message.warning('抱歉,已经扫描过该序列号!'); + hasFinished = true + } + newDetailArr.push(detail) + } + } + if(!hasFinished) { + //将扫码的条码对应的商品加入列表 + let item = {} + let mList = res.data + if(mList && mList.length>0) { + let mInfo = mList[0] + this.changeColumnShow(mInfo) + item.depotId = mInfo.depotId + item.barCode = mInfo.mBarCode + item.name = mInfo.name + item.standard = mInfo.standard + item.model = mInfo.model + item.color = mInfo.color + item.materialOther = mInfo.materialOther + item.stock = mInfo.stock + item.unit = mInfo.commodityUnit + item.sku = mInfo.sku + if(mInfo.mBarCode !== this.scanBarCode.trim()) { + if(this.prefixNo ==='LSCK' || this.prefixNo ==='CGTH' || this.prefixNo ==='XSCK' || this.prefixNo ==='QTCK') { + //此时给序列号赋值 + item.snList = this.scanBarCode.trim() + } + } + item.operNumber = 1 + item.unitPrice = mInfo.billPrice + item.allPrice = mInfo.billPrice + item.taxRate = mInfo.taxRate + item.taxMoney = mInfo.taxMoney + item.taxLastMoney = mInfo.taxLastMoney + newDetailArr.push(item) + } else { + this.$message.warning('抱歉,此条码不存在商品信息!'); + } + } + //组合和拆分单据给商品类型进行重新赋值 + for(let i=0; i< newDetailArr.length; i++) { + if(i===0) { + newDetailArr[0].mType = '组合件' + } else { + newDetailArr[i].mType = '普通子件' + } + } + this.materialTable.dataSource = newDetailArr + //更新优惠后金额、本次付款等信息 + for(let newDetail of newDetailArr){ + allLastMoney = allLastMoney + (newDetail.allPrice-0) + allTaxLastMoney = allTaxLastMoney + (newDetail.taxLastMoney-0) + } + let discount = this.form.getFieldValue('discount')-0 + let otherMoney = this.form.getFieldValue('otherMoney')?this.form.getFieldValue('otherMoney')-0:0 + let deposit = this.form.getFieldValue('deposit') + let discountMoney = (discount*0.01*allTaxLastMoney).toFixed(2)-0 + let discountLastMoney = (allTaxLastMoney-discountMoney).toFixed(2)-0 + let changeAmountNew = (discountLastMoney + otherMoney).toFixed(2)-0 + if(deposit) { + changeAmountNew = (changeAmountNew - deposit).toFixed(2)-0 + } + if(this.prefixNo === 'LSCK' || this.prefixNo === 'LSTH') { + this.$nextTick(() => { + this.form.setFieldsValue({'changeAmount':allLastMoney,'getAmount':allLastMoney,'backAmount':0}) + }); + } else { + this.$nextTick(() => { + changeAmountNew = this.prefixNo === 'CGDD' || this.prefixNo === 'XSDD'?0:changeAmountNew + this.form.setFieldsValue({'discount':discount,'discountMoney':discountMoney,'discountLastMoney':discountLastMoney, + 'changeAmount':changeAmountNew,'debt':0}) + }); + } + //置空扫码的内容 + this.scanBarCode = '' + this.$refs.scanBarCode.focus() + //自动下滑到最后一行 + setTimeout(function(){ + that.$refs.materialDataTable.resetScrollTop((newDetailArr.length+1)*that.$refs.materialDataTable.rowHeight) + },1000) + } + }) + }) + } + }, + stopScan() { + this.scanStatus = true + this.scanBarCode = '' + }, + onImport(prefixNo) { + this.$refs.importItemModalForm.add(prefixNo); + }, + importItemModalFormOk(data) { + this.materialTable.dataSource = data + this.$nextTick(() => { + let discountLastMoney = 0 + for (let i = 0; i < data.length; i++) { + discountLastMoney += data[i].taxLastMoney + this.changeColumnShow(data[i]) + } + let changeAmount = 0 + let debt = 0 + if(this.prefixNo === 'CGRK' || this.prefixNo === 'XSCK') { + if(this.zeroChangeAmountFlag) { + changeAmount = 0 + debt = discountLastMoney + } else { + changeAmount = discountLastMoney + debt = 0 + } + } + this.form.setFieldsValue({'discountLastMoney':discountLastMoney, 'changeAmount':changeAmount, 'debt': debt}) + }); + }, + //保存并审核 + handleOkAndCheck() { + this.billStatus = '1' + this.handleOk() + }, + //仅保存 + handleOkOnly() { + this.billStatus = '0' + this.handleOk() + }, + //发起流程 + handleWorkflow() { + if(this.model && this.model.number) { + getPlatformConfigByKey({ "platformKey": "send_workflow_url" }).then((res) => { + if (res && res.code === 200) { + let sendWorkflowUrl = res.data.platformValue + '&no=' + this.model.number + '&type=1' + this.$refs.modalWorkflow.show(this.model, sendWorkflowUrl, this.model.number, 1, 320) + this.$refs.modalWorkflow.title = "发起流程" + } + }) + } else { + this.$message.warning('请先保存单据后再提交流程!'); + } + }, + //三联打印新版 + handlePrintPro(billType) { + if(this.model.id) { + getPlatformConfigByKey({"platformKey": "bill_print_pro_url"}).then((res)=> { + if (res && res.code === 200) { + let billPrintUrl = res.data.platformValue + '&no=' + this.model.number + let billPrintHeight = document.documentElement.clientHeight - 260 + this.$refs.modalPrintPro.show(this.model, billPrintUrl, billPrintHeight) + this.$refs.modalPrintPro.title = billType + "-三联打印-新版" + } + }) + } else { + this.$message.warning('请先保存单据后再打印!'); + } + }, + //三联打印 + handlePrint(billType) { + if(this.model.id) { + getPlatformConfigByKey({"platformKey": "bill_print_url"}).then((res)=> { + if (res && res.code === 200) { + let billPrintUrl = res.data.platformValue + '&no=' + this.model.number + let billPrintHeight = this.materialTable.dataSource.length*50 + 600 + this.$refs.modalPrint.show(this.model, billPrintUrl, billPrintHeight) + this.$refs.modalPrint.title = billType + "-三联打印" + } + }) + } else { + this.$message.warning('请先保存单据后再打印!'); + } + }, + //加载平台配置信息 + initPlatform() { + getPlatformConfigByKey({"platformKey": "bill_print_flag"}).then((res)=> { + if (res && res.code === 200) { + this.billPrintFlag = res.data.platformValue==='1'?true:false + } + }) + }, + //加载快捷按钮:供应商、客户、会员、结算账户、仓库 + initQuickBtn() { + let btnStrList = Vue.ls.get('winBtnStrList') //按钮功能列表 JSON字符串 + if (btnStrList) { + for (let i = 0; i < btnStrList.length; i++) { + if (btnStrList[i].btnStr) { + this.quickBtn.vendor = btnStrList[i].url === '/system/vendor'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.vendor + this.quickBtn.customer = btnStrList[i].url === '/system/customer'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.customer + this.quickBtn.member = btnStrList[i].url === '/system/member'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.member + this.quickBtn.account = btnStrList[i].url === '/system/account'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.account + this.quickBtn.depot = btnStrList[i].url === '/system/depot'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.depot + } + } + } + }, + //动态替换扩展字段 + handleChangeOtherField() { + let mpStr = getMpListShort(Vue.ls.get('materialPropertyList')) + if(mpStr) { + let mpArr = mpStr.split(',') + if(mpArr.length ===3) { + for (let i = 0; i < this.materialTable.columns.length; i++) { + if(this.materialTable.columns[i].key === 'otherField1') { + this.materialTable.columns[i].title = mpArr[0] + } + if(this.materialTable.columns[i].key === 'otherField2') { + this.materialTable.columns[i].title = mpArr[1] + } + if(this.materialTable.columns[i].key === 'otherField3') { + this.materialTable.columns[i].title = mpArr[2] + } + } + } + } + } + } +} diff --git a/smtERP-web/src/views/bill/modules/AllocationOutModal.vue b/smtERP-web/src/views/bill/modules/AllocationOutModal.vue new file mode 100644 index 0000000..c2dbd59 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/AllocationOutModal.vue @@ -0,0 +1,274 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/AssembleModal.vue b/smtERP-web/src/views/bill/modules/AssembleModal.vue new file mode 100644 index 0000000..98836e9 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/AssembleModal.vue @@ -0,0 +1,290 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/DeliveryPlanModal.vue b/smtERP-web/src/views/bill/modules/DeliveryPlanModal.vue new file mode 100644 index 0000000..6cb87f0 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/DeliveryPlanModal.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/smtERP-web/src/views/bill/modules/DisassembleModal.vue b/smtERP-web/src/views/bill/modules/DisassembleModal.vue new file mode 100644 index 0000000..226dee9 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/DisassembleModal.vue @@ -0,0 +1,289 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/HeadquartersInModal.vue b/smtERP-web/src/views/bill/modules/HeadquartersInModal.vue new file mode 100644 index 0000000..0cec26e --- /dev/null +++ b/smtERP-web/src/views/bill/modules/HeadquartersInModal.vue @@ -0,0 +1,373 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/OtherInModal.vue b/smtERP-web/src/views/bill/modules/OtherInModal.vue new file mode 100644 index 0000000..b55249f --- /dev/null +++ b/smtERP-web/src/views/bill/modules/OtherInModal.vue @@ -0,0 +1,358 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/bill/modules/OtherOutModal.vue b/smtERP-web/src/views/bill/modules/OtherOutModal.vue new file mode 100644 index 0000000..8a9e559 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/OtherOutModal.vue @@ -0,0 +1,348 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/PurchaseApplyModal.vue b/smtERP-web/src/views/bill/modules/PurchaseApplyModal.vue new file mode 100644 index 0000000..9131a61 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/PurchaseApplyModal.vue @@ -0,0 +1,295 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/PurchaseBackModal.vue b/smtERP-web/src/views/bill/modules/PurchaseBackModal.vue new file mode 100644 index 0000000..95ab7be --- /dev/null +++ b/smtERP-web/src/views/bill/modules/PurchaseBackModal.vue @@ -0,0 +1,485 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/PurchaseInModal.vue b/smtERP-web/src/views/bill/modules/PurchaseInModal.vue new file mode 100644 index 0000000..7b03364 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/PurchaseInModal.vue @@ -0,0 +1,531 @@ + + + + diff --git a/smtERP-web/src/views/bill/modules/PurchaseOrderModal.vue b/smtERP-web/src/views/bill/modules/PurchaseOrderModal.vue new file mode 100644 index 0000000..777ed58 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/PurchaseOrderModal.vue @@ -0,0 +1,476 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/RetailBackModal.vue b/smtERP-web/src/views/bill/modules/RetailBackModal.vue new file mode 100644 index 0000000..a200d8d --- /dev/null +++ b/smtERP-web/src/views/bill/modules/RetailBackModal.vue @@ -0,0 +1,456 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/RetailOutModal.vue b/smtERP-web/src/views/bill/modules/RetailOutModal.vue new file mode 100644 index 0000000..8738f3c --- /dev/null +++ b/smtERP-web/src/views/bill/modules/RetailOutModal.vue @@ -0,0 +1,446 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/SaleBackModal.vue b/smtERP-web/src/views/bill/modules/SaleBackModal.vue new file mode 100644 index 0000000..c534285 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/SaleBackModal.vue @@ -0,0 +1,487 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/SaleOrderModal.vue b/smtERP-web/src/views/bill/modules/SaleOrderModal.vue new file mode 100644 index 0000000..800d996 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/SaleOrderModal.vue @@ -0,0 +1,376 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/SaleOutModal.vue b/smtERP-web/src/views/bill/modules/SaleOutModal.vue new file mode 100644 index 0000000..b36c507 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/SaleOutModal.vue @@ -0,0 +1,541 @@ + + + diff --git a/smtERP-web/src/views/bill/modules/SaleShipmentModal.vue b/smtERP-web/src/views/bill/modules/SaleShipmentModal.vue new file mode 100644 index 0000000..4e60b80 --- /dev/null +++ b/smtERP-web/src/views/bill/modules/SaleShipmentModal.vue @@ -0,0 +1,326 @@ + + + + + diff --git a/smtERP-web/src/views/dashboard/Analysis.vue b/smtERP-web/src/views/dashboard/Analysis.vue new file mode 100644 index 0000000..db54031 --- /dev/null +++ b/smtERP-web/src/views/dashboard/Analysis.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/smtERP-web/src/views/dashboard/IndexChart.vue b/smtERP-web/src/views/dashboard/IndexChart.vue new file mode 100644 index 0000000..431dd52 --- /dev/null +++ b/smtERP-web/src/views/dashboard/IndexChart.vue @@ -0,0 +1,528 @@ + + + + + diff --git a/smtERP-web/src/views/exception/403.vue b/smtERP-web/src/views/exception/403.vue new file mode 100644 index 0000000..e9fc399 --- /dev/null +++ b/smtERP-web/src/views/exception/403.vue @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/exception/404.vue b/smtERP-web/src/views/exception/404.vue new file mode 100644 index 0000000..bc747b5 --- /dev/null +++ b/smtERP-web/src/views/exception/404.vue @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/exception/500.vue b/smtERP-web/src/views/exception/500.vue new file mode 100644 index 0000000..a36cabe --- /dev/null +++ b/smtERP-web/src/views/exception/500.vue @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/exception/ExceptionPage.vue b/smtERP-web/src/views/exception/ExceptionPage.vue new file mode 100644 index 0000000..0550d5e --- /dev/null +++ b/smtERP-web/src/views/exception/ExceptionPage.vue @@ -0,0 +1,88 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/exception/type.js b/smtERP-web/src/views/exception/type.js new file mode 100644 index 0000000..3fc7b1f --- /dev/null +++ b/smtERP-web/src/views/exception/type.js @@ -0,0 +1,19 @@ +const types = { + 403: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg', + title: '403', + desc: '抱歉,你无权访问该页面' + }, + 404: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg', + title: '404', + desc: '抱歉,你访问的页面不存在或仍在开发中' + }, + 500: { + img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg', + title: '500', + desc: '抱歉,服务器出错了' + } +} + +export default types \ No newline at end of file diff --git a/smtERP-web/src/views/financial/AdvanceInList.vue b/smtERP-web/src/views/financial/AdvanceInList.vue new file mode 100644 index 0000000..7e31de8 --- /dev/null +++ b/smtERP-web/src/views/financial/AdvanceInList.vue @@ -0,0 +1,229 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/financial/GiroList.vue b/smtERP-web/src/views/financial/GiroList.vue new file mode 100644 index 0000000..91f8f53 --- /dev/null +++ b/smtERP-web/src/views/financial/GiroList.vue @@ -0,0 +1,218 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/financial/ItemInList.vue b/smtERP-web/src/views/financial/ItemInList.vue new file mode 100644 index 0000000..0b1df51 --- /dev/null +++ b/smtERP-web/src/views/financial/ItemInList.vue @@ -0,0 +1,250 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/financial/ItemOutList.vue b/smtERP-web/src/views/financial/ItemOutList.vue new file mode 100644 index 0000000..5c31419 --- /dev/null +++ b/smtERP-web/src/views/financial/ItemOutList.vue @@ -0,0 +1,250 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/financial/MoneyInList.vue b/smtERP-web/src/views/financial/MoneyInList.vue new file mode 100644 index 0000000..0977510 --- /dev/null +++ b/smtERP-web/src/views/financial/MoneyInList.vue @@ -0,0 +1,266 @@ + + + + diff --git a/smtERP-web/src/views/financial/MoneyOutList.vue b/smtERP-web/src/views/financial/MoneyOutList.vue new file mode 100644 index 0000000..1d8e481 --- /dev/null +++ b/smtERP-web/src/views/financial/MoneyOutList.vue @@ -0,0 +1,274 @@ + + + + diff --git a/smtERP-web/src/views/financial/dialog/DebtBillList.vue b/smtERP-web/src/views/financial/dialog/DebtBillList.vue new file mode 100644 index 0000000..426a575 --- /dev/null +++ b/smtERP-web/src/views/financial/dialog/DebtBillList.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/smtERP-web/src/views/financial/dialog/FinancialDetail.vue b/smtERP-web/src/views/financial/dialog/FinancialDetail.vue new file mode 100644 index 0000000..9eda550 --- /dev/null +++ b/smtERP-web/src/views/financial/dialog/FinancialDetail.vue @@ -0,0 +1,592 @@ + + + + diff --git a/smtERP-web/src/views/financial/dialog/WaitNeedList.vue b/smtERP-web/src/views/financial/dialog/WaitNeedList.vue new file mode 100644 index 0000000..ef4ac55 --- /dev/null +++ b/smtERP-web/src/views/financial/dialog/WaitNeedList.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/smtERP-web/src/views/financial/mixins/FinancialListMixin.js b/smtERP-web/src/views/financial/mixins/FinancialListMixin.js new file mode 100644 index 0000000..555566c --- /dev/null +++ b/smtERP-web/src/views/financial/mixins/FinancialListMixin.js @@ -0,0 +1,264 @@ +import { findFinancialDetailByNumber, findBySelectSup, findBySelectCus, findBySelectOrgan, findBySelectRetail, getUserList, getPersonByType, + getAccount, getCurrentSystemConfig, getPlatformConfigByKey, findInOutItemByParam, getNeedCount } from '@/api/api' +import { getCheckFlag, getFormatDate, getPrevMonthFormatDate } from '@/utils/util' +import Vue from 'vue' +import moment from 'moment' + +export const FinancialListMixin = { + data () { + return { + /* 原始审核是否开启 */ + checkFlag: true, + /* 单据Excel是否开启 */ + isShowExcel: false, + setTimeFlag: null, + billExcelUrl: '', + prefixNo: '', + waitTotal: 0, + supList: [], + cusList: [], + organList: [], + retailList: [], + userList: [], + personList: [], + accountList: [], + inOutItemList: [], + queryParam: { + beginTime: getPrevMonthFormatDate(3), + endTime: getFormatDate(), + createTimeRange: [moment(getPrevMonthFormatDate(3)), moment(getFormatDate())] + } + } + }, + computed: { + importExcelUrl: function(){ + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + }, + + isBatchDelEnabled: function () { + for (let i = 0; i < this.selectedRowKeys.length; i++) { + if (!this.selectionRows[i].actionsEnabled.delete) { + return false; + } + } + return true; + } + }, + created() { + this.isShowExcel = Vue.ls.get('isShowExcel'); + }, + methods: { + myHandleAdd() { + this.$refs.modalForm.action = "add" + this.$refs.modalForm.actionWithOrgan = false + if(this.btnEnableList.indexOf(2)===-1) { + this.$refs.modalForm.isCanCheck = false + } + this.handleAdd(); + }, + myHandleAddWithOrgan() { + this.$refs.modalForm.action = "add" + this.$refs.modalForm.actionWithOrgan = true + if(this.btnEnableList.indexOf(2)===-1) { + this.$refs.modalForm.isCanCheck = false + } + this.handleAdd(); + }, + myHandleEdit(record) { + if(record.status === '0') { + this.$refs.modalForm.action = "edit"; + if(this.btnEnableList.indexOf(2)===-1) { + this.$refs.modalForm.isCanCheck = false + } + //查询单条财务信息 + findFinancialDetailByNumber({ billNo: record.billNo }).then((res) => { + if (res && res.code === 200) { + let item = res.data + this.handleEdit(item) + } + }) + } else { + this.$message.warning("抱歉,只有未审核的单据才能编辑,请先进行反审核!") + } + }, + myHandleDelete(record) { + if(record.status === '0') { + this.handleDelete(record.id) + } else { + this.$message.warning("抱歉,只有未审核的单据才能删除,请先进行反审核!") + } + }, + myHandleDetail(record, type, prefixNo) { + if(this.btnEnableList.indexOf(7)===-1) { + this.$refs.modalDetail.isCanBackCheck = false + } + this.handleDetail(record, type, prefixNo); + }, + handleApprove(record) { + this.$refs.modalForm.action = "approve"; + this.$refs.modalForm.edit(record); + this.$refs.modalForm.title = "审核"; + }, + searchReset() { + this.queryParam = { + type: this.queryParam.type, + beginTime: getPrevMonthFormatDate(3), + endTime: getFormatDate(), + createTimeRange: [moment(getPrevMonthFormatDate(3)), moment(getFormatDate())] + } + this.loadData(1); + }, + initSystemConfig() { + getCurrentSystemConfig().then((res) => { + if(res.code === 200 && res.data){ + let multiBillType = res.data.multiBillType + let multiLevelApprovalFlag = res.data.multiLevelApprovalFlag + this.checkFlag = getCheckFlag(multiBillType, multiLevelApprovalFlag, this.prefixNo) + } + }) + getPlatformConfigByKey({ "platformKey": "bill_excel_url" }).then((res) => { + if (res && res.code === 200) { + if(res.data.platformValue) { + this.billExcelUrl = res.data.platformValue + } + } + }) + }, + initSupplier() { + let that = this; + findBySelectSup({limit:1}).then((res)=>{ + if(res) { + that.supList = res; + } + }); + }, + initCustomer() { + let that = this; + findBySelectCus({limit:1}).then((res)=>{ + if(res) { + that.cusList = res; + } + }); + }, + initOrgan() { + let that = this; + findBySelectOrgan({limit:1}).then((res)=>{ + if(res) { + that.organList = res; + } + }); + }, + initRetail() { + let that = this; + findBySelectRetail({limit:1}).then((res)=>{ + if(res) { + that.retailList = res; + } + }); + }, + initUser() { + getUserList({}).then((res)=>{ + if(res) { + this.userList = res; + } + }); + }, + initPerson() { + let that = this; + getPersonByType({type:'财务员'}).then((res)=>{ + if(res && res.code === 200) { + that.personList = res.data.personList; + } + }) + }, + initAccount() { + getAccount({}).then((res)=>{ + if(res && res.code === 200) { + this.accountList = res.data.accountList + } + }) + }, + initInOutItem(type) { + findInOutItemByParam({type:type}).then((res)=>{ + if(res) { + this.inOutItemList = res + } + }) + }, + initGetNeedCount(type) { + getNeedCount({type: type}).then((res)=>{ + if(res && res.code === 200) { + this.waitTotal = res.data.needCount + } + }) + }, + handleSearchSupplier(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectSup({key: value, limit:1}).then((res) => { + if(res) { + that.supList = res; + } + }) + },500) + }, + handleSearchCustomer(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectCus({key: value, limit:1}).then((res) => { + if(res) { + that.cusList = res; + } + }) + },500) + }, + handleSearchOrgan(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectOrgan({key: value, limit:1}).then((res) => { + if(res) { + that.organList = res; + } + }) + },500) + }, + handleSearchRetail(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectRetail({key: value, limit:1}).then((res) => { + if(res) { + that.retailList = res; + } + }) + },500) + }, + onDateChange: function (value, dateString) { + this.queryParam.beginTime=dateString[0] + this.queryParam.endTime=dateString[1] + if(dateString[0] && dateString[1]) { + this.queryParam.createTimeRange = [moment(dateString[0]), moment(dateString[1])] + } + }, + onDateOk(value) { + console.log(value); + }, + //导出单据 + handleExport() { + let search = this.getQueryParams().search + this.$refs.billExcelIframe.show(this.model, this.billExcelUrl + '?search=' + search + '&type=2', 150) + this.$refs.billExcelIframe.title = "确认导出" + } + } +} \ No newline at end of file diff --git a/smtERP-web/src/views/financial/mixins/FinancialModalMixin.js b/smtERP-web/src/views/financial/mixins/FinancialModalMixin.js new file mode 100644 index 0000000..7a0f3b8 --- /dev/null +++ b/smtERP-web/src/views/financial/mixins/FinancialModalMixin.js @@ -0,0 +1,472 @@ +import {findBySelectSup,findBySelectCus,findBySelectRetail,findBySelectOrgan,getPlatformConfigByKey,getAccount, + getPersonByType,findInOutItemByParam,getCurrentSystemConfig} from '@/api/api' +import { getAction } from '@/api/manage' +import { getCheckFlag, getNowFormatDateTime } from "@/utils/util" +import { USER_INFO } from "@/store/mutation-types" +import Vue from 'vue' + +export const FinancialModalMixin = { + data() { + return { + action: '', + actionWithOrgan: false, + supList: [], + cusList: [], + retailList: [], + organList: [], + personList: [], + accountList: [], + billStatus: '0', + isCanCheck: true, + quickBtn: { + vendor: false, + customer: false, + account: false, + person: false, + inOutItem: false + }, + /* 原始审核是否开启 */ + checkFlag: true, + setTimeFlag: null, + spans: { + labelCol1: {span: 2}, + wrapperCol1: {span: 22}, + //1_5: 分为1.5列(相当于占了2/3) + labelCol1_5: { span: 3 }, + wrapperCol1_5: { span: 21 }, + labelCol2: {span: 4}, + wrapperCol2: {span: 20}, + labelCol3: {span: 6}, + wrapperCol3: {span: 18}, + labelCol6: {span: 12}, + wrapperCol6: {span: 12} + }, + }; + }, + created () { + let realScreenWidth = window.screen.width + this.width = realScreenWidth<1500?'1200px':'1550px' + this.minWidth = realScreenWidth<1500?1150:1500 + }, + mounted() { + document.getElementById(this.prefixNo).addEventListener('keydown', this.handleOkKey) + }, + beforeDestroy() { + document.getElementById(this.prefixNo).removeEventListener('keydown', this.handleOkKey) + }, + computed: { + readOnly: function() { + return this.action !== "add" && this.action !== "edit"; + } + }, + methods: { + // 快捷键 + handleOkKey(e) { + const key = window.event.keyCode ? window.event.keyCode : window.event.which + if (key === 83 && e.ctrlKey) { + //保存 CTRL+S + this.handleOk() + e.preventDefault() + } + }, + addInit(amountNum) { + getAction('/sequence/buildNumber').then((res) => { + if (res && res.code === 200) { + this.form.setFieldsValue({'billNo':amountNum + res.data.defaultNumber}) + } + }) + this.$nextTick(() => { + this.form.setFieldsValue({'billTime':getNowFormatDateTime(), 'totalPrice': 0, 'discountMoney': 0, 'changeAmount': 0}) + }) + this.$nextTick(() => { + getAccount({}).then((res)=>{ + if(res && res.code === 200) { + for (const item of res.data.accountList) { + if(item.isDefault){ + this.form.setFieldsValue({'accountId': item.id}) + } + } + } + }) + }) + }, + initSystemConfig() { + getCurrentSystemConfig().then((res) => { + if(res.code === 200 && res.data){ + let multiBillType = res.data.multiBillType + let multiLevelApprovalFlag = res.data.multiLevelApprovalFlag + this.checkFlag = getCheckFlag(multiBillType, multiLevelApprovalFlag, this.prefixNo) + } + }) + }, + initSupplier() { + let that = this; + findBySelectSup({organId: this.model.organId, limit:1}).then((res)=>{ + if(res) { + that.supList = res; + } + }); + }, + initCustomer() { + let that = this; + findBySelectCus({organId: this.model.organId, limit:1}).then((res)=>{ + if(res) { + that.cusList = res; + } + }); + }, + initOrgan() { + let that = this; + findBySelectOrgan({organId: this.model.organId, limit:1}).then((res)=>{ + if(res) { + that.organList = res; + } + }); + }, + initRetail() { + let that = this; + findBySelectRetail({organId: this.model.organId, limit:1}).then((res)=>{ + if(res) { + that.retailList = res; + } + }); + }, + initPerson() { + let that = this; + getPersonByType({type:'财务员'}).then((res)=>{ + if(res && res.code === 200) { + that.personList = res.data.personList; + } + }) + }, + initInOutItem(type) { + let that = this; + findInOutItemByParam({type:type}).then((res)=>{ + if(res) { + for(let item of that.accountTable.columns){ + if(item.key == 'inOutItemId') { + item.options = [] + for(let i=0; i{ + if(res && res.code === 200) { + that.accountList = res.data.accountList; + } + }) + }, + //账户-用于明细 + initDetailAccount(){ + let that = this; + getAccount({}).then((res)=>{ + if(res && res.code === 200) { + let list = res.data.accountList; + for(let item of that.accountTable.columns){ + if(item.key == 'accountId') { + item.options = [] + for(let i=0; i{ + findBySelectSup({key: value, limit:1}).then((res) => { + if(res) { + that.supList = res; + } + }) + },500) + }, + handleSearchCustomer(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectCus({key: value, limit:1}).then((res) => { + if(res) { + that.cusList = res; + } + }) + },500) + }, + handleSearchOrgan(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectOrgan({key: value, limit:1}).then((res) => { + if(res) { + that.organList = res; + } + }) + },500) + }, + handleSearchRetail(value) { + let that = this + if(this.setTimeFlag != null){ + clearTimeout(this.setTimeFlag); + } + this.setTimeFlag = setTimeout(()=>{ + findBySelectRetail({key: value, limit:1}).then((res) => { + if(res) { + that.retailList = res; + } + }) + },500) + }, + //选择供应商或客户的触发事件 + onChangeOrgan(value) { + this.accountTable.dataSource = [] + }, + addSupplier() { + this.$refs.vendorModalForm.add(); + this.$refs.vendorModalForm.title = "新增"; + this.$refs.vendorModalForm.disableSubmit = false; + }, + addCustomer() { + this.$refs.customerModalForm.add(); + this.$refs.customerModalForm.title = "新增客户(提醒:如果找不到新添加的客户,请到用户管理检查是否分配了该客户权限)"; + this.$refs.customerModalForm.disableSubmit = false; + }, + addAccount() { + this.$refs.accountModalForm.add(); + this.$refs.accountModalForm.title = "新增结算账户"; + this.$refs.accountModalForm.disableSubmit = false; + }, + addPerson() { + this.$refs.personModalForm.add(); + this.$refs.personModalForm.title = "新增经手人"; + this.$refs.personModalForm.disableSubmit = false; + }, + addInOutItem(type) { + this.$refs.inOutItemModalForm.add(type); + this.$refs.inOutItemModalForm.title = "新增收支项目"; + this.$refs.inOutItemModalForm.disableSubmit = false; + }, + vendorModalFormOk() { + this.initSupplier() + }, + customerModalFormOk() { + this.initCustomer() + if (this.$refs.customerTreeSelect) { + this.$refs.customerTreeSelect.reload() + } + }, + accountModalFormOk() { + this.initAccount() + }, + personModalFormOk() { + this.initPerson() + }, + inOutItemModalFormOk(type) { + this.initInOutItem(type) + }, + workflowModalFormOk() { + this.close() + }, + waitNeedListOk(organType, organId, selectBillRows) { + if(organId) { + this.form.setFieldsValue({'organId': organId}) + if(organType === '供应商') { + findBySelectSup({organId: organId, limit:1}).then((res)=> { + this.supList = res && Array.isArray(res) ? res : []; + }) + } else if(organType === '客户') { + findBySelectCus({organId: organId, limit:1}).then((res)=> { + this.cusList = res && Array.isArray(res) ? res : []; + }) + } else if(organType === '会员') { + findBySelectRetail({organId: organId, limit:1}).then((res)=> { + const list = res && Array.isArray(res) ? res : []; + this.cusList = list; + this.supList = list; + }) + } + } + if (selectBillRows && selectBillRows.length > 0) { + this.requestSubTableDataEx(selectBillRows, this.accountTable); + } else { + this.selectBeginNeed(organType) + } + }, + onAdded(event) { + let that = this + const { row, target } = event + //自动下滑到最后一行 + setTimeout(function(){ + that.$refs.accountDataTable.resetScrollTop((target.rows.length+1)*that.$refs.accountDataTable.rowHeight) + },1000) + }, + //删除一行或多行的时候触发 + onDeleted(ids, target) { + target.recalcAllStatisticsColumns() + this.autoChangeAmount(target) + }, + //单元值改变一个字符就触发一次 + onValueChange(event) { + let that = this + const { type, row, column, value, target } = event + switch(column.key) { + case "eachAmount": + target.recalcAllStatisticsColumns() + that.autoChangeAmount(target) + break; + } + }, + //改变本次欠款的值 + autoChangeAmount(target) { + let allEachAmount = target.statisticsColumns.eachAmount-0 + let discountMoney = this.form.getFieldValue('discountMoney')-0 + if(!discountMoney) { + discountMoney = 0 + } + let changeAmount = (allEachAmount-discountMoney).toFixed(2) + this.$nextTick(() => { + this.form.setFieldsValue({'totalPrice':allEachAmount, 'changeAmount':changeAmount}) + }); + }, + //改变优惠金额 + onChangeDiscountMoney(e) { + const value = e.target.value-0 + let totalPrice = this.form.getFieldValue('totalPrice')-0 + let changeAmount = (totalPrice-value).toFixed(2) + this.$nextTick(() => { + this.form.setFieldsValue({'changeAmount':changeAmount}) + }); + }, + //选择欠款单据 + debtBillListOk(selectBillRows) { + if(selectBillRows && selectBillRows.length>0) { + this.requestSubTableDataEx(selectBillRows, this.accountTable); + } + }, + /** 查询某个tab的数据,给明细里面的金额赋值 */ + requestSubTableDataEx(selectBillRows, tab, success) { + tab.loading = true + let listEx = [] + let changeAmount = 0 + for(let i=0; i { + this.form.setFieldsValue({'totalPrice':changeAmount.toFixed(2), 'changeAmount':changeAmount.toFixed(2)}) + }); + typeof success === 'function' ? success(res) : '' + tab.loading = false + }, + //选择期初 + selectBeginNeed(type) { + let that = this + let info = type === '供应商'? '付款':'收款' + let organId = this.form.getFieldValue('organId') + if(organId){ + this.$confirm({ + title: "确认操作", + content: "是否选择期初金额,对期初进行" + info + "?", + onOk: function () { + let listEx = [] + let info = {} + info.billNumber = 'QiChu' + getAction('/supplier/getBeginNeedByOrganId', {'organId': organId}).then((res)=>{ + if(res.code === 200){ + info.needDebt = res.data.needDebt?res.data.needDebt:0 + info.finishDebt = res.data.finishDebt + info.eachAmount = res.data.eachAmount + listEx.push(info) + that.accountTable.dataSource = listEx + let changeAmount = info.eachAmount + if(changeAmount) { + changeAmount = changeAmount.toFixed(2) + } + that.$nextTick(() => { + that.form.setFieldsValue({'totalPrice':changeAmount, 'changeAmount':changeAmount}) + }) + }else{ + that.$message.info(res.data) + } + }) + } + }) + } else { + that.$message.warning('请选择' + type + '!'); + } + }, + //选择-待收款或者待付款 + handleWaitNeed(type) { + this.$refs.waitNeedList.show(type) + }, + //保存并审核 + handleOkAndCheck() { + this.billStatus = '1' + this.handleOk() + }, + //仅保存 + handleOkOnly() { + this.billStatus = '0' + this.handleOk() + }, + //发起流程 + handleWorkflow() { + if(this.model && this.model.billNo) { + getPlatformConfigByKey({ "platformKey": "send_workflow_url" }).then((res) => { + if (res && res.code === 200) { + let sendWorkflowUrl = res.data.platformValue + '&no=' + this.model.billNo + '&type=2' + this.$refs.modalWorkflow.show(this.model, sendWorkflowUrl, this.model.billNo, 2, 320) + this.$refs.modalWorkflow.title = "发起流程" + } + }) + } else { + this.$message.warning('请先保存单据后再提交流程!'); + } + }, + //加载快捷按钮:供应商、客户、结算账户、经手人 + initQuickBtn() { + let btnStrList = Vue.ls.get('winBtnStrList') //按钮功能列表 JSON字符串 + if (btnStrList) { + for (let i = 0; i < btnStrList.length; i++) { + if (btnStrList[i].btnStr) { + this.quickBtn.vendor = btnStrList[i].url === '/system/vendor'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.vendor + this.quickBtn.customer = btnStrList[i].url === '/system/customer'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.customer + this.quickBtn.account = btnStrList[i].url === '/system/account'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.account + this.quickBtn.person = btnStrList[i].url === '/system/person'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.person + this.quickBtn.inOutItem = btnStrList[i].url === '/system/in_out_item'?btnStrList[i].btnStr.indexOf(1)>-1:this.quickBtn.inOutItem + } + } + } + } + } +} diff --git a/smtERP-web/src/views/financial/modules/AdvanceInModal.vue b/smtERP-web/src/views/financial/modules/AdvanceInModal.vue new file mode 100644 index 0000000..0727421 --- /dev/null +++ b/smtERP-web/src/views/financial/modules/AdvanceInModal.vue @@ -0,0 +1,251 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/financial/modules/GiroModal.vue b/smtERP-web/src/views/financial/modules/GiroModal.vue new file mode 100644 index 0000000..a9db43e --- /dev/null +++ b/smtERP-web/src/views/financial/modules/GiroModal.vue @@ -0,0 +1,265 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/financial/modules/ItemInModal.vue b/smtERP-web/src/views/financial/modules/ItemInModal.vue new file mode 100644 index 0000000..c5ae6eb --- /dev/null +++ b/smtERP-web/src/views/financial/modules/ItemInModal.vue @@ -0,0 +1,287 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/financial/modules/ItemOutModal.vue b/smtERP-web/src/views/financial/modules/ItemOutModal.vue new file mode 100644 index 0000000..09c140b --- /dev/null +++ b/smtERP-web/src/views/financial/modules/ItemOutModal.vue @@ -0,0 +1,288 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/financial/modules/MoneyInModal.vue b/smtERP-web/src/views/financial/modules/MoneyInModal.vue new file mode 100644 index 0000000..d5c7786 --- /dev/null +++ b/smtERP-web/src/views/financial/modules/MoneyInModal.vue @@ -0,0 +1,317 @@ + + + diff --git a/smtERP-web/src/views/financial/modules/MoneyOutModal.vue b/smtERP-web/src/views/financial/modules/MoneyOutModal.vue new file mode 100644 index 0000000..5968ed1 --- /dev/null +++ b/smtERP-web/src/views/financial/modules/MoneyOutModal.vue @@ -0,0 +1,333 @@ + + + diff --git a/smtERP-web/src/views/material/MaterialAttributeList.vue b/smtERP-web/src/views/material/MaterialAttributeList.vue new file mode 100644 index 0000000..9d3935d --- /dev/null +++ b/smtERP-web/src/views/material/MaterialAttributeList.vue @@ -0,0 +1,144 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/material/MaterialCategoryList.vue b/smtERP-web/src/views/material/MaterialCategoryList.vue new file mode 100644 index 0000000..c0e5dc9 --- /dev/null +++ b/smtERP-web/src/views/material/MaterialCategoryList.vue @@ -0,0 +1,513 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/material/MaterialList.vue b/smtERP-web/src/views/material/MaterialList.vue new file mode 100644 index 0000000..0ec80ea --- /dev/null +++ b/smtERP-web/src/views/material/MaterialList.vue @@ -0,0 +1,545 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/material/MaterialPropertyList.vue b/smtERP-web/src/views/material/MaterialPropertyList.vue new file mode 100644 index 0000000..4a0ad24 --- /dev/null +++ b/smtERP-web/src/views/material/MaterialPropertyList.vue @@ -0,0 +1,110 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/material/modules/BatchSetInfoModal.vue b/smtERP-web/src/views/material/modules/BatchSetInfoModal.vue new file mode 100644 index 0000000..59247be --- /dev/null +++ b/smtERP-web/src/views/material/modules/BatchSetInfoModal.vue @@ -0,0 +1,188 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/material/modules/BatchSetPriceModal.vue b/smtERP-web/src/views/material/modules/BatchSetPriceModal.vue new file mode 100644 index 0000000..e595cc6 --- /dev/null +++ b/smtERP-web/src/views/material/modules/BatchSetPriceModal.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/smtERP-web/src/views/material/modules/BatchSetStockModal.vue b/smtERP-web/src/views/material/modules/BatchSetStockModal.vue new file mode 100644 index 0000000..95293b9 --- /dev/null +++ b/smtERP-web/src/views/material/modules/BatchSetStockModal.vue @@ -0,0 +1,101 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/material/modules/MaterialAttributeModal.vue b/smtERP-web/src/views/material/modules/MaterialAttributeModal.vue new file mode 100644 index 0000000..bb8e4ca --- /dev/null +++ b/smtERP-web/src/views/material/modules/MaterialAttributeModal.vue @@ -0,0 +1,224 @@ + + + diff --git a/smtERP-web/src/views/material/modules/MaterialCategoryModal.vue b/smtERP-web/src/views/material/modules/MaterialCategoryModal.vue new file mode 100644 index 0000000..8adf93a --- /dev/null +++ b/smtERP-web/src/views/material/modules/MaterialCategoryModal.vue @@ -0,0 +1,178 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/material/modules/MaterialModal.vue b/smtERP-web/src/views/material/modules/MaterialModal.vue new file mode 100644 index 0000000..f3bc51e --- /dev/null +++ b/smtERP-web/src/views/material/modules/MaterialModal.vue @@ -0,0 +1,1357 @@ + + + diff --git a/smtERP-web/src/views/material/modules/MaterialPropertyModal.vue b/smtERP-web/src/views/material/modules/MaterialPropertyModal.vue new file mode 100644 index 0000000..a81e1d9 --- /dev/null +++ b/smtERP-web/src/views/material/modules/MaterialPropertyModal.vue @@ -0,0 +1,112 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/production/OrderList.vue b/smtERP-web/src/views/production/OrderList.vue new file mode 100644 index 0000000..ae90c2d --- /dev/null +++ b/smtERP-web/src/views/production/OrderList.vue @@ -0,0 +1,344 @@ + + + diff --git a/smtERP-web/src/views/production/PackBomList.vue b/smtERP-web/src/views/production/PackBomList.vue new file mode 100644 index 0000000..b0b9d7d --- /dev/null +++ b/smtERP-web/src/views/production/PackBomList.vue @@ -0,0 +1,189 @@ + + + diff --git a/smtERP-web/src/views/production/ReportList.vue b/smtERP-web/src/views/production/ReportList.vue new file mode 100644 index 0000000..c3ac61c --- /dev/null +++ b/smtERP-web/src/views/production/ReportList.vue @@ -0,0 +1,226 @@ + + + diff --git a/smtERP-web/src/views/production/RequisitionList.vue b/smtERP-web/src/views/production/RequisitionList.vue new file mode 100644 index 0000000..767e03e --- /dev/null +++ b/smtERP-web/src/views/production/RequisitionList.vue @@ -0,0 +1,249 @@ + + + diff --git a/smtERP-web/src/views/production/dialog/OrderDetail.vue b/smtERP-web/src/views/production/dialog/OrderDetail.vue new file mode 100644 index 0000000..b5bdd61 --- /dev/null +++ b/smtERP-web/src/views/production/dialog/OrderDetail.vue @@ -0,0 +1,104 @@ + + + diff --git a/smtERP-web/src/views/production/modules/OrderModal.vue b/smtERP-web/src/views/production/modules/OrderModal.vue new file mode 100644 index 0000000..0f61424 --- /dev/null +++ b/smtERP-web/src/views/production/modules/OrderModal.vue @@ -0,0 +1,380 @@ + + + diff --git a/smtERP-web/src/views/production/modules/PackBomModal.vue b/smtERP-web/src/views/production/modules/PackBomModal.vue new file mode 100644 index 0000000..cbef01c --- /dev/null +++ b/smtERP-web/src/views/production/modules/PackBomModal.vue @@ -0,0 +1,236 @@ + + + diff --git a/smtERP-web/src/views/production/modules/ReportModal.vue b/smtERP-web/src/views/production/modules/ReportModal.vue new file mode 100644 index 0000000..79e538d --- /dev/null +++ b/smtERP-web/src/views/production/modules/ReportModal.vue @@ -0,0 +1,323 @@ + + + diff --git a/smtERP-web/src/views/production/modules/RequisitionModal.vue b/smtERP-web/src/views/production/modules/RequisitionModal.vue new file mode 100644 index 0000000..329eb72 --- /dev/null +++ b/smtERP-web/src/views/production/modules/RequisitionModal.vue @@ -0,0 +1,169 @@ + + + diff --git a/smtERP-web/src/views/production/modules/SaleOrderSelectModal.vue b/smtERP-web/src/views/production/modules/SaleOrderSelectModal.vue new file mode 100644 index 0000000..34eeebb --- /dev/null +++ b/smtERP-web/src/views/production/modules/SaleOrderSelectModal.vue @@ -0,0 +1,154 @@ + + + diff --git a/smtERP-web/src/views/report/AccountReport.vue b/smtERP-web/src/views/report/AccountReport.vue new file mode 100644 index 0000000..badb877 --- /dev/null +++ b/smtERP-web/src/views/report/AccountReport.vue @@ -0,0 +1,210 @@ + + + + diff --git a/smtERP-web/src/views/report/AllocationDetail.vue b/smtERP-web/src/views/report/AllocationDetail.vue new file mode 100644 index 0000000..a007984 --- /dev/null +++ b/smtERP-web/src/views/report/AllocationDetail.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/smtERP-web/src/views/report/BuyInReport.vue b/smtERP-web/src/views/report/BuyInReport.vue new file mode 100644 index 0000000..89de5e0 --- /dev/null +++ b/smtERP-web/src/views/report/BuyInReport.vue @@ -0,0 +1,363 @@ + + + + diff --git a/smtERP-web/src/views/report/CustomerAccount.vue b/smtERP-web/src/views/report/CustomerAccount.vue new file mode 100644 index 0000000..89c45e5 --- /dev/null +++ b/smtERP-web/src/views/report/CustomerAccount.vue @@ -0,0 +1,299 @@ + + + + diff --git a/smtERP-web/src/views/report/InDetail.vue b/smtERP-web/src/views/report/InDetail.vue new file mode 100644 index 0000000..673a202 --- /dev/null +++ b/smtERP-web/src/views/report/InDetail.vue @@ -0,0 +1,414 @@ + + + + diff --git a/smtERP-web/src/views/report/InMaterialCount.vue b/smtERP-web/src/views/report/InMaterialCount.vue new file mode 100644 index 0000000..c7f46e2 --- /dev/null +++ b/smtERP-web/src/views/report/InMaterialCount.vue @@ -0,0 +1,354 @@ + + + + diff --git a/smtERP-web/src/views/report/InOutStockReport.vue b/smtERP-web/src/views/report/InOutStockReport.vue new file mode 100644 index 0000000..3e62552 --- /dev/null +++ b/smtERP-web/src/views/report/InOutStockReport.vue @@ -0,0 +1,372 @@ + + + + + diff --git a/smtERP-web/src/views/report/MaterialStock.vue b/smtERP-web/src/views/report/MaterialStock.vue new file mode 100644 index 0000000..99607e0 --- /dev/null +++ b/smtERP-web/src/views/report/MaterialStock.vue @@ -0,0 +1,399 @@ + + + + + + diff --git a/smtERP-web/src/views/report/OutDetail.vue b/smtERP-web/src/views/report/OutDetail.vue new file mode 100644 index 0000000..2ecf46c --- /dev/null +++ b/smtERP-web/src/views/report/OutDetail.vue @@ -0,0 +1,414 @@ + + + + diff --git a/smtERP-web/src/views/report/OutMaterialCount.vue b/smtERP-web/src/views/report/OutMaterialCount.vue new file mode 100644 index 0000000..15acf53 --- /dev/null +++ b/smtERP-web/src/views/report/OutMaterialCount.vue @@ -0,0 +1,355 @@ + + + + diff --git a/smtERP-web/src/views/report/RetailOutReport.vue b/smtERP-web/src/views/report/RetailOutReport.vue new file mode 100644 index 0000000..fb13cbc --- /dev/null +++ b/smtERP-web/src/views/report/RetailOutReport.vue @@ -0,0 +1,366 @@ + + + + diff --git a/smtERP-web/src/views/report/SaleOutReport.vue b/smtERP-web/src/views/report/SaleOutReport.vue new file mode 100644 index 0000000..2ae820b --- /dev/null +++ b/smtERP-web/src/views/report/SaleOutReport.vue @@ -0,0 +1,356 @@ + + + + diff --git a/smtERP-web/src/views/report/StockWarningReport.vue b/smtERP-web/src/views/report/StockWarningReport.vue new file mode 100644 index 0000000..095b406 --- /dev/null +++ b/smtERP-web/src/views/report/StockWarningReport.vue @@ -0,0 +1,260 @@ + + + + diff --git a/smtERP-web/src/views/report/VendorAccount.vue b/smtERP-web/src/views/report/VendorAccount.vue new file mode 100644 index 0000000..f57b813 --- /dev/null +++ b/smtERP-web/src/views/report/VendorAccount.vue @@ -0,0 +1,309 @@ + + + + diff --git a/smtERP-web/src/views/report/modules/AccountInOutList.vue b/smtERP-web/src/views/report/modules/AccountInOutList.vue new file mode 100644 index 0000000..e6b15c0 --- /dev/null +++ b/smtERP-web/src/views/report/modules/AccountInOutList.vue @@ -0,0 +1,286 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/report/modules/DebtAccountList.vue b/smtERP-web/src/views/report/modules/DebtAccountList.vue new file mode 100644 index 0000000..6a89d38 --- /dev/null +++ b/smtERP-web/src/views/report/modules/DebtAccountList.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/smtERP-web/src/views/report/modules/HistoryFinancialList.vue b/smtERP-web/src/views/report/modules/HistoryFinancialList.vue new file mode 100644 index 0000000..258f8f5 --- /dev/null +++ b/smtERP-web/src/views/report/modules/HistoryFinancialList.vue @@ -0,0 +1,233 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/report/modules/MaterialDepotStockList.vue b/smtERP-web/src/views/report/modules/MaterialDepotStockList.vue new file mode 100644 index 0000000..d8aabc3 --- /dev/null +++ b/smtERP-web/src/views/report/modules/MaterialDepotStockList.vue @@ -0,0 +1,126 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/report/modules/MaterialDepotStockListWithTime.vue b/smtERP-web/src/views/report/modules/MaterialDepotStockListWithTime.vue new file mode 100644 index 0000000..fc06c00 --- /dev/null +++ b/smtERP-web/src/views/report/modules/MaterialDepotStockListWithTime.vue @@ -0,0 +1,132 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/report/modules/MaterialInOutList.vue b/smtERP-web/src/views/report/modules/MaterialInOutList.vue new file mode 100644 index 0000000..00d95cc --- /dev/null +++ b/smtERP-web/src/views/report/modules/MaterialInOutList.vue @@ -0,0 +1,214 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/report/modules/StockPriceInOutList.vue b/smtERP-web/src/views/report/modules/StockPriceInOutList.vue new file mode 100644 index 0000000..e51660c --- /dev/null +++ b/smtERP-web/src/views/report/modules/StockPriceInOutList.vue @@ -0,0 +1,214 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/AccountList.vue b/smtERP-web/src/views/system/AccountList.vue new file mode 100644 index 0000000..6bea224 --- /dev/null +++ b/smtERP-web/src/views/system/AccountList.vue @@ -0,0 +1,181 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/CustomerCategoryList.vue b/smtERP-web/src/views/system/CustomerCategoryList.vue new file mode 100644 index 0000000..3c985bc --- /dev/null +++ b/smtERP-web/src/views/system/CustomerCategoryList.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/smtERP-web/src/views/system/CustomerList.vue b/smtERP-web/src/views/system/CustomerList.vue new file mode 100644 index 0000000..ed3e0b9 --- /dev/null +++ b/smtERP-web/src/views/system/CustomerList.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/smtERP-web/src/views/system/DepotList.vue b/smtERP-web/src/views/system/DepotList.vue new file mode 100644 index 0000000..628934d --- /dev/null +++ b/smtERP-web/src/views/system/DepotList.vue @@ -0,0 +1,213 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/DictList.vue b/smtERP-web/src/views/system/DictList.vue new file mode 100644 index 0000000..f4af377 --- /dev/null +++ b/smtERP-web/src/views/system/DictList.vue @@ -0,0 +1,191 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/FunctionList.vue b/smtERP-web/src/views/system/FunctionList.vue new file mode 100644 index 0000000..ccb97cb --- /dev/null +++ b/smtERP-web/src/views/system/FunctionList.vue @@ -0,0 +1,160 @@ + + + + diff --git a/smtERP-web/src/views/system/InOutItemList.vue b/smtERP-web/src/views/system/InOutItemList.vue new file mode 100644 index 0000000..4ebd175 --- /dev/null +++ b/smtERP-web/src/views/system/InOutItemList.vue @@ -0,0 +1,156 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/LogList.vue b/smtERP-web/src/views/system/LogList.vue new file mode 100644 index 0000000..6bc98d4 --- /dev/null +++ b/smtERP-web/src/views/system/LogList.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/smtERP-web/src/views/system/MemberList.vue b/smtERP-web/src/views/system/MemberList.vue new file mode 100644 index 0000000..376a247 --- /dev/null +++ b/smtERP-web/src/views/system/MemberList.vue @@ -0,0 +1,231 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/MsgList.vue b/smtERP-web/src/views/system/MsgList.vue new file mode 100644 index 0000000..6785bef --- /dev/null +++ b/smtERP-web/src/views/system/MsgList.vue @@ -0,0 +1,171 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/OrganizationList.vue b/smtERP-web/src/views/system/OrganizationList.vue new file mode 100644 index 0000000..e5bb429 --- /dev/null +++ b/smtERP-web/src/views/system/OrganizationList.vue @@ -0,0 +1,517 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/PersonList.vue b/smtERP-web/src/views/system/PersonList.vue new file mode 100644 index 0000000..aad6406 --- /dev/null +++ b/smtERP-web/src/views/system/PersonList.vue @@ -0,0 +1,183 @@ + + + + diff --git a/smtERP-web/src/views/system/PlatformConfigList.vue b/smtERP-web/src/views/system/PlatformConfigList.vue new file mode 100644 index 0000000..affb1ee --- /dev/null +++ b/smtERP-web/src/views/system/PlatformConfigList.vue @@ -0,0 +1,103 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/PluginList.vue b/smtERP-web/src/views/system/PluginList.vue new file mode 100644 index 0000000..fef3636 --- /dev/null +++ b/smtERP-web/src/views/system/PluginList.vue @@ -0,0 +1,262 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/RoleList.vue b/smtERP-web/src/views/system/RoleList.vue new file mode 100644 index 0000000..75e43c0 --- /dev/null +++ b/smtERP-web/src/views/system/RoleList.vue @@ -0,0 +1,250 @@ + + + + diff --git a/smtERP-web/src/views/system/SystemConfigList.vue b/smtERP-web/src/views/system/SystemConfigList.vue new file mode 100644 index 0000000..80df016 --- /dev/null +++ b/smtERP-web/src/views/system/SystemConfigList.vue @@ -0,0 +1,542 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/TenantList.vue b/smtERP-web/src/views/system/TenantList.vue new file mode 100644 index 0000000..bd6e2b3 --- /dev/null +++ b/smtERP-web/src/views/system/TenantList.vue @@ -0,0 +1,167 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/UnitList.vue b/smtERP-web/src/views/system/UnitList.vue new file mode 100644 index 0000000..cfcdc98 --- /dev/null +++ b/smtERP-web/src/views/system/UnitList.vue @@ -0,0 +1,165 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/UserList.vue b/smtERP-web/src/views/system/UserList.vue new file mode 100644 index 0000000..0af6d6e --- /dev/null +++ b/smtERP-web/src/views/system/UserList.vue @@ -0,0 +1,212 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/VendorList.vue b/smtERP-web/src/views/system/VendorList.vue new file mode 100644 index 0000000..2b65c28 --- /dev/null +++ b/smtERP-web/src/views/system/VendorList.vue @@ -0,0 +1,204 @@ + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/AccountModal.vue b/smtERP-web/src/views/system/modules/AccountModal.vue new file mode 100644 index 0000000..0b5d021 --- /dev/null +++ b/smtERP-web/src/views/system/modules/AccountModal.vue @@ -0,0 +1,150 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/CustomerModal.vue b/smtERP-web/src/views/system/modules/CustomerModal.vue new file mode 100644 index 0000000..656dd52 --- /dev/null +++ b/smtERP-web/src/views/system/modules/CustomerModal.vue @@ -0,0 +1,401 @@ + + + diff --git a/smtERP-web/src/views/system/modules/CustomerUserModal.vue b/smtERP-web/src/views/system/modules/CustomerUserModal.vue new file mode 100644 index 0000000..f8275ca --- /dev/null +++ b/smtERP-web/src/views/system/modules/CustomerUserModal.vue @@ -0,0 +1,172 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/DepotModal.vue b/smtERP-web/src/views/system/modules/DepotModal.vue new file mode 100644 index 0000000..ca68f3d --- /dev/null +++ b/smtERP-web/src/views/system/modules/DepotModal.vue @@ -0,0 +1,170 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/DepotUserModal.vue b/smtERP-web/src/views/system/modules/DepotUserModal.vue new file mode 100644 index 0000000..5bfb60c --- /dev/null +++ b/smtERP-web/src/views/system/modules/DepotUserModal.vue @@ -0,0 +1,172 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/DictDataListModal.vue b/smtERP-web/src/views/system/modules/DictDataListModal.vue new file mode 100644 index 0000000..e43198b --- /dev/null +++ b/smtERP-web/src/views/system/modules/DictDataListModal.vue @@ -0,0 +1,198 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/DictDataModal.vue b/smtERP-web/src/views/system/modules/DictDataModal.vue new file mode 100644 index 0000000..b1c3161 --- /dev/null +++ b/smtERP-web/src/views/system/modules/DictDataModal.vue @@ -0,0 +1,184 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/DictTypeModal.vue b/smtERP-web/src/views/system/modules/DictTypeModal.vue new file mode 100644 index 0000000..d903d1a --- /dev/null +++ b/smtERP-web/src/views/system/modules/DictTypeModal.vue @@ -0,0 +1,129 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/FunctionModal.vue b/smtERP-web/src/views/system/modules/FunctionModal.vue new file mode 100644 index 0000000..cc8d23c --- /dev/null +++ b/smtERP-web/src/views/system/modules/FunctionModal.vue @@ -0,0 +1,293 @@ + + + diff --git a/smtERP-web/src/views/system/modules/FunctionTreeModal.vue b/smtERP-web/src/views/system/modules/FunctionTreeModal.vue new file mode 100644 index 0000000..a2b93be --- /dev/null +++ b/smtERP-web/src/views/system/modules/FunctionTreeModal.vue @@ -0,0 +1,154 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/InOutItemModal.vue b/smtERP-web/src/views/system/modules/InOutItemModal.vue new file mode 100644 index 0000000..5512015 --- /dev/null +++ b/smtERP-web/src/views/system/modules/InOutItemModal.vue @@ -0,0 +1,150 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/MemberModal.vue b/smtERP-web/src/views/system/modules/MemberModal.vue new file mode 100644 index 0000000..83fecd2 --- /dev/null +++ b/smtERP-web/src/views/system/modules/MemberModal.vue @@ -0,0 +1,182 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/OrganizationModal.vue b/smtERP-web/src/views/system/modules/OrganizationModal.vue new file mode 100644 index 0000000..394b25e --- /dev/null +++ b/smtERP-web/src/views/system/modules/OrganizationModal.vue @@ -0,0 +1,179 @@ + + + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/PersonModal.vue b/smtERP-web/src/views/system/modules/PersonModal.vue new file mode 100644 index 0000000..e14db51 --- /dev/null +++ b/smtERP-web/src/views/system/modules/PersonModal.vue @@ -0,0 +1,172 @@ + + + diff --git a/smtERP-web/src/views/system/modules/PersonTypeModal.vue b/smtERP-web/src/views/system/modules/PersonTypeModal.vue new file mode 100644 index 0000000..3c38db2 --- /dev/null +++ b/smtERP-web/src/views/system/modules/PersonTypeModal.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/smtERP-web/src/views/system/modules/PlatformConfigModal.vue b/smtERP-web/src/views/system/modules/PlatformConfigModal.vue new file mode 100644 index 0000000..3713150 --- /dev/null +++ b/smtERP-web/src/views/system/modules/PlatformConfigModal.vue @@ -0,0 +1,109 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/PluginAppModal.vue b/smtERP-web/src/views/system/modules/PluginAppModal.vue new file mode 100644 index 0000000..36c53d4 --- /dev/null +++ b/smtERP-web/src/views/system/modules/PluginAppModal.vue @@ -0,0 +1,112 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/PluginModal.vue b/smtERP-web/src/views/system/modules/PluginModal.vue new file mode 100644 index 0000000..aa3eaef --- /dev/null +++ b/smtERP-web/src/views/system/modules/PluginModal.vue @@ -0,0 +1,112 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/RoleFunctionModal.vue b/smtERP-web/src/views/system/modules/RoleFunctionModal.vue new file mode 100644 index 0000000..5be259c --- /dev/null +++ b/smtERP-web/src/views/system/modules/RoleFunctionModal.vue @@ -0,0 +1,218 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/RoleModal.vue b/smtERP-web/src/views/system/modules/RoleModal.vue new file mode 100644 index 0000000..91ef561 --- /dev/null +++ b/smtERP-web/src/views/system/modules/RoleModal.vue @@ -0,0 +1,194 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/RolePushBtnModal.vue b/smtERP-web/src/views/system/modules/RolePushBtnModal.vue new file mode 100644 index 0000000..a4d5985 --- /dev/null +++ b/smtERP-web/src/views/system/modules/RolePushBtnModal.vue @@ -0,0 +1,315 @@ + + + diff --git a/smtERP-web/src/views/system/modules/TenantModal.vue b/smtERP-web/src/views/system/modules/TenantModal.vue new file mode 100644 index 0000000..fb3619e --- /dev/null +++ b/smtERP-web/src/views/system/modules/TenantModal.vue @@ -0,0 +1,169 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/UnitModal.vue b/smtERP-web/src/views/system/modules/UnitModal.vue new file mode 100644 index 0000000..795f365 --- /dev/null +++ b/smtERP-web/src/views/system/modules/UnitModal.vue @@ -0,0 +1,219 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/UserCustomerModal.vue b/smtERP-web/src/views/system/modules/UserCustomerModal.vue new file mode 100644 index 0000000..7477700 --- /dev/null +++ b/smtERP-web/src/views/system/modules/UserCustomerModal.vue @@ -0,0 +1,144 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/UserDepotModal.vue b/smtERP-web/src/views/system/modules/UserDepotModal.vue new file mode 100644 index 0000000..946e432 --- /dev/null +++ b/smtERP-web/src/views/system/modules/UserDepotModal.vue @@ -0,0 +1,181 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/UserModal.vue b/smtERP-web/src/views/system/modules/UserModal.vue new file mode 100644 index 0000000..cccefd6 --- /dev/null +++ b/smtERP-web/src/views/system/modules/UserModal.vue @@ -0,0 +1,230 @@ + + + + diff --git a/smtERP-web/src/views/system/modules/UserResetModal.vue b/smtERP-web/src/views/system/modules/UserResetModal.vue new file mode 100644 index 0000000..3ec1011 --- /dev/null +++ b/smtERP-web/src/views/system/modules/UserResetModal.vue @@ -0,0 +1,110 @@ + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/UserRoleModal.vue b/smtERP-web/src/views/system/modules/UserRoleModal.vue new file mode 100644 index 0000000..89a795d --- /dev/null +++ b/smtERP-web/src/views/system/modules/UserRoleModal.vue @@ -0,0 +1,137 @@ + + + diff --git a/smtERP-web/src/views/system/modules/VendorModal.vue b/smtERP-web/src/views/system/modules/VendorModal.vue new file mode 100644 index 0000000..8ff1bf5 --- /dev/null +++ b/smtERP-web/src/views/system/modules/VendorModal.vue @@ -0,0 +1,218 @@ + + + \ No newline at end of file diff --git a/smtERP-web/src/views/system/modules/icon/Icon.less b/smtERP-web/src/views/system/modules/icon/Icon.less new file mode 100644 index 0000000..5e37187 --- /dev/null +++ b/smtERP-web/src/views/system/modules/icon/Icon.less @@ -0,0 +1,35 @@ +@active-color: #4a4a48; +ul { + max-height: 700px; + overflow-y: auto; + padding-left: .5rem; + i { + font-size: 1.5rem; + border: 1px solid #f1f1f1; + padding: .2rem; + margin: .3rem; + cursor: pointer; + &.active, &:hover { + border-radius: 2px; + border-color: @active-color; + background-color: @active-color; + color: #fff; + transition: all .3s; + } + } + li { + list-style: none; + float: left; + width: 5%; + text-align: center; + cursor: pointer; + color: #555; + transition: color .3s ease-in-out,background-color .3s ease-in-out; + position: relative; + margin: 3px 0; + border-radius: 4px; + background-color: #fff; + overflow: hidden; + padding: 10px 0 0; + } +} diff --git a/smtERP-web/src/views/system/modules/icon/Icons.vue b/smtERP-web/src/views/system/modules/icon/Icons.vue new file mode 100644 index 0000000..922aa75 --- /dev/null +++ b/smtERP-web/src/views/system/modules/icon/Icons.vue @@ -0,0 +1,123 @@ + + + diff --git a/smtERP-web/src/views/user/Login.vue b/smtERP-web/src/views/user/Login.vue new file mode 100644 index 0000000..d04c1c2 --- /dev/null +++ b/smtERP-web/src/views/user/Login.vue @@ -0,0 +1,512 @@ + + + + + + + diff --git a/smtERP-web/src/views/user/Register.vue b/smtERP-web/src/views/user/Register.vue new file mode 100644 index 0000000..472486f --- /dev/null +++ b/smtERP-web/src/views/user/Register.vue @@ -0,0 +1,363 @@ + + + + + + diff --git a/smtERP-web/tests/security.cjs b/smtERP-web/tests/security.cjs new file mode 100644 index 0000000..068bcc1 --- /dev/null +++ b/smtERP-web/tests/security.cjs @@ -0,0 +1,70 @@ +const assert = require('assert') +const fs = require('fs') +const path = require('path') +const vm = require('vm') +const babel = require('@babel/core') +const compiler = require('vue-template-compiler') +const { JSDOM } = require('jsdom') +const browser = new JSDOM('', { url: 'https://erp.example.test' }).window +const purifier = require('dompurify')(browser) + +function loadSource (relative, dependencies = {}) { + const filename = path.join(__dirname, '..', relative) + const source = fs.readFileSync(filename, 'utf8') + const script = relative.endsWith('.vue') ? compiler.parseComponent(source).script.content : source + const transformed = babel.transformSync(script, { + babelrc: false, + configFile: false, + plugins: ['@babel/plugin-transform-modules-commonjs'] + }).code + const exports = {} + vm.runInNewContext(transformed, { + exports, + require: name => { + assert.ok(Object.prototype.hasOwnProperty.call(dependencies, name), `Unexpected import ${name}`) + return dependencies[name] + }, + window: browser, + console: { log () {}, warn () {} } + }, { filename }) + return exports +} + +const menu = loadSource('src/utils/menuUrl.js') +browser._CONFIG = { domianURL: '/apis' } +assert.strictEqual(menu.resolveMenuUrl('{{ window._CONFIG.domianURL }}/report', browser), '/apis/report') +assert.strictEqual(menu.resolveMenuUrl("{{ window._CONFIG['domianURL'] }}/report", browser), '/apis/report') +assert.strictEqual(menu.resolveMenuUrl('{{ window.location.origin }}/report', browser), 'https://erp.example.test/report') +assert.strictEqual(menu.resolveMenuUrl('/dashboard/analysis', browser), '/dashboard/analysis') +const attack = '{{ window.compromised = true }}' +assert.strictEqual(menu.resolveMenuUrl(attack, browser), attack) +assert.strictEqual(browser.compromised, undefined) +assert.strictEqual(menu.resolveMenuUrl('{{ constructor.constructor("alert(1)")() }}', browser), + '{{ constructor.constructor("alert(1)")() }}') +console.log('PASS: supported menu placeholders and malicious expressions') + +const announcement = loadSource('src/components/tools/ShowAnnouncement.vue', { dompurify: purifier }).default +const safeContent = content => announcement.computed.safeContent.call({ record: { msgContent: content } }) +assert.strictEqual(safeContent('

    中文公告 加粗

    '), '

    中文公告 加粗

    ') +assert.strictEqual(safeContent(null), '') +const sanitized = safeContent('

    公告

    ' + + 'link') +assert.ok(sanitized.includes('

    公告

    ')) +assert.ok(!/script|onerror|onload|javascript:|svg|iframe/i.test(sanitized)) +const vueSource = fs.readFileSync(path.join(__dirname, '../src/components/tools/ShowAnnouncement.vue'), 'utf8') +assert.ok(compiler.compile(compiler.parseComponent(vueSource).template.content).render.includes('safeContent')) +console.log('PASS: rich-text formatting retained and XSS payloads removed') + +const notice = loadSource('src/components/tools/HeaderNotice.vue', { + '@/api/manage': {}, './ShowAnnouncement': {}, '@/store/': {}, './DynamicNotice': {}, '@/views/system/MsgList': {} +}).default +let updates = 0 +const receive = data => notice.methods.websocketOnmessage.call({ loadData () { updates++ } }, { data }) +receive('{"cmd":"topic"}') +receive('{"cmd":"user"}') +assert.strictEqual(updates, 2) +for (const input of ['null', '[]', '42', 'invalid', '{"cmd":"heartbeat"}', '(window.compromised=true)']) receive(input) +assert.strictEqual(updates, 2) +assert.strictEqual(browser.compromised, undefined) +browser.close() +console.log('PASS: notification commands preserved and executable/non-object payloads ignored') diff --git a/smtERP-web/vue.config.js b/smtERP-web/vue.config.js new file mode 100644 index 0000000..0b48517 --- /dev/null +++ b/smtERP-web/vue.config.js @@ -0,0 +1,61 @@ +const path = require('path') +const CompressionPlugin = require('compression-webpack-plugin') + +function resolve (dir) { + return path.join(__dirname, dir) +} + +// vue.config.js +module.exports = { + // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 + productionSourceMap: false, + configureWebpack: config => { + if (process.env.NODE_ENV !== 'production') { + config.devtool = 'source-map' + } + // 生产环境取消 console.log + if (process.env.NODE_ENV === 'production') { + config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true + } + }, + chainWebpack: (config) => { + config.resolve.alias + .set('@$', resolve('src')) + .set('@api', resolve('src/api')) + .set('@assets', resolve('src/assets')) + .set('@comp', resolve('src/components')) + .set('@views', resolve('src/views')) + // 生产环境,开启js\css压缩 + if (process.env.NODE_ENV === 'production') { + config.plugin('compressionPlugin').use(new CompressionPlugin({ + test: /\.(js|css|less)$/, // 匹配文件名 + threshold: 10240, // 对超过10k的数据压缩 + deleteOriginalAssets: false // 删除源文件 + })) + } + }, + css: { + loaderOptions: { + less: { + modifyVars: { + /* less 变量覆盖,用于自定义 ant design 主题 */ + 'primary-color': '#1890FF', + 'link-color': '#1890FF', + 'border-radius-base': '4px' + }, + javascriptEnabled: true + } + } + }, + devServer: { + port: 27200, + proxy: { + '/apis': { + target: 'http://10.20.120.47:27210', // 通过服务器 Nginx 访问后端项目 + ws: false, + changeOrigin: true + } + } + }, + lintOnSave: undefined +} diff --git a/smtERP-web/yarn b/smtERP-web/yarn new file mode 100644 index 0000000..e69de29